Suppress InvalidArgument exceptions handling URLs in Model\Item::containsLink
This commit is contained in:
parent
ea49ab6e04
commit
3e33ec0c0f
1 changed files with 15 additions and 4 deletions
|
@ -3094,11 +3094,20 @@ class Item
|
|||
{
|
||||
// Make sure that for example site parameters aren't used when testing if the link is contained in the body
|
||||
$urlparts = parse_url($url);
|
||||
if (!empty($urlparts)) {
|
||||
unset($urlparts['query']);
|
||||
unset($urlparts['fragment']);
|
||||
if (empty($urlparts)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
unset($urlparts['query']);
|
||||
unset($urlparts['fragment']);
|
||||
|
||||
try {
|
||||
$url = (string)Uri::fromParts($urlparts);
|
||||
} else {
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
DI::logger()->notice('Invalid URL', ['$url' => $url, '$urlparts' => $urlparts]);
|
||||
/* See https://github.com/friendica/friendica/issues/12113
|
||||
* Malformed URLs will result in a Fatal Error
|
||||
*/
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -3111,12 +3120,14 @@ class Item
|
|||
if (strpos($body, $url)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
foreach ([0, 1, 2] as $size) {
|
||||
if (preg_match('#/photo/.*-' . $size . '\.#ism', $url) &&
|
||||
strpos(preg_replace('#(/photo/.*)-[012]\.#ism', '$1-' . $size . '.', $body), $url)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue