--- /dev/null
+<?php
+/**
+ * Name: Leistungsschutzrecht
+ * Description: Only useful in germany: Remove data from snippets from members of the VG Media
+ * Version: 0.1
+ * Author: Michael Vogel <https://pirati.ca/profile/heluecht>
+ */
+
+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');
+}
+
+
+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_getsiteinfo($a, &$siteinfo) {
+ if (!isset($siteinfo["url"]))
+ return;
+
+ if (!leistungsschutzrecht_is_member_site($siteinfo["url"]))
+ return;
+
+ $siteinfo["title"] = $siteinfo["url"];
+ unset($siteinfo["text"]);
+ unset($siteinfo["image"]);
+ unset($siteinfo["images"]);
+ unset($siteinfo["keywords"]);
+}
+
+function leistungsschutzrecht_fetchsites() {
+ require_once("include/network.php");
+
+ $sites = array();
+
+ $url = "http://www.vg-media.de/lizenzen/digitale-verlegerische-angebote/wahrnehmungsberechtigte-digitale-verlegerische-angebote.html";
+
+ $site = fetch_url($url);
+
+ $doc = new DOMDocument();
+ @$doc->loadHTML($site);
+
+ $xpath = new DomXPath($doc);
+ $list = $xpath->query("//td/a");
+ foreach ($list as $node) {
+ $attr = array();
+ if ($node->attributes->length)
+ foreach ($node->attributes as $attribute)
+ $attr[$attribute->name] = $attribute->value;
+
+ if (isset($attr["href"])) {
+ $urldata = parse_url($attr["href"]);
+
+ if (isset($urldata["host"]) AND !isset($urldata["path"])) {
+ $cleanedurlpart = explode("%", $urldata["host"]);
+
+ $hostname = explode(".", $cleanedurlpart[0]);
+ $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1];
+ $sites[$site] = $site;
+ }
+ }
+ }
+
+ if (sizeof($sites)) {
+ set_config('leistungsschutzrecht','sites',$sites);
+ }
+}
+
+function leistungsschutzrecht_is_member_site($url) {
+ $sites = get_config('leistungsschutzrecht','sites');
+
+ if ($sites == "")
+ return(false);
+
+ if (sizeof($sites) == 0)
+ return(false);
+
+ $urldata = parse_url($url);
+
+ if (!isset($urldata["host"]))
+ return(false);
+
+ $cleanedurlpart = explode("%", $urldata["host"]);
+
+ $hostname = explode(".", $cleanedurlpart[0]);
+ $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1];
+
+ return (isset($sites[$site]));
+}
+
+function leistungsschutzrecht_cron($a,$b) {
+ $last = get_config('leistungsschutzrecht','last_poll');
+
+ if($last) {
+ $next = $last + 86400;
+ if($next > time()) {
+ logger('poll intervall not reached');
+ return;
+ }
+ }
+ leistungsschutzrecht_fetchsites();
+ set_config('leistungsschutzrecht','last_poll', time());
+}
+?>