3 * Name: Leistungsschutzrecht
4 * Description: Only useful in germany: Remove data from snippets from members of the VG Media
6 * Author: Michael Vogel <https://pirati.ca/profile/heluecht>
9 function leistungsschutzrecht_install() {
10 register_hook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron');
11 register_hook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo');
12 register_hook('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo');
16 function leistungsschutzrecht_uninstall() {
17 unregister_hook('cron', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_cron');
18 unregister_hook('getsiteinfo', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo');
19 unregister_hook('page_info_data', 'addon/leistungsschutzrecht/leistungsschutzrecht.php', 'leistungsschutzrecht_getsiteinfo');
22 function leistungsschutzrecht_getsiteinfo($a, &$siteinfo) {
23 if (!isset($siteinfo["url"]))
26 if (!leistungsschutzrecht_is_member_site($siteinfo["url"]))
29 $siteinfo["title"] = $siteinfo["url"];
30 unset($siteinfo["text"]);
31 unset($siteinfo["image"]);
32 unset($siteinfo["images"]);
33 unset($siteinfo["keywords"]);
36 function leistungsschutzrecht_fetchsites() {
37 require_once("include/network.php");
41 $url = "http://www.vg-media.de/lizenzen/digitale-verlegerische-angebote/wahrnehmungsberechtigte-digitale-verlegerische-angebote.html";
43 $site = fetch_url($url);
45 $doc = new DOMDocument();
46 @$doc->loadHTML($site);
48 $xpath = new DomXPath($doc);
49 $list = $xpath->query("//td/a");
50 foreach ($list as $node) {
52 if ($node->attributes->length)
53 foreach ($node->attributes as $attribute)
54 $attr[$attribute->name] = $attribute->value;
56 if (isset($attr["href"])) {
57 $urldata = parse_url($attr["href"]);
59 if (isset($urldata["host"]) AND !isset($urldata["path"])) {
60 $cleanedurlpart = explode("%", $urldata["host"]);
62 $hostname = explode(".", $cleanedurlpart[0]);
63 $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1];
64 $sites[$site] = $site;
70 set_config('leistungsschutzrecht','sites',$sites);
74 function leistungsschutzrecht_is_member_site($url) {
75 $sites = get_config('leistungsschutzrecht','sites');
80 if (sizeof($sites) == 0)
83 $urldata = parse_url($url);
85 if (!isset($urldata["host"]))
88 $cleanedurlpart = explode("%", $urldata["host"]);
90 $hostname = explode(".", $cleanedurlpart[0]);
91 $site = $hostname[sizeof($hostname) - 2].".".$hostname[sizeof($hostname) - 1];
93 return (isset($sites[$site]));
96 function leistungsschutzrecht_cron($a,$b) {
97 $last = get_config('leistungsschutzrecht','last_poll');
100 $next = $last + 86400;
102 logger('poll intervall not reached');
106 leistungsschutzrecht_fetchsites();
107 set_config('leistungsschutzrecht','last_poll', time());