Beiträge von MegaV0lt

    Neue Version 1.0.3 mit kleineren Änderungen

    Code
    2024-03-25: Version 1.0.3
    - [fix] Skip justify for fixed font
    - [add] Script 'check_fonts_for_hairspace.sh' to list fonts with 'HairSpace'.
            The script can be found in 'contrib/'
    - [add] Some new fonts added in 'contrib/Fonts'
    - [update] If available use 'HairSpace' for justifying text for best result
    - [update] Only justify lines with minimum of 80% width
    - [update] Some internal optimizations

    die Bilder im *.rec Folder sind nur für Anwendungen, die das plugin service interface von tvscraper nicht nutzen, also z.B. für KODI.

    live und die VDR skins nutzen das plugin service interface von tvscraper und ignorieren diese Bilder.

    Das mag ja stimmen. Bei mir sind aber einige Aufnahmen mit Bildern im Verzeichnis, wo das Skin nichts anzeigt, außer ich lade die .jpg im Aufnahme Verzeichnis

    Ich glaube was Taipan meint, wäre eine Automatisierung, dass nach einem erfolgreichen Schnitt bereits gescrapte Dateien (Bilder + die JSON) vom ungeschnittenen Ordner in den geschnittenen Ordner kopiert werden.

    Mach ich mit dem recordinghook vom VDR:

    VDR_config/local/vdr.d/scripts/vdr_record.sh at f0ce837eac5450fa0bd2a54af67a05f5375223bc · MegaV0lt/VDR_config
    _config. Contribute to MegaV0lt/VDR_config development by creating an account on GitHub.
    github.com

    Mit folgender Änderung (! statt HairSpace bei der Abfrage):

    Code
            u_int32_t HairSpaceCode = 0x00000021; // 0x0000200A;  // HairSpace: U+200A
            u_int32_t ThinSpaceCode = 0x00002009;  // ThinSpace: U+2009
            if (GetCharIndex(Setup.FontOsd, HairSpaceCode) > 0) {
                m_FillChar = u8"\U0000200A";
                dsyslog("flatPlus: JustifyLine(): Using 'HairSpace' (U+200A) as 'FillChar'");

    Bekomm ich das:

    Im Log sehe ich, dass das HairSpace verwendet wird. Hat 1 Pixel Breite. Jetz fragt sich warum der U+200A nicht geht. Vorhanden ist er ja, wie im Bild zu sehen...

    Teste noch ein Wenig...

    Danke für den Hinweis; Aber immer noch 0

    Log:

    Code
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] loading /srv/vdr/video/%%Die_interdimensionale_Höhle_der_Pancakes__(S03E11)_[75,3%]/2022-11-03.05.08.62-0.rec/marks
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] flatPlus: GetCharIndex() CharCode: 0x200A (8202), glyph_index: 0
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] flatPlus: GetCharIndex() CharCode: 0x2009 (8201), glyph_index: 0
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] flatPlus: JustifyLine(): Using 'Space' (U+0020) as 'FillChar'
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] flatPlus: JustifyLine() [Line: 13 Space, 727 width, 81 length] [FillChar: 5 needed, 0 blocksize, 5 remainder, 5 width] [FillChars: 0 length]
    Mär 01 07:25:59 yavdr-vbox vdr[12903]: [12903] flatPlus: JustifyLine() InsertedFillChar after third loop (' '): 5

    ?(

    Beim Versuch zu testen, ob das Zeichen im Font enthalten ist, bekomm ich immer 0 zurück. 0 ist in diesem Fall 'Zeichen nicht vorhanden'

    Die Funktion dazu:

    Teste mit der Ubuntu Schriftart, die die Zeichen enthält laut Zeichentabelle

    Neue Version 1.0.2 ist fertig:

    Das 'Feature' Blocksatz ist im Teststadium und kann im Plugin Menü unter Menü - Menü Einstellungen aktiviert werden und sieht dann in etwa so aus:

    Außerdem gibt es von JTe-git noch Anpassungen für OpenWeatherMap API 3.0

    Ich bastel gerade an einer einfachen Version einer Blocksatz-Funktion.

    Sie soll in Zeilen 'Hairspace' einfügen, um einen Blocksatz zu realisieren.

    Leerzeichen – Wikipedia

    Leider werden die Zeichen U+2009 (Thin Space) Oder U+200A (Hair Space) nur als Kästchen mit 10 Pixel Breite angezeigt.


    Anbei die Funktion, in der noch eine Menge dsyslog's sind

    Ein Auszug vom Log für die ersten zwei langen Zeilen:

    Das muss irgendwas mit Unicode und UTF-8 zu tun haben. Ich könnt eLeerzeichen verwenden, aber die sind 5 Pixel breit. Das Hair Space dürfte eher im Bereich von einem oder zwei Pixel liegen und würde auch ein optisch gutes Ergebnis liefern.


    Vielleicht hat jemand ne Idee warum das nicht klappt?

    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.

    Hier mal Beispiele wie im copy2usb.sh Skript, als Beispiel wie Warnungen oder Fehler ausgegeben werden

    Code
    f_svdrpsend MESG "%Aufnahme \"${TITLE}\" wird gerade kopiert. Abbruch!"
    f_svdrpsend MESG "@Ungültiger Parameter <${1}> oder kein USB-Laufwerk gefunden!"

    Das erste Zeichnen dient zur Festlegung des Meldungstyp.

    Wenn VDR das nicht unterstützt, wird das Zeichen entfernt und die Meldung als Info-Meldung ausgegeben

    Mir fehlt schon relativ lange die Möglichkeit am VDR Nachrichten abzusetzen, die Außer Info auch als Warnung oder Fehler angezeigt werden. Jetzt habe ich einen Patch geschrieben, der einen neuen Befehl einführt: MSGT (MessageType) - Analog zu MESG (Message)


    Man kann die Meldungsfarbe beeinflussen, in dem man den ersten Buchstaben auf '%' für Warnung oder '@' für Fehler setzt. Der Patch ist angehängt.


    Damit alte Skripte kompatibel bleiben, wird an MESG nichts verändert. Wenn Skripte den neuen Befehl verwenden wollen, müssen diese natürlich prüfen, ob der VDR das unterstützt.

    Dazu habe ich ein Beispiel:

    Das geht auch viel einfacher, in dem man die Meldung absetzt und die Antwort auswertet und gegebenenfalls neu absetzt.

    Habe meine Idee mit kls diskutiert. Dabei sind verschiedene Ansätze entstanden, die alle Vor- und Nachteile haben:


    1. Neuer Befehl MSGT wie oben beschrieben. Alte Skripte bleiben kompatibel. Wer den neuen Befehl verwenden will muss prüfen, ob er im VDR vorhanden ist (Siehe Oben).
    2. MESG wir umgebaut und funktioniert wie MSGT. Alte Skripte bleiben kompatibel. Neue Skripte geben bei alten VDR das erste Zeichen mit aus (%Meldung).
    3. MESG mit der Variante Schlüsselwörter zu verwenden. Alte Skripte bleiben kompatibel. Neue Skripte geben bei alten VDR das Schlüsselwort mit aus (Warning: Meldung). Schlüsselwort wird nicht übersetzt.

    Vor- und Nachteile:

    1: + MESG bleibt unverändert. - Es muss geprüft werden, ob MSGT integriert ist.

    2 und 3: + Kein neuer Befehl nötig. - Alte VDR geben zusätzliche Zeichen am Anfang aus (%, Warning:)

    3: + Schlüsselwort ist "verständlich". - Schlüsselwort nur in Englisch


    Nun die Frage, was am praktischen ist, bzw was für Meinungen es dazu gibt. Wie ist der Bedarf? Hat jemand weitere Vorschläge?

    Mein Favorit wäre die 1.

    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,

    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