X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=leistungsschutzrecht%2Fleistungsschutzrecht.php;h=f6c65399525f8919fd380a1aa639fe45d4ce3359;hb=d9c54193518678408093f21101b1bcc1c5796d57;hp=e22c2b6298cd5ae6815501c48983033baac1e894;hpb=48dcbc6f3fc3edae74e3ea2c823011bfb7c26081;p=friendica-addons.git diff --git a/leistungsschutzrecht/leistungsschutzrecht.php b/leistungsschutzrecht/leistungsschutzrecht.php index e22c2b62..f6c65399 100644 --- a/leistungsschutzrecht/leistungsschutzrecht.php +++ b/leistungsschutzrecht/leistungsschutzrecht.php @@ -6,58 +6,66 @@ * Author: Michael Vogel */ -use Friendica\Core\Config; - -function leistungsschutzrecht_install() { - register_hook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); - register_hook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); - register_hook('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); +use Friendica\App; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\DI; + +function leistungsschutzrecht_install() +{ + Hook::register('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); + Hook::register('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); + Hook::register('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); } +function leistungsschutzrecht_getsiteinfo(array &$siteinfo) { + if (!isset($siteinfo['url']) || empty($siteinfo['type'])) { + return; + } -function leistungsschutzrecht_uninstall() { - unregister_hook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); - unregister_hook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); - unregister_hook('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); -} + // Avoid any third party pictures, to avoid copyright issues + if (!in_array($siteinfo['type'], ['photo', 'video']) && DI::config()->get('leistungsschutzrecht', 'suppress_photos', false)) { + unset($siteinfo['image']); + unset($siteinfo['images']); + } -function leistungsschutzrecht_getsiteinfo($a, &$siteinfo) { - if (!isset($siteinfo["url"])) + if (!leistungsschutzrecht_is_member_site($siteinfo['url'])) { return; + } - if (!leistungsschutzrecht_is_member_site($siteinfo["url"])) - return; + if (!empty($siteinfo['text'])) { + $siteinfo['text'] = leistungsschutzrecht_cuttext($siteinfo['text']); + } - //$siteinfo["title"] = $siteinfo["url"]; - $siteinfo["text"] = leistungsschutzrecht_cuttext($siteinfo["text"]); - unset($siteinfo["image"]); - unset($siteinfo["images"]); - unset($siteinfo["keywords"]); + unset($siteinfo['keywords']); } -function leistungsschutzrecht_cuttext($text) { - $text = str_replace(array("\r", "\n"), array(" ", " "), $text); +function leistungsschutzrecht_cuttext(string $text): string +{ + $text = str_replace(["\r", "\n"], [' ', ' '], $text); do { $oldtext = $text; - $text = str_replace(" ", " ", $text); + $text = str_replace(' ', ' ', $text); } while ($oldtext != $text); - $words = explode(" ", $text); + $words = explode(' ', $text); - $text = ""; + $text = ''; $count = 0; $limit = 7; foreach ($words as $word) { - if ($text != "") - $text .= " "; + if ($text != '') { + $text .= ' '; + } $text .= $word; if (++$count >= $limit) { - if (sizeof($words) > $limit) - $text .= " ..."; + if (sizeof($words) > $limit) { + $text .= ' ...'; + } break; } @@ -65,18 +73,17 @@ function leistungsschutzrecht_cuttext($text) { return $text; } -function leistungsschutzrecht_fetchsites() { - require_once("include/network.php"); - +function leistungsschutzrecht_fetchsites() +{ // This list works - but question is how current it is - $url = "http://leistungsschutzrecht-stoppen.d-64.org/blacklist.txt"; - $sitelist = fetch_url($url); + $url = 'https://leistungsschutzrecht-stoppen.d-64.org/blacklist.txt'; + $sitelist = DI::httpClient()->fetch($url); $siteurls = explode(',', $sitelist); - $whitelist = array('tagesschau.de', 'heute.de', 'wdr.de'); + $whitelist = ['tagesschau.de', 'heute.de', 'wdr.de']; - $sites = array(); - foreach ($siteurls AS $site) { + $sites = []; + foreach ($siteurls as $site) { if (!in_array($site, $whitelist)) { $sites[$site] = $site; } @@ -89,7 +96,7 @@ function leistungsschutzrecht_fetchsites() { $url = "http://www.vg-media.de/lizenzen/digitale-verlegerische-angebote/wahrnehmungsberechtigte-digitale-verlegerische-angebote.html"; - $site = fetch_url($url); + $site = Network::fetchUrl($url); $doc = new DOMDocument(); @$doc->loadHTML($site); @@ -117,43 +124,55 @@ function leistungsschutzrecht_fetchsites() { */ if (sizeof($sites)) { - Config::set('leistungsschutzrecht','sites',$sites); + DI::config()->set('leistungsschutzrecht', 'sites',$sites); } } -function leistungsschutzrecht_is_member_site($url) { - $sites = Config::get('leistungsschutzrecht','sites'); +function leistungsschutzrecht_is_member_site(string $url): bool +{ + $sites = DI::config()->get('leistungsschutzrecht', 'sites'); - if ($sites == "") - return(false); + if ($sites == '') { + return false; + } - if (sizeof($sites) == 0) - return(false); + if (sizeof($sites) == 0) { + return false; + } $urldata = parse_url($url); - if (!isset($urldata["host"])) - return(false); + if (!isset($urldata['host'])) { + return false; + } - $cleanedurlpart = explode("%", $urldata["host"]); + $cleanedurlpart = explode('%', $urldata['host']); + + $hostname = explode('.', $cleanedurlpart[0]); + if (empty($hostname)) { + return false; + } + + if (count($hostname) <= 2) { + return false; + } - $hostname = explode(".", $cleanedurlpart[0]); - $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1]; + $site = $hostname[sizeof($hostname) - 2] . '.' . $hostname[sizeof($hostname) - 1]; - return (isset($sites[$site])); + return isset($sites[$site]); } -function leistungsschutzrecht_cron($a,$b) { - $last = Config::get('leistungsschutzrecht','last_poll'); +function leistungsschutzrecht_cron($b) +{ + $last = DI::keyValue()->get('leistungsschutzrecht_last_poll'); - if($last) { + if ($last) { $next = $last + 86400; - if($next > time()) { - logger('poll intervall not reached'); + if ($next > time()) { + Logger::notice('poll intervall not reached'); return; } } leistungsschutzrecht_fetchsites(); - Config::set('leistungsschutzrecht','last_poll', time()); + DI::keyValue()->set('leistungsschutzrecht_last_poll', time()); } -?>