STV Manager übertragung an JD Fehler

Multi-Funktions-Werkzeug zur Verwaltung von Save.TV
by thomasfl
Benutzeravatar
sv00010
Beiträge: 913
Registriert: Sa 20. Feb 2016, 16:41
bevorzugter Onlinevideorecorder: onlinetvrecorder.com

STV Manager übertragung an JD Fehler

Beitrag von sv00010 »

Lignage hat geschrieben: Do 16. Apr 2020, 19:14 Vorab der lädt jetzt nicht die 20000 Daten von SaveTV. Das ist nur die wo auf dem Server von SaveTV befinden .
Nein, ich meinte damit, dass beim Herausfinden der 20000 Dateien, die auf dem Server sind, ein Fehler passieren könnte.
Nur weil du die Dateien nicht runterlädst, bedeutet dass nicht, dass keine Kommunikation besteht.
Das Programm muss trotzdem die Daten holen, welches es braucht, um z.B. den Dateiname, die Dateilänge, den Beschreibungstext usw. herauszufinden.
Wenn die dafür verwendete API plötzlich eine Timeout bekommt, z.B. weil der Save.tv-Server hängt, dann kommen keine Daten bei dir an.
Das könnte dann dafür sorgen, dass die Liste NULL ist (weil die von der API verwendete Verbindung (TCP/IP) z.B. einen Timeout erhalten hatte.

Link:
BBcode:
HTML:
Hide post links
Show post links
Lignage
Beiträge: 10
Registriert: Do 12. Mär 2020, 12:11

STV Manager übertragung an JD Fehler

Beitrag von Lignage »

Ok hab’s verstanden?

Bringt das löschen ältere folgen etwas ? Oder kann man das überprüfen?

Link:
BBcode:
HTML:
Hide post links
Show post links
thomasfl
STV MANAGER
STV MANAGER
Beiträge: 431
Registriert: Fr 4. Mär 2016, 11:54

STV Manager übertragung an JD Fehler

Beitrag von thomasfl »

@sv00010: Du liegst mit Deiner Einschätzung sehr weit daneben, außerdem hilft das ja Lignage sowieso nicht.

Wenn Du es genau wissen willst, dann finde den Fehler:

Code: Alles auswählen

        private void StvAutoDownload()
        {
            IEnumerable<tTelecast> newTelecasts = stv.VideoArchive.GetById(downloader.Telecasts.GetNotDownloadedTelecastIds());
            OnLogEvent(new LogEventArgs(newTelecasts.ToString() + " neue Sendungen zum automatischen Download gefunden."));

            if (newTelecasts.Count() > 0)
            {
                if (settings.AutoDownloadAwaitAdFree)
                {
                    newTelecasts = newTelecasts.Where(tc => tc.AdFree == true);
                }
                if (settings.AutoDownloadSkipDuplicates)
                {
                    newTelecasts = newTelecasts.Where(tc => tc.Duplicate == false);
                }
                OnLogEvent(new LogEventArgs("Automatischer Download " + String.Join(",", newTelecasts.Select(tc => tc.ID))));
                StvTelecastsDownload(newTelecasts, settings.StvDefaultVideoFormat);              ^^hier^^
            }
        }
Es ist meistens sehr viel einfacher zu finden, wo der Fehler ist, als warum der Code an der Stelle aussteigt.
Bild STV MANAGER - Tool zur Verwaltung von Save.TV --- Neuigkeiten & Downloads --- Fragen & Support

Link:
BBcode:
HTML:
Hide post links
Show post links
thomasfl
STV MANAGER
STV MANAGER
Beiträge: 431
Registriert: Fr 4. Mär 2016, 11:54

STV Manager übertragung an JD Fehler

Beitrag von thomasfl »

@Lignage: Ich habe den Fehler einmal reproduzieren können, jetzt aber nicht mehr :roll: Ich sagte doch, die AutoDownload-Funktion ist kniffelig zu debuggen ...

In Deiner Downloader.xml sind viele halbfertige Downloads gelistet. Bitte probiere aus, ein Deinen Programmeinstellungen die Downloader.xml und die StvArchive.xml beide in .xml.bak umzubenennen (dann hast Du sie noch) und dann den STVM zu starten. Die Dateien werden dann neu geschrieben.

Dabei verlierst Du allerdings alle Informationen über bereits geladene Sendungen. Du kannst es deswegen auch erstmal nur mit der StvArchive.xml versuchen.
Bild STV MANAGER - Tool zur Verwaltung von Save.TV --- Neuigkeiten & Downloads --- Fragen & Support

Link:
BBcode:
HTML:
Hide post links
Show post links
Lignage
Beiträge: 10
Registriert: Do 12. Mär 2020, 12:11

STV Manager übertragung an JD Fehler

Beitrag von Lignage »

thomasfl hat geschrieben: Do 16. Apr 2020, 21:47 @Lignage: Ich habe den Fehler einmal reproduzieren können, jetzt aber nicht mehr :roll: Ich sagte doch, die AutoDownload-Funktion ist kniffelig zu debuggen ...

In Deiner Downloader.xml sind viele halbfertige Downloads gelistet. Bitte probiere aus, ein Deinen Programmeinstellungen die Downloader.xml und die StvArchive.xml beide in .xml.bak umzubenennen (dann hast Du sie noch) und dann den STVM zu starten. Die Dateien werden dann neu geschrieben.

Dabei verlierst Du allerdings alle Informationen über bereits geladene Sendungen. Du kannst es deswegen auch erstmal nur mit der StvArchive.xml versuchen.
Sorry war von mir jetzt nicht böse oder so gemeint. Ich bezweifle nicht das des keine Arbeit ist oder leicht .

Hab jetzt beide Dateinamen geändert dann tat sich was er wollte alles an JD übertragen. Aber passiert ist nichts hab STV nochmals gestartet da hat er nur paar Sachen übertragen

Link:
BBcode:
HTML:
Hide post links
Show post links
Benutzeravatar
sv00010
Beiträge: 913
Registriert: Sa 20. Feb 2016, 16:41
bevorzugter Onlinevideorecorder: onlinetvrecorder.com

STV Manager übertragung an JD Fehler

Beitrag von sv00010 »

thomasfl hat geschrieben: Do 16. Apr 2020, 21:44 @sv00010: Du liegst mit Deiner Einschätzung sehr weit daneben, außerdem hilft das ja Lignage sowieso nicht.

Wenn Du es genau wissen willst, dann finde den Fehler:

Code: Alles auswählen

       
                if (settings.AutoDownloadAwaitAdFree)
                {
                    newTelecasts = newTelecasts.Where(tc => tc.AdFree == true);
                }
                if (settings.AutoDownloadSkipDuplicates)
                {
                    newTelecasts = newTelecasts.Where(tc => tc.Duplicate == false);
                }
Soll dass so sein, oder kannst du auch else und else if verwenden ?
Ist ein else-Block erforderlich ?
Eventuell die if-Abfragen verknüpfen?
Beispiel:

Code: Alles auswählen

	if (settings.AutoDownloadAwaitAdFree == true && settings.AutoDownloadSkipDuplicates == false)
	{
            	newTelecasts = newTelecasts.Where(tc => tc.AdFree == true);
        }
        else if (settings.AutoDownloadSkipDuplicates == true && settings.AutoDownloadAwaitAdFree == false)
        {
             	newTelecasts = newTelecasts.Where(tc => tc.Duplicate == false);
        }
        else
        {
        	//Hier noch weitere Abfragen rein
        }

Link:
BBcode:
HTML:
Hide post links
Show post links
Benutzeravatar
sv00010
Beiträge: 913
Registriert: Sa 20. Feb 2016, 16:41
bevorzugter Onlinevideorecorder: onlinetvrecorder.com

STV Manager übertragung an JD Fehler

Beitrag von sv00010 »

Mir ist noch aufgefallen, dass oben eine Abfrage auf > 0 eingebaut ist, aber in den if-Zweigen die Werte neu zugewiesen werden könnten.
Es wäre wohl besser vor dem Aufruf von

Code: Alles auswählen

OnLogEvent(new LogEventArgs("Automatischer Download " + String.Join(",", newTelecasts.Select(tc => tc.ID))));
StvTelecastsDownload(newTelecasts, settings.StvDefaultVideoFormat);              ^^hier^^
nochmal eine Abfrage auf NULL und auf > 0 einzubauen?

Link:
BBcode:
HTML:
Hide post links
Show post links
Fredel
Beiträge: 927
Registriert: So 21. Feb 2016, 20:45
bevorzugter Onlinevideorecorder: Save.TV

STV Manager übertragung an JD Fehler

Beitrag von Fredel »

@sv00010

Schwerer lesbar und umständlich. Was wenn 5 oder gar 10 Settings geprüft werden müssen? Die Zeilenzahl wäre wohl x^y-1 (x=2 daher true/false, y=Anzahl Settings, -1 da es ein Filter ist und ein false in allen Settings keine Regel erfordert)

Das gilt auch schon bei den 2 hier. Überprüft Deinen Code auf den Fall, wenn AdFree auf true und wenn SkipDuplicates auf true stehen.
jDownloader & Save.TV: 1. Schritte - automatischer Download <--> Save.TV Manager Version 3 Update: Favoriten retten

Link:
BBcode:
HTML:
Hide post links
Show post links
thomasfl
STV MANAGER
STV MANAGER
Beiträge: 431
Registriert: Fr 4. Mär 2016, 11:54

STV Manager übertragung an JD Fehler

Beitrag von thomasfl »

sv00010 hat geschrieben: Sa 18. Apr 2020, 09:30 Mir ist noch aufgefallen, dass oben eine Abfrage auf > 0 eingebaut ist, aber in den if-Zweigen die Werte neu zugewiesen werden könnten.
Es wäre wohl besser vor dem Aufruf von

Code: Alles auswählen

OnLogEvent(new LogEventArgs("Automatischer Download " + String.Join(",", newTelecasts.Select(tc => tc.ID))));
StvTelecastsDownload(newTelecasts, settings.StvDefaultVideoFormat);              ^^hier^^
nochmal eine Abfrage auf NULL und auf > 0 einzubauen?
Du gewinnst die Heizdecke und die Schnapspralinen für das Aufspüren des Fehlers. IEnumerable.Select kann nicht funktionieren, wenn die Items null sind.

Ich hab’s ja schon mal an anderer Stelle geschrieben, ich stelle den Code gerne Open Source, dann dürft Ihr Fehler auch selbst beheben. Der ganze STV Manager hat aber mittlerweile tausende Zeilen Code, so dass ich selbst erstmal 1-2 Stunden investieren muss, um überhaupt die Logik wieder zu verstehen.

Daher habe ich mit SERIEN! ein neues Projekt begonnen, dass auch die Mediatheken der ÖR unterstützt. Es war einfach unmöglich, das nachträglich in den STVM zu integrieren. SERIEN! ist modularer aufgebaut, theoretisch könnte man auch weitere Medienquellen integrieren.
Bild STV MANAGER - Tool zur Verwaltung von Save.TV --- Neuigkeiten & Downloads --- Fragen & Support

Link:
BBcode:
HTML:
Hide post links
Show post links
Benutzeravatar
sv00010
Beiträge: 913
Registriert: Sa 20. Feb 2016, 16:41
bevorzugter Onlinevideorecorder: onlinetvrecorder.com

STV Manager übertragung an JD Fehler

Beitrag von sv00010 »

Fredel hat geschrieben: Sa 18. Apr 2020, 11:17 @sv00010

Schwerer lesbar und umständlich. Was wenn 5 oder gar 10 Settings geprüft werden müssen?
Dann müsste man eine neue Function erstellen und die Überprüfungen da rein machen.
Außerdem habe ich nur nach Prinzip raten, die Sachen aufgezählt, welche mir nunmal aufgefallen sind.
Ich habe zurzeit keinen Save.tv-Account und kann daher nur raten.

Link:
BBcode:
HTML:
Hide post links
Show post links
Antworten