X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FPageInfo.php;h=a92849eba201dab730c06c85717bb97d78a8247f;hb=ddd2c72be8e7245389f97d74dd847f5a20410936;hp=3fc5330938bd7758566122a1bb89ad0ca95bf31d;hpb=2a431b580f2e8f6a596e84175932e793678cde63;p=friendica.git diff --git a/src/Content/PageInfo.php b/src/Content/PageInfo.php index 3fc5330938..a92849eba2 100644 --- a/src/Content/PageInfo.php +++ b/src/Content/PageInfo.php @@ -1,6 +1,6 @@ $body]); + Logger::debug('add_page_info_to_body: fetch page info for body', ['body' => $body]); $url = self::getRelevantUrlFromBody($body, $searchNakedUrls); if (!$url) { @@ -64,7 +64,7 @@ class PageInfo * @return string * @throws HTTPException\InternalServerErrorException */ - public static function appendDataToBody(string $body, array $data, bool $no_photos = false) + public static function appendDataToBody(string $body, array $data, bool $no_photos = false): string { // Only one [attachment] tag per body is allowed $existingAttachmentPos = strpos($body, '[attachment'); @@ -73,7 +73,7 @@ class PageInfo // Additional link attachments are prepended before the existing [attachment] tag $body = substr_replace($body, "\n[bookmark=" . $data['url'] . ']' . $linkTitle . "[/bookmark]\n", $existingAttachmentPos, 0); } else { - $footer = PageInfo::getFooterFromData($data, $no_photos); + $footer = self::getFooterFromData($data, $no_photos); $body = self::stripTrailingUrlFromBody($body, $data['url']); $body .= "\n" . $footer; } @@ -86,13 +86,13 @@ class PageInfo * @param bool $no_photos * @param string $photo * @param bool $keywords - * @param string $keyword_denylist + * @param string $keyword_blacklist * @return string * @throws HTTPException\InternalServerErrorException */ - public static function getFooterFromUrl(string $url, bool $no_photos = false, string $photo = '', bool $keywords = false, string $keyword_denylist = '') + public static function getFooterFromUrl(string $url, bool $no_photos = false, string $photo = '', bool $keywords = false, string $keyword_blacklist = ''): string { - $data = self::queryUrl($url, $photo, $keywords, $keyword_denylist); + $data = self::queryUrl($url, $photo, $keywords, $keyword_blacklist); return self::getFooterFromData($data, $no_photos); } @@ -103,7 +103,7 @@ class PageInfo * @return string * @throws HTTPException\InternalServerErrorException */ - public static function getFooterFromData(array $data, bool $no_photos = false) + public static function getFooterFromData(array $data, bool $no_photos = false): string { Hook::callAll('page_info_data', $data); @@ -141,7 +141,7 @@ class PageInfo $data['text'] = ''; } - // Only embedd a picture link when it seems to be a valid picture ("width" is set) + // Only embed a picture link when it seems to be a valid picture ("width" is set) if (!empty($data['images']) && !empty($data['images'][0]['width'])) { $preview = str_replace(['[', ']'], ['[', ']'], htmlentities($data['images'][0]['src'], ENT_QUOTES, 'UTF-8', false)); // if the preview picture is larger than 500 pixels then show it in a larger mode @@ -155,7 +155,7 @@ class PageInfo if (empty($data['text'])) { $data['text'] = $data['title']; } - + if (empty($data['text'])) { $data['text'] = $data['url']; } @@ -181,11 +181,11 @@ class PageInfo * @param string $url * @param string $photo * @param bool $keywords - * @param string $keyword_denylist + * @param string $keyword_blacklist * @return array|bool * @throws HTTPException\InternalServerErrorException */ - public static function queryUrl(string $url, string $photo = '', bool $keywords = false, string $keyword_denylist = '') + public static function queryUrl(string $url, string $photo = '', bool $keywords = false, string $keyword_blacklist = '') { $data = ParseUrl::getSiteinfoCached($url); @@ -195,8 +195,8 @@ class PageInfo if (!$keywords) { unset($data['keywords']); - } elseif ($keyword_denylist && !empty($data['keywords'])) { - $list = explode(', ', $keyword_denylist); + } elseif ($keyword_blacklist && !empty($data['keywords'])) { + $list = explode(', ', $keyword_blacklist); foreach ($list as $keyword) { $keyword = trim($keyword); @@ -208,7 +208,7 @@ class PageInfo } } - Logger::info('fetch page info for URL', ['url' => $url, 'data' => $data]); + Logger::debug('fetch page info for URL', ['url' => $url, 'data' => $data]); return $data; } @@ -216,13 +216,13 @@ class PageInfo /** * @param string $url * @param string $photo - * @param string $keyword_denylist + * @param string $keyword_blacklist * @return array * @throws HTTPException\InternalServerErrorException */ - public static function getTagsFromUrl(string $url, string $photo = '', string $keyword_denylist = '') + public static function getTagsFromUrl(string $url, string $photo = '', string $keyword_blacklist = ''): array { - $data = self::queryUrl($url, $photo, true, $keyword_denylist); + $data = self::queryUrl($url, $photo, true, $keyword_blacklist); if (empty($data['keywords'])) { return []; @@ -246,17 +246,22 @@ class PageInfo * @param bool $searchNakedUrls Whether we should pick a naked URL (outside of BBCode tags) as a last resort * @return string|null */ - protected static function getRelevantUrlFromBody(string $body, bool $searchNakedUrls = false) + public static function getRelevantUrlFromBody(string $body, bool $searchNakedUrls = false) { $URLSearchString = 'https?://[^\[\]]*'; // Fix for Mastodon where the mentions are in a different format $body = preg_replace("~\[url=($URLSearchString)]([#!@])(.*?)\[/url]~is", '$2[url=$1]$3[/url]', $body); - preg_match("~(?