mediathekview / MServer

Server zum Steuern des Crawler
https://mediathekview.de
GNU General Public License v3.0
69 stars 19 forks source link

Änderung an der Filmliste? Whitespaces entfernt. #144

Closed leveled-up closed 7 years ago

leveled-up commented 7 years ago

Hallo,

mir ist eine Änderung an der Filmliste aufgefallen. Whitespaces wurden entfernt.

Zuvor:

{
  "Filmliste" : [ "18.03.2017, 11:24", "18.03.2017, 10:24", "3", "MSearch [Vers.: 2.7.6]", "173597a9f2799422951f157591267bc5" ],
  "Filmliste" : [ "Sender", "Thema", "Titel", "Datum", "Zeit", "Dauer", "Größe [MB]", "Beschreibung", "Url", "Website", "Url Untertitel", "Url RTMP", "Url Klein", "Url RTMP Klein", "Url HD", "Url RTMP HD", "DatumL", "Url History", "Geo", "neu" ],
  "X" : [ "3Sat", "3sat", "Der Atem der Vulkane © dpa", "16.03.2017", "20:15:00", "01:42:49", "1775", "Die Vulkane der Eifel haben eine Landschaft geformt, die in Europa einzigartig ist. Sie ist nicht nur ein attraktives Reiseziel, sondern auch ein echter Hotspot für Wissenschaftler. Hier kommen...", "http://nrodl.zdf.de/dach/3sat/17/03/170316_wissen_aktuell_ard/2/170316_wissen_aktuell_ard_2328k_p35v13.mp4", "http://www.3sat.de/mediathek/?mode=play&obj=65385", "", "", "90|476k_p9v13.mp4", "", "90|3328k_p36v13.mp4", "", "1489691700", "", "DE-AT-CH", "false" ],
  "X" : [ "", "", "Kunstfehler sind keine Kunst © dpa", "17.03.2017", "20:15:00", "00:44:13", "768", "\"Jeder Arzt ist ein Scharlatan, der nicht im Stande ist, seine Leistungen in Zahlen auszudrücken.\" So oder so ähnlich soll sich der bedeutendste Chirurg des 19. Jahrhunderts, Theodor...", "http://nrodl.zdf.de/none/3sat/17/03/170317_die_kontrolleure_ard/1/170317_die_kontrolleure_ard_2328k_p35v13.mp4", "http://www.3sat.de/mediathek/?mode=play&obj=65179", "", "", "7|rodl.zdf.de/none/3sat/17/03/170317_die_kontrolleure_ard/1/170317_die_kontrolleure_ard_476k_p9v13.mp4", "", "94|3328k_p36v13.mp4", "", "1489778100", "", "", "false" ],

Jetzt:

{"Filmliste":["05.04.2017, 15:15","05.04.2017, 13:15","3","MSearch [Vers.: 3.0.3]","6e12f631c065d3b5f1eec75893591fa4"],"Filmliste":["Sender","Thema","Titel","Datum","Zeit","Dauer","Größe [MB]","Beschreibung","Url","Website","Url Untertitel","Url RTMP","Url Klein","Url RTMP Klein","Url HD","Url RTMP HD","DatumL","Url History","Geo","neu"],"X":["3Sat","3sat","Die Lehrerin","04.04.2017","20:15:00","01:29:27","1540","Schüsse in der Schule: Lehrerin Katja wird durch die Schüsse eines ehemaligen Schülers getroffen und fällt ins Koma. Ihre Kollegin Andrea übernimmt die traumatisierte Klasse - und hat selbst...","http://nrodl.zdf.de/dach/3sat/17/04/170404_die_lehrerin_online/3/170404_die_lehrerin_online_2328k_p35v13.mp4","http://www.3sat.de/mediathek/?mode=play&obj=65721","","","92|476k_p9v13.mp4","","92|3328k_p36v13.mp4","","1491329700","","DE-AT-CH","false"],"X":["","","Griechenland von Insel zu Insel (5/5)","05.04.2017","17:45:00","00:43:10","739","Der Peloponnes ist der südlichste Ausläufer des Balkans. An zahlreichen historischen Stätten lässt sich in dieser Region ein Blick auf die Kultur der Antike werfen.","http://nrodl.zdf.de/dach/3sat/17/01/170105_griechenland_insel5_online/5/170105_griechenland_insel5_online_2328k_p35v13.mp4","http://www.3sat.de/mediathek/?mode=play&obj=63929","","","106|476k_p9v13.mp4","","106|3328k_p36v13.mp4","","1491407100","","DE-AT-CH","false"],

Nach dieser Änderung (seit dem 18.03, glaube ich) funktioniert ein Python-Progamm (siehe unten) nicht mehr. Es hatte zuvor mit der alten Version funktioniert:

def convert_filmlist(path):
    path = checkpath(path)
    if not os.path.isfile(os.path.join(path, 'Filmliste-akt.json')):
        sys.exit(1)

    with open(os.path.join(path, 'Filmliste-akt.json'), encoding='utf-8') as fin:
        fail = 0
        sender = ''
        thema = ''
        sender2num = {}
        output = []
        lines = 0
        urls = {}
        url_duplicates = 0
        for line in fin:
            lines += 1
            try:
                l = json.loads(line[8:-2])
            except ValueError:
                fail += 1
                continue
            if(l[0] != ''):
                sender = str(l[0].encode("ascii", "ignore").decode('ascii'))
                sender2num[sender] = 1
            else:
                sender2num[sender] += 1
            if(l[1] != ''):
                thema = l[1]
            titel = l[2]
            datum = l[3]
            dauer = l[5]
            print(dauer)
            try:
               h, m, s = dauer.split(':')
               xx = int(h) * 3600 + int(m) * 60 + int(s)
               if(xx < 600):
                  continue
            except ValueError:
                  continue
            print(xx)
            beschreibung = l[7]
            url = l[8]
            if not url.endswith('.mp4'):
                  continue
            website = l[9]

            if(url in urls):
                url_duplicates += 1
                continue
            urls[url] = True

            dline = (
                sender,
                titel,
                thema,
                datum,
                dauer,
                beschreibung[:80],
                url,
                website
            )
            output.append(dline)

    with open(os.path.join(path, 'Filmliste-good.json'), mode='w', encoding='utf-8') as fout:
        json.dump(output, fout, indent=4)

Das obige Python-Skript funktioniert auch nicht, wenn ich nach jedem "X" einen Zeilenumbruch (\n) einfüge. Kann sich jemand das ganze erklären?

Danke!

zxsd commented 7 years ago

Nachdem die Filmliste (unkomprimiert) exportiert wurde, @leveled-up , ist sie wie gehabt ...

exportierte_filmliste