110 lines
3.1 KiB
PHP
110 lines
3.1 KiB
PHP
|
<?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());
|
||
|
}
|
||
|
?>
|