X-Git-Url: https://git.mxchange.org/?p=friendica-addons.git;a=blobdiff_plain;f=leistungsschutzrecht%2Fleistungsschutzrecht.php;h=f5cee1170bba5d89a8e70ee58ec0ee23572cf44f;hp=c33c1f4928026436575cf26f41bbbbcc21b26fca;hb=0afd633346b517894ff8e92c705bd5d052dd06a2;hpb=5d33440e635c7f6d2f52c1882798839fb27abc17 diff --git a/leistungsschutzrecht/leistungsschutzrecht.php b/leistungsschutzrecht/leistungsschutzrecht.php index c33c1f49..f5cee117 100644 --- a/leistungsschutzrecht/leistungsschutzrecht.php +++ b/leistungsschutzrecht/leistungsschutzrecht.php @@ -5,18 +5,20 @@ * Version: 0.1 * Author: Michael Vogel */ +use Friendica\Core\Addon; +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'); + Addon::registerHook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); + Addon::registerHook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); + Addon::registerHook('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'); + Addon::unregisterHook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron'); + Addon::unregisterHook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); + Addon::unregisterHook('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo'); } function leistungsschutzrecht_getsiteinfo($a, &$siteinfo) { @@ -26,16 +28,63 @@ function leistungsschutzrecht_getsiteinfo($a, &$siteinfo) { if (!leistungsschutzrecht_is_member_site($siteinfo["url"])) return; - $siteinfo["title"] = $siteinfo["url"]; - unset($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(["\r", "\n"], [" ", " "], $text); + + do { + $oldtext = $text; + $text = str_replace(" ", " ", $text); + } while ($oldtext != $text); + + $words = explode(" ", $text); + + $text = ""; + $count = 0; + $limit = 7; + + foreach ($words as $word) { + if ($text != "") + $text .= " "; + + $text .= $word; + + if (++$count >= $limit) { + if (sizeof($words) > $limit) + $text .= " ..."; + + break; + } + } + return $text; +} + function leistungsschutzrecht_fetchsites() { require_once("include/network.php"); + // This list works - but question is how current it is + $url = "http://leistungsschutzrecht-stoppen.d-64.org/blacklist.txt"; + $sitelist = fetch_url($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"; @@ -56,7 +105,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]); @@ -65,14 +114,15 @@ function leistungsschutzrecht_fetchsites() { } } } +*/ if (sizeof($sites)) { - set_config('leistungsschutzrecht','sites',$sites); + Config::set('leistungsschutzrecht','sites',$sites); } } function leistungsschutzrecht_is_member_site($url) { - $sites = get_config('leistungsschutzrecht','sites'); + $sites = Config::get('leistungsschutzrecht','sites'); if ($sites == "") return(false); @@ -94,7 +144,7 @@ function leistungsschutzrecht_is_member_site($url) { } function leistungsschutzrecht_cron($a,$b) { - $last = get_config('leistungsschutzrecht','last_poll'); + $last = Config::get('leistungsschutzrecht','last_poll'); if($last) { $next = $last + 86400; @@ -104,6 +154,6 @@ function leistungsschutzrecht_cron($a,$b) { } } leistungsschutzrecht_fetchsites(); - set_config('leistungsschutzrecht','last_poll', time()); + Config::set('leistungsschutzrecht','last_poll', time()); } ?>