X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=leistungsschutzrecht%2Fleistungsschutzrecht.php;h=04bbd47417a2c7dccc90c9fe3911d45bd420ecb2;hb=af10b60e97b94ba5e8bf60195038c51433966e08;hp=60ca9b8b2dce3a6fa751de2d771e37c5c7360edb;hpb=8fa3f2415a3f3906f5fdadd1601ec6830ecce3c9;p=friendica-addons.git diff --git a/leistungsschutzrecht/leistungsschutzrecht.php b/leistungsschutzrecht/leistungsschutzrecht.php index 60ca9b8b..04bbd474 100644 --- a/leistungsschutzrecht/leistungsschutzrecht.php +++ b/leistungsschutzrecht/leistungsschutzrecht.php @@ -6,35 +6,40 @@ * Author: Michael Vogel */ -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\Core\Hook; +use Friendica\Core\Logger; +use Friendica\DI; -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'); +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($a, &$siteinfo) { - if (!isset($siteinfo["url"])) + if (!isset($siteinfo["url"]) || empty($siteinfo['type'])) { return; + } - if (!leistungsschutzrecht_is_member_site($siteinfo["url"])) + // 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"]); + } + + 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"]); } function leistungsschutzrecht_cuttext($text) { - $text = str_replace(array("\r", "\n"), array(" ", " "), $text); + $text = str_replace(["\r", "\n"], [" ", " "], $text); do { $oldtext = $text; @@ -63,14 +68,30 @@ 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 = DI::httpRequest()->fetch($url); + $siteurls = explode(',', $sitelist); + + $whitelist = ['tagesschau.de', 'heute.de', 'wdr.de']; + + $sites = []; + foreach ($siteurls as $site) { + if (!in_array($site, $whitelist)) { + $sites[$site] = $site; + } + } + // I would prefer parsing the list from the original site, but I haven't found a list. + // The following stays here to possibly reenable it in the future without having to reinvent the wheel completely. +/* $sites = array(); $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); @@ -95,14 +116,15 @@ function leistungsschutzrecht_fetchsites() { } } } +*/ if (sizeof($sites)) { - set_config('leistungsschutzrecht','sites',$sites); + DI::config()->set('leistungsschutzrecht','sites',$sites); } } function leistungsschutzrecht_is_member_site($url) { - $sites = get_config('leistungsschutzrecht','sites'); + $sites = DI::config()->get('leistungsschutzrecht','sites'); if ($sites == "") return(false); @@ -118,22 +140,30 @@ function leistungsschutzrecht_is_member_site($url) { $cleanedurlpart = explode("%", $urldata["host"]); $hostname = explode(".", $cleanedurlpart[0]); + if (empty($hostname)) { + return false; + } + + if (count($hostname) <= 2) { + return false; + } + $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1]; return (isset($sites[$site])); } function leistungsschutzrecht_cron($a,$b) { - $last = get_config('leistungsschutzrecht','last_poll'); + $last = DI::config()->get('leistungsschutzrecht','last_poll'); if($last) { $next = $last + 86400; if($next > time()) { - logger('poll intervall not reached'); + Logger::log('poll intervall not reached'); return; } } leistungsschutzrecht_fetchsites(); - set_config('leistungsschutzrecht','last_poll', time()); + DI::config()->set('leistungsschutzrecht','last_poll', time()); } ?>