* Version: 0.1
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
*/
+use Friendica\Core\Addon;
+use Friendica\Core\Config;
+use Friendica\Util\Network;
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) {
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_fetchsites() {
- require_once("include/network.php");
+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()
+{
+ // This list works - but question is how current it is
+ $url = "http://leistungsschutzrecht-stoppen.d-64.org/blacklist.txt";
+ $sitelist = Network::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);
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]);
}
}
}
+*/
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);
}
function leistungsschutzrecht_cron($a,$b) {
- $last = get_config('leistungsschutzrecht','last_poll');
+ $last = Config::get('leistungsschutzrecht','last_poll');
if($last) {
$next = $last + 86400;
}
}
leistungsschutzrecht_fetchsites();
- set_config('leistungsschutzrecht','last_poll', time());
+ Config::set('leistungsschutzrecht','last_poll', time());
}
?>