[epgd, epg2vdr] VDR-EPG mittels eventsview.sql "bearbeiten"

  • Datenbank von epgd und epg von vdr sichern und im Bedarfsfall wiederherstellen`?

  • Try and Error...

    Problem ist, wenn es nicht geht, hab ich keine Anhaltspunkte, was nicht passt...


    Die eventsview.sql transferiert doch die Daten von der Datenbank zum VDR. Dann müsste die Datenbank doch immer intakt bleiben?

  • Du kannst natürlich deine view einspielen und das Ergebnis mal ausgeben lassen. Z.B. würde ich im Script den Namen der View ändern, damit es keine Konflikte gibt. Z.B. zu CREATE VIEW eventsview_test oder was auch immer. Die view einspielen

    Code
    View einspielen:
    mysql -u epg2vdr --password epg2vdr < eventsview_test.sql
    
    Ausführen und in Datei speichern (max. 20 Einträge):
    echo "select * from eventsview_test limit 20" | mysql -u epg2vdr --password epg2vdr  > OUTPUT.txt
    
    Test view droppen:
    echo "drop view eventsview_test" | mysql -u epg2vdr --password epg2vdr

    Das OUTPUT.txt kann man dann prüfen. Besser noch das select-Statement einschränken auf das Feld/die Felder, die man sehen will.

  • Vielen Dank.


    Probiere das aus, sobald ich wieder am VDR bin.

  • Leider klappt schon das Einspielen nicht:

    Code
    darkwing@vdr01:~$ mysql -u epg2vdr --password epg2vdr < eventsview_test.sql
    Enter password: 
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Null then
          case when sub_shorttext is Null then '' else
            case whe...' at line 82

    Hier der Abschnitt:

    Code
        /* case when epi_season is Null then '' else concat('|Staffel: ', cast(epi_season as char)) end, */
        /* Beispiel: KKP S02 E04. Als der Start von Keefs neuer Initia… */
        case when epi_season is Null then
          case when sub_shorttext is Null then '' else
            case when REGEXP_INSTR(sub_shorttext, 'S[0-9]+ ') = 0 then '' else
              concat('||Staffel: ', REGEXP_SUBSTR(sub_shorttext, 'S[0-9]+')) end end
        else
          concat('|Staffel: ', cast(epi_season as char)) end,

    Kann es sein, dass sub_shorttext nicht geht, weil oben schon bearbeitet?

  • Jetzt hat es geklappt... Nun geht es ans testen

  • Bei einem Limit von 100000 hab ich dann Einträge erwischt:

    Code
    8002862    26202    S19.2E-53-1105-4124    vdr    1707898100    P    NULL    NULL    81    1    Making the Soloist VR    Free Solo am Les Drus in Frankreich S01 E02. Für Alex Honnold und Nico Hojac geht es ins Mont Blanc Massiv nach Frankreich, genauer zu einer Route des Les Druns.    Für Alex Honnold und Nico Hojac geht es ins Mont Blanc Massiv nach Frankreich, genauer zu einer Route des Les Druns. Können sie am "Cerro Torre der Alpen" ihre Ziele in die Tat umsetzen? (2022)    DVB    1708320000    1500    12    0    0x40,    \n\nFür Alex Honnold und Nico Hojac geht es ins Mont Blanc Massiv nach Frankreich, genauer zu einer Route des Les Druns. Können sie am "Cerro Torre der Alpen" ihre Ziele in die Tat umsetzen? (2022)\n\nAltersempfehlung: ab 12\n\nStaffel: S01\n\nEpisode: E02\n\nEPG: DVB

    Jetzt muss ich noch herausfinden, wie man das

    Code
    Staffel: S01\n\nEpisode: E02\

    noch bereinigt, damit am Ende auch Staffel: 1 rauskommt

  • Das ist seltsam. Ich habe dein Schnipsel mal in das select meiner eventsview gepackt und ich bekomme keinen Fehler.


    Ich bekomme dann sowas als Ergebnis:

    Code
    |Staffel: 9
    |Staffel: 6
    |Staffel: 55
    |Staffel: 55


    Edit: Achje. Ich war viel zu langsam, weil ich unterbrochen wurde :D

  • Es geht nur um Sender, die keine ID haben und im Kurztext die Sxx Exx verstecken...


    Ich denke es geht jetzt. Hab noch jeweils zwei Trim eingebaut.

    Code
        case when epi_season is Null then
          case when sub_shorttext is Null then '' else
            case when REGEXP_INSTR(sub_shorttext, 'S[0-9]+ ') = 0 then '' else
              concat('||Staffel: ', TRIM(LEADING '0' FROM TRIM(LEADING 'S' FROM REGEXP_SUBSTR(sub_shorttext, 'S[0-9]+')))) end end
        else
          concat('||Staffel: ', cast(epi_season as char)) end,
  • Wie muss ich das nun verändern, um nach mehreren Mustern zu suchen?


    Oder gibt es eine bessere Alternative?

    Ich hätte gerne die Möglichkeit das mit einem Skript zu machen:

    Das Skript durchsucht die DB nach Eintragen, bei denen epi_season leer ist und sucht dann die Daten im sub_shorttext oder der Beschreibung und fügt die Werte dann in die DB ein.

  • Wie muss ich das nun verändern, um nach mehreren Mustern zu suchen?


    Oder gibt es eine bessere Alternative?

    Ich hätte gerne die Möglichkeit das mit einem Skript zu machen:

    Das Skript durchsucht die DB nach Eintragen, bei denen epi_season leer ist und sucht dann die Daten im sub_shorttext oder der Beschreibung und fügt die Werte dann in die DB ein.

    Evtl. hilft dir dieses Script eines für deine Bedürfnisse zu bauen:

Jetzt mitmachen!

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