Episoden Infos von The TVDB abfragen

  • die seite möchte nicht von einer Maschiene Angesprochen werden...

    Nein. 403 bedeutet, dass du auf eine URL zugreifst, die nicht ausgeliefert werden kann/darf, weil die entweder unvollständig, die Ressource (Datei) nicht angegeben/gefunden wurde oder aufgrund von Policies eine Anzeige von Verzeichnissen unterdrückt wird.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • okay, wenn ich das ganze wie folgt änder

    aber dann kommt folgender Fehler...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Die Funktion urllib2.urlopen() erwartet einen Zahlenwert für den Timeout, da steht aber None (Zeile 4). Kannst ja mal eine 30 eintragen. Ansonsten kannst Du auch ohne zusätzliche Parameter aufrufen (timeout, headers). So mache ich das eigentlich.


    Code
    try:
        req = urllib2.urlopen(url.encode('utf-8'))
    except UnicodeDecodeError:
        req = urllib2.urlopen(url)

    Lässt sich denn die url, die du übergibst, direkt im Browser aufrufen?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • ja, das geht... ich bin auch ein wenig weiter...

    so kommt ersteinmal keine Fehlermeldung:


    aber:
    hier wird ein string für "category" erwartet, richtig?


    bei mir ist category aber so definiert

    Python
    SPWatchtypes = {'international': 1, 'german': 5, 'classic': 3, 'soap': 2}

    also eine number oder?

    wenn ich also aus dem 2. %s ein %d mache kommt...

    Code
    Error Type: <type 'exceptions.TypeError'>
     Error Contents: %d format: a number is required, not str
     Traceback (most recent call last):
     File "G:\KODI-Krypton\portable_data\addons\plugin.program.serienplaner\default.py", line 469, in <module>
     scrapeWLPage(category)
     File "G:\KODI-Krypton\portable_data\addons\plugin.program.serienplaner\default.py", line 366, in scrapeWLPage
     url = '%s%d/0' % (WLURL, category)

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Die Fehlermeldung steht doch in Zeile 2: Python erwartet jetzt eine Nummer, Du lieferst aber einen String. Was steht denn in category? Das was da drüber steht, ist ein Dictionary namens SPWatchtypes und keine Variable namens category...

    Mit nur schnipselweisen Auszügen aus dem Quellcode gestaltet sich die Fehlersuche für mich nicht gerade einfach. Hast Du nicht irgendwo den kompletten Code?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Im Grunde habe ich ja deinen Code den ich abgewandelt habe...

    category wird hier definiert:

    Python
    def categories():
        cats = []
        for category in SPWatchtypes:
            if __addon__.getSetting(category).upper() == 'TRUE': cats.append(category)
        return cats

    ich schick die mal den kompletten Code per Konversation hier...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • category liefert eine Liste der (im Setup angehakten) Kategorien, also

    Code
    ['german', 'international', 'soap', 'classic']


    Du brauchst aber die Nummer. Aus category wird dann:

    Code
    SPWatchtypes[category]

    obiger Code zum Scrapen muss demzufolge sein:


    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Danke, ich probiere mal...

    bin auch schon ein wenig weiter...

    hab einfach mal die url "per hand" eingesetzt und noch viele kleine Fehler gefunden aber das Ergebnis:

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • ich hab noch einmal eine Frage, ;)

    wenn ich jetzt versuche die details von der detailURL zu holen klappt das nicht...

    Python
    details = WLScraper()
    details.scrapeDetailPage(getUnicodePage(data.detailURL), 'div class="text"')

    data.detailURL ist http://www.wunschliste.de/episode/778623
    aber ich bekomme einen Fehler:


    unknown url type


    so, ich habs gelöst...

    EDIT:

    jetzt läuft es soweit.... jetzt kann ich mal um die Skinseitige umsetzung kümmern...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

    2 Mal editiert, zuletzt von sveni_lee (24. März 2016 um 13:55)

  • Python
    from datetime import timedelta
    ende = timedelta(hours=21, minutes=12)
    start = timedelta(hours=20, minutes=15)
    
    
    print ende-start
    0:57:00

    ;)

    so, jetzt versuche ich mich mal damit zu beschäftigen...

    bei mir müsste ich ja den Stunden und Minuten eine Variable zuordnen
    aber das verstehe ich noch nicht ganz...

    meine Zeitformat das ich auslese: _tvshowendtime = YYYYmmddHHMMSS

    um auch den Tageswechsel zu berücksichtigen müsste ich ja nun den kompletten Zeitstrang berücksichtigen...
    aber dass bekomme ich nicht hin mit den variablen

    im Grunde wäre es ja:

    Python
    ende = timedelta(years=%Y, months=%m, days=%d, hours=%H, minutes=%M, seconds=%S)(_tvshowendtime)


    aberirgendwie müsste ich ja noch definiren, wie _tvshowtime aufgebaut ist...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • bei mir müsste ich ja den Stunden und Minuten eine Variable zuordnen
    aber das verstehe ich noch nicht ganz...

    Vergiß es, bei Datum und Zeit mit Variablen zu rechnen. Datum und Zeit sind Python-Objekte, und die haben entsprechende Eigenschaften und Methoden, u.a. zur Berechnung von Zeitdifferenzen ;).

    Beschäftige dich erstmal in Ruhe mit dem Time-, dem Date- und dem Datetime-Objekt (hier ab Abschnitt 'timedeltas') : https://pymotw.com/2/datetime/


    um auch den Tageswechsel zu berücksichtigen müsste ich ja nun den kompletten Zeitstrang berücksichtigen...

    Nein, wenn Du eine negative Zeitdifferenz erhältst, rechnest Du einfach 24h dazu, dann stimmt das wieder. Bekommt man mit timedelta(days=1) hin.

    Sorry, mehr kann ich heute nicht bieten.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • okay, das halt schon geholfen...

    gibt folgendes Ergebnis:

    Code
    2016-03-27 18:32:00
    2016-03-27 20:28:00
    1:56:00


    jetzt würde ich das Ergebnis gern in Minuten umwandeln...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Und bei timedelta brauchst Du auch nicht den Übergang von einem zum nächsten Tag (z.B. 23:30 - 00:45) berücksichtigen, das macht _timediff.seconds von alleine richtig.

    Folgende Imports kannst Du weglassen:

    Python
    from datetime import timedelta # Methode gehört zur datetime-Klasse
    import _strptime # ?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Und bei timedelta brauchst Du auch nicht den Übergang von einem zum nächsten Tag (z.B. 23:30 - 00:45) berücksichtigen, das macht _timediff.seconds von alleine richtig.

    ja, das mit der Berechnung des Timedelta haut super hin...

    Aber eine kleine Sache macht mir grad koppzerbrechen:

    damit wird ja der Scraper angeworfen mit der gewählen "cats"...

    bei mir sieht das ganze ja so aus

    Python
    SPWatchtypes = {'international': 1, 'german': 5, 'classics': 3, 'soap': 2}
    SPTranslations = {'international': __LS__(30120), 'german': __LS__(30121), 'classics': __LS__(30122), 'soap': __LS__(30123)}


    und es müsste dann __LS__(30120) der wert 1 zugeornet werden...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!