Seite 11 von 12

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 10:56
von Gorcon
Jetzt scheint es zu funktionieren. Eben war auch die Aktualisierung von heute drin (davor stand noch 17.11).

Danke. Ich probiere es jetzt nochmal mit der VU+ Duo2SE aus. (die ist ja in Sachen Neutrino-Mediathek etwas zickig).

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 11:01
von BPanther
Ist eigentlich seit fast 1h schon drin. :)

Ich teste das hier mit der HD51 und Ultimo 4K und ab und an auch mit der DM920.


EDIT: Habe mir mal ein NI der Ultimo4K runtergeladen und selbst nachgeschaut. Kein Wunder, daß es bei NI diese Probleme (noch) nicht gibt, denn die MT Version ist da noch etwas älter. Da gibt es die addToggle Funktion noch nicht.

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 11:30
von Gorcon
Egal, jetzt läuft es. (auch auf der VU+).

Danke für die Anpassung.

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 11:32
von BPanther
Eben, hauptsache es funktioniert wieder. ;)

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 13:11
von vanhofen
BPanther hat geschrieben: Di 18. Nov 2025, 11:01 Habe mir mal ein NI der Ultimo4K runtergeladen und selbst nachgeschaut. Kein Wunder, daß es bei NI diese Probleme (noch) nicht gibt, denn die MT Version ist da noch etwas älter. Da gibt es die addToggle Funktion noch nicht.
Die VU-Images werden immer samstags gebaut. Da war die neue Mediathek noch nicht im Git. :)

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 13:15
von BPanther
Hehe, alles gut. Wollte das auch nur mal vergleichen, da ist mir das aufgefallen. ;)

Prinzipiell gehts ja nun. Das einzige ist noch die falsche Laufzeit in der aktuellen Version. Keine Ahnung ob das bei der älteren auch schon so ist. Mal schauen, ob ich da irgendwo die 1 Stunde zuviel abziehen kann.

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 14:10
von jokel
ich glaube das problem ist ..
https://github.com/tuxbox-neutrino/mt-a ... elpers.cpp

meiner meinung nach wäre das besser ..
hier mein vorschlag ..

Code: Alles auswählen

--- a/src/common/helpers.cpp
+++ b/src/common/helpers.cpp
@@
-time_t duration2time(const std::string &str)
-{
-    struct tm t;
-    memset(&t, 0, sizeof(t));
-
-    // String "HH:MM:SS" wird zerlegt
-    sscanf(str.c_str(), "%d:%d:%d", &t.tm_hour, &t.tm_min, &t.tm_sec);
-
-    // mktime interpretiert t als lokale Zeit (führt zu +1h Offset)
-    return mktime(&t);
-}
+time_t duration2time(const std::string &str)
+{
+    int h = 0, m = 0, s = 0;
+    // String "HH:MM:SS" wird zerlegt
+    sscanf(str.c_str(), "%d:%d:%d", &h, &m, &s);
+
+    // Dauer direkt in Sekunden berechnen, ohne Zeitzonen-/DST-Korrektur
+    return static_cast<time_t>(h * 3600 + m * 60 + s);
+}

ich kann das z.z. leider nicht testen ..

auf meinen api server unter python mache ich das so ..

Code: Alles auswählen

def parse_duration(dauer_str):
    try:
        h, m, s = map(int, dauer_str.strip().split(":"))
        return h * 3600 + m * 60 + s
    except:
        return 0

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 14:23
von BPanther
Gibt es aber weder im NI noch im DDT. Zudem könnte es sein, daß wenn Du das dort änderst, der EPG vielleicht von der Zeit her nicht mehr passt. Da dürfte es besser sein, das im Plugin anzupassen.

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 14:57
von vanhofen
Ohne es mir wirklich gut angeschaut zu haben ... Reicht es nicht, das +3600 zu entfernen? Das findet man 3x in helpers.cpp.

https://github.com/tuxbox-neutrino/mt-a ... rs.cpp#L31

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 15:24
von jokel
@vanhofen .. ja genau ..
für 1) ..

Code: Alles auswählen

--- a/src/common/helpers.cpp
+++ b/src/common/helpers.cpp
@@
-time_t duration2time(string t)
-{
-    struct tm tm;
-    memset(&tm, 0, sizeof(tm));
-    strptime(("1970-01-01 " + t).c_str(), "%F %T", &tm);
-    time_t ret = mktime(&tm) + 3600;
-    return ret;
-}
+time_t duration2time(string t)
+{
+    int h = 0, m = 0, s = 0;
+    // Zerlege den String "HH:MM:SS"
+    sscanf(t.c_str(), "%d:%d:%d", &h, &m, &s);
+
+    // Dauer direkt in Sekunden berechnen, ohne Zeitzonen-/DST-Korrektur
+    return static_cast<time_t>(h * 3600 + m * 60 + s);
+}
für 2) ..

Code: Alles auswählen

--- a/src/common/helpers.cpp
+++ b/src/common/helpers.cpp
@@
-int duration2sec(string t, string forceFormat)
-{
-    struct tm tm;
-    memset(&tm, '\0', sizeof(struct tm));
-    string t1 = trim(t);
-    string t2 = "1970-01-01 " + t1;
-    istringstream iss(t2);
-    string format = "%Y-%m-%d ";
-    if (forceFormat.empty()) {
-        size_t len = t1.length();
-        if (len == 8)
-            format += "%H:%M:%S";
-        else if (len == 5)
-            format += "%M:%S";
-        else if (len == 2)
-            format += "%S";
-        else {
-            cout << "[" << __func__ << ":" << __LINE__ << "] " << "Error parse time string \""<< t1 << "\"\n" << endl;
-            return 0;
-        }
-    }
-    else
-        format += forceFormat;
-    iss >> get_time(&tm, format.c_str());
-    if (iss.fail()) {
-        cout << "[" << __func__ << ":" << __LINE__ << "] " << "Error parse time string \""<< t2 << "\", format: \""<< format <<"\"\n" << endl;
-        return 0;
-    }
-    return static_cast<int>(mktime(&tm)) + 3600;
-}
+int duration2sec(string t, string forceFormat)
+{
+    int h = 0, m = 0, s = 0;
+    string t1 = trim(t);
+
+    if (forceFormat.empty()) {
+        size_t len = t1.length();
+        if (len == 8) {
+            // HH:MM:SS
+            sscanf(t1.c_str(), "%d:%d:%d", &h, &m, &s);
+        } else if (len == 5) {
+            // MM:SS
+            sscanf(t1.c_str(), "%d:%d", &m, &s);
+        } else if (len == 2) {
+            // SS
+            sscanf(t1.c_str(), "%d", &s);
+        } else {
+            cout << "[" << __func__ << ":" << __LINE__ << "] "
+                 << "Error parse time string \"" << t1 << "\"\n" << endl;
+            return 0;
+        }
+    } else {
+        // Falls forceFormat gesetzt ist, einfache HH:MM:SS-Interpretation
+        sscanf(t1.c_str(), "%d:%d:%d", &h, &m, &s);
+    }
+
+    // Dauer direkt in Sekunden zurückgeben, ohne Zeitzonen-/DST-Korrektur
+    return h * 3600 + m * 60 + s;
+}
für 3) ..

Code: Alles auswählen

--- a/src/common/helpers.cpp
+++ b/src/common/helpers.cpp
@@
-time_t str2time(string format, string t)
-{
-    struct tm tm;
-    memset(&tm, 0, sizeof(tm));
-    strptime(t.c_str(), format.c_str(), &tm);
-    time_t ret = mktime(&tm) + 3600;
-
-    return ret;
-}
+time_t str2time(string format, string t)
+{
+    struct tm tm;
+    memset(&tm, 0, sizeof(tm));
+    strptime(t.c_str(), format.c_str(), &tm);
+
+    // Lokale Zeit korrekt berechnen, ohne künstlichen +1h Offset
+    return mktime(&tm);
+}
@BPanther .. EPG ???

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 15:40
von BPanther
Naja, ich weiß nicht, ob es auch darauf Auswirkungen hat beim Tux Neutrino.

EDIT: Habe einfach hier -1 bei h hinzugefügt: https://github.com/tuxbox-neutrino/plug ... ek.lua#L37

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:08
von jokel
daran kannst du sehen .. das die zeit vom api server kommt in sekunden ..
wenn ich meinen api server eintrage ist der wert korrekt .. wenn ich jetzt die lua
ändern würde .. dann würde mir 1h fehlen da -1 und das wäre nicht korrekt :wink:
das plugin arbeitet also korrekt ..
dies beweist auch dieses bildchen .. mit meinem api server .. da stimmen die laufzeiten :wink:
[+] Spoiler

screenshot.png

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:22
von BPanther
Naja, dann ist eben da die Laufzeit falsch. Was solls, mit dem öffentlichen Server ist es halt 1h zuviel, also habe ich das im Plugin angepasst damit es auch stimmt. ;)

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:26
von Gorcon
Das ist dann ja auch kein Beinbruch, das kann man dann ja zur Not selbst ändern. (Das bekomme ich auch noch hin) :grin:

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:30
von jokel
BPanther hat geschrieben: Di 18. Nov 2025, 09:58 Aja, hatte nur grün probiert. Die anderen 3 Farben geben in der Tat diese Fehlermeldung. Und das ist beim NI nicht der Fall? Weil es fehlt dem die addToggle() Funktion. Entferne ich in Zeile 251 der config.lua einfach das "local" vor der Funktion addToggle passt es. Habs auf dem Server angepasst. Einfach nochmal installieren.

EDIT: "gelb" hat dennoch ein Problem. Geht man nur rein und wieder raus ohne was zu verstellen, dann wird es auch zu einem Fehler kommen wegen leerem String wenn man einfach nur nach unten geht. Passt man jedoch vorher was an, dann klappt es.
habe heute das aktuelle ni-image geflasht .. siehe bildchen ..
[+] Spoiler

screenshot (1).png
ich werde aber warten bis @dbt1 das fixt addToggle() .. also muss die 0.4.6 wieder herhalten ..

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:32
von BPanther
Hab doch oben geschrieben was zu tun ist. Einfach in der config.lua Funktion addToggle suchen und das local davor entfernen.
Das hier: https://github.com/tuxbox-neutrino/plug ... g.lua#L251

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:46
von jokel
BPanther hat geschrieben: Di 18. Nov 2025, 17:32 Hab doch oben geschrieben was zu tun ist. Einfach in der config.lua Funktion addToggle suchen und das local davor entfernen.
Das hier: https://github.com/tuxbox-neutrino/plug ... g.lua#L251
ja das habe ich gelesen :wink:
und ich hätte das auch regeln können .. den mittlerweile macht mir LUA coden richtig spass ..
und nicht nur LUA .. :nerd:

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 17:57
von jokel
vanhofen hat geschrieben: Di 18. Nov 2025, 14:57 Ohne es mir wirklich gut angeschaut zu haben ... Reicht es nicht, das +3600 zu entfernen? Das findet man 3x in helpers.cpp.

https://github.com/tuxbox-neutrino/mt-a ... rs.cpp#L31
ja hat @dbt1 vorhin gefixt :relaxed:
im in db-import

Re: Neutrino Mediathek

Verfasst: Di 18. Nov 2025, 21:58
von jokel
nachtrag ..
hat wohl nichts genutzt .. weil z.z. ist es 21:50 uhr
und datenbank sagt ..
[+] Spoiler

screenshot (2).png
vorher wurde alle 2h die datenbank aktualisiert .. :nerd:

Re: Neutrino Mediathek

Verfasst: Mi 19. Nov 2025, 07:39
von Knicko
Hab heute morgen den Importer manuell angeschubst, bei mir auf dem Server

Sieht jetzt zumindest gut aus mit den Laufzeiten.
heute2.png
heute1.png
mal schauen, ob sich die DB aktualisiert.

hr. Knicko