#!/usr/bin/env python3
import urllib.request
import urllib.error
from random import choice

if __name__ == '__main__':
    userAgents = ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36', 'Opera/9.63 (Macintosh; Intel Mac OS X; U; en) Presto/2.1.1', 'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11', " : "'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0', 'Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0', 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0')
    urls = {"Königreich" :                  "http://koenigreichdeutschland.org/de/",
            "KaDaFa" :                      "https://kadari.net/",
            "Gemeinwohlkasse" :             "https://gemeinwohlkasse.org/",
            "Königliche Reichsbank" :       "http://krb.koenigreichdeutschland.org/de/",
            "Meldeamt" :                    "http://meldeamt.koenigreichdeutschland.org/de/",
            "Deutsche Heilfürsorge" :       "https://deutsche-heilfuersorge.org/",
            "Deutsche Rente" :              "https://deutsche-rente.org/",
            "Akademie" :                    "https://krd-akademie.org/",
            "KRD-Tube" :                    "https://krdtube.org/",
            "Erneuerte Vereinte Nationen" : "https://united-nations.org/",
            "Vollholzprofi" :               "https://vollholzprofi.org/",
            "Mein KRD" :                    "https://meinkrd.org/meinkrd/",
            "Menschensohn" :                "https://menschensohn.org/",
            "KRD Messe" :                   "https://krd-messe.org/",
            "angebliche Verfassungsdiskussion" : "https://gemeinwohlstaat.org/",
            "Datenbank mutiger Juristen" :  "https://idealisten-juristen.org/",
            "KRD Zone" :                    "https://krd.zone/",
            "Elektronischer Zahlungsausgleich" : " https://krb-eza.koenigreichdeutschland.org/eza/",
    }
    keywords = ('Königlich','Königreich','Gemeinwohl','KRD','Zugehöriger','Zugehörigkeit','temporär','weiteren Rechte oder Pflichten','Meldeamt','Staatszu- oder Angehöriger','EZA')
    print("[table]")
    for page in urls.keys():
        url = urls[page]
        req = urllib.request.Request(
            url, 
            data=None, 
            headers={
            'User-Agent': choice(userAgents)
            }
        )
        try:
            f = urllib.request.urlopen(req)
            content = f.read().decode('utf-8')
            colour = "green"
            status = "HTTP Status " + str(f.getcode()) + ", erreichbar"
            if ("Anonleaks" in content or "Tinfoil" in content):
                colour = "red"
                status += ", Umleitung zu Anonleaks"
            elif ("default webpage generated for" in content and "Plesk International GmbH" in content):
                colour = "black"
                status += ", Plesk default page"
            else:
                score = 0
                for keyword in keywords:
                    if keyword in content: score += 1
                    if score >= 3:
                        status += ", KRD-Content"
                        break
        except urllib.error.HTTPError as error:
            if 520 <= error.code and error.code <= 530:
                colour = "red"
                status = "HTTP Status " + str(error.code) + ", Cloudflare Error"
            else:
                colour = "red"
                status = "HTTP Status " + str(error.code) + ", nicht erreichbar"
        except urllib.error.URLError as error:
            colour = "red"
            status = "nicht erreichbar, timeout"
        except:
            color = "red"
            status = "nicht erreichbar"
        print ("[tr][td]",page,"[/td][td][url]",url,"[/url][/td][td][color=" , colour , "]" , status , "[/color][/td][/tr]",sep='')
    print("[/table]")