X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=leistungsschutzrecht%2Fleistungsschutzrecht.php;h=142661a69989adfdf65b644fec7d477d1f423568;hb=9640142a720dfc7683e7bbf60d6f4f8799b918e9;hp=39eb4db13a5181db5d1016b89e5b01a6bed25654;hpb=6d6e73096afb22e95678c651e055337f1bf5405d;p=friendica-addons.git diff --git a/leistungsschutzrecht/leistungsschutzrecht.php b/leistungsschutzrecht/leistungsschutzrecht.php index 39eb4db1..142661a6 100644 --- a/leistungsschutzrecht/leistungsschutzrecht.php +++ b/leistungsschutzrecht/leistungsschutzrecht.php @@ -6,35 +6,48 @@ * Author: Michael Vogel */ +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\DI; +use Friendica\Network\HTTPRequest; + 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'); + 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_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'); + Hook::unregister('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); + Hook::unregister('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); + Hook::unregister('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; + } + + // 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"])) + 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 +76,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 = HTTPRequest::fetchUrl($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); @@ -86,7 +115,7 @@ function leistungsschutzrecht_fetchsites() { if (isset($attr["href"])) { $urldata = parse_url($attr["href"]); - if (isset($urldata["host"]) AND !isset($urldata["path"])) { + if (isset($urldata["host"]) && !isset($urldata["path"])) { $cleanedurlpart = explode("%", $urldata["host"]); $hostname = explode(".", $cleanedurlpart[0]); @@ -95,14 +124,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 +148,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()); } ?>