Jump to content

[BSNova] Burning Series Nova - Das Mega-Tool für BS.TO


NeoGriever
 Share

Recommended Posts

Hi, Neo

herzlichen Glückwunsch! Du hast den BsNova zur PortableApp gemacht. Ich habe es gerade mal unter Windows 8.1x64 getestet:

1. BsNova in einem beliebigen Benutzerordner installieren, aber nicht starten.

2. In den Ordner wechseln und alle Dateien und Ordner mit einem Packer nach Geschmack archivieren

3. BsNova deinstallieren

4. Archiv in einen beliebigen Ordner oder auf USB Stick entpacken

5. BsNova starten und benutzen.

Erfordert natürlich nach wie vor Admin Rechte.

Übrigens muss ich das mit dem nicht angezeigten Gesehen-Status für die Folgen zurück nehmen: Gesehene Folgen sind farblich markiert. Ich hab nur die Tests in einer virtuellen Maschine laufen lassen, wo der Kontrast so weit herunter geregelt war, dass man den Unterschied nicht gesehen hat. ;)

Link to comment
Share on other sites

Hallo Neo,

beim Herumspielen ist mir aufgefallen, dass im Serien-Tab beim Laden immer wieder Hänger auftreten, wenn man durch die Serien blättert. Manchmal wird die Grafik nicht geladen, manchmal die Beschreibung und manchmal Beides. Wenn man dann mit den Cursor-Tasten ein paar mal hoch und runter blättert, klappt es dann meistens, aber nicht immer.

Da die Grafiken nicht gecached werden, erscheint dann auch bei schon geladenen Serien kein Bild. Daher wäre es vielleicht sinnvoll, die Bilder in einer eigenen Tabelle zu speichern.

Und was den Traffic angeht, könnte man die Episoden eventuell auch bei Auswahl im Staffel-Tab nur 1 mal pro Sitzung laden. Die Wahrscheinlichkeit, dass neue Folgen während der Sitzung dazukommen, ist doch recht gering.

Übrigens ist mir bei der Durchsicht der Netzwerk-Protokolle aufgefallen, das in der Kommunikation von BsNova 2.1.0.0 mit der Bs-API sehr viele TCP "Malformed Packet" Errors auftauchen. Ich nehme mal an, das ist der Grund für die Hänger beim Laden von Bild und Daten im Serien Tab.

L. G.

Link to comment
Share on other sites

Hallo Neo

Also ich wollte mir gerade eine Anime Serie herunterladen doch die zeigt bei BS Nova nicht ich hab auch den Button den oben rechts angezeigt ist gedrückt (mehrmals) aber das Programm zeigt das Serien nicht ich hab auch über die ID Suche eingegeben nur das steht wird nicht angezeigt und wollte fragen ob du was machen könntest also auf der bs.to zeigt die Serie aber das Programm nicht jedes der Serie mit dem Link http://bs.to/serie/Otome-wa-Boku-ni-Koishiteru

Link to comment
Share on other sites

Hallo Neo,

beim Herumspielen ist mir aufgefallen, dass im Serien-Tab beim Laden immer wieder Hänger auftreten, wenn man durch die Serien blättert. Manchmal wird die Grafik nicht geladen, manchmal die Beschreibung und manchmal Beides. Wenn man dann mit den Cursor-Tasten ein paar mal hoch und runter blättert, klappt es dann meistens, aber nicht immer.

Da die Grafiken nicht gecached werden, erscheint dann auch bei schon geladenen Serien kein Bild. Daher wäre es vielleicht sinnvoll, die Bilder in einer eigenen Tabelle zu speichern.

Und was den Traffic angeht, könnte man die Episoden eventuell auch bei Auswahl im Staffel-Tab nur 1 mal pro Sitzung laden. Die Wahrscheinlichkeit, dass neue Folgen während der Sitzung dazukommen, ist doch recht gering.

Übrigens ist mir bei der Durchsicht der Netzwerk-Protokolle aufgefallen, das in der Kommunikation von BsNova 2.1.0.0 mit der Bs-API sehr viele TCP "Malformed Packet" Errors auftauchen. Ich nehme mal an, das ist der Grund für die Hänger beim Laden von Bild und Daten im Serien Tab.

L. G.

Diese Malformed Packet kommen daher, weil beim "Nach unten Taste gedrückt halten", zigdutzend Anfragen durchgebrettert werden. Bei der Einschränkung der API kann dies zu asynchronen Überschneidungen führen und ggf. aktuell laufende Abfragen unterbrechen/beeinflussen. Ich werde einen kleinen Timer mit einbauen, welcher verhindert, dass während des durchblätterns bei jeder einzelnen Serie die Informationen sofort geladen werden. Dann wird es so geschehen, dass beim Durchblättern die Serieninformationen erst 300 ms nach dem Selektieren auftauchen. Wird währenddessen eine andere Serie ausgewählt, bricht dieser Timer ab und fängt von 0 an. :D

Hallo Neo

Also ich wollte mir gerade eine Anime Serie herunterladen doch die zeigt bei BS Nova nicht ich hab auch den Button den oben rechts angezeigt ist gedrückt (mehrmals) aber das Programm zeigt das Serien nicht ich hab auch über die ID Suche eingegeben nur das steht wird nicht angezeigt und wollte fragen ob du was machen könntest also auf der bs.to zeigt die Serie aber das Programm nicht jedes der Serie mit dem Link http://bs.to/serie/Otome-wa-Boku-ni-Koishiteru

Es kann sein, dass der Cache nicht korrekt gelöscht wird. Jenachdem, welche Version du nutzt, musst du entweder unter %appdata%\BSNova\ den Ordner "cache" oder im Installationsordner die Datei cache.s3db löschen.

Viel Erfolg

Kein Problem!! Das passiert bei neuen Serien öfters. Du musst einfach nur den Cache löschen, dann klappts ;-) Habs soeben kontrolliert und es funzt.

C:\Users\xxx\AppData\Roaming\BSNova\cache

Das zählt nur für Versionen vor 2.1.0.0!
Link to comment
Share on other sites

@Neo, ich hab die Tasten nicht gedrückt gehalten, sondern immer nur einmal angetippt. Der Fehler tritt trotzdem immer wieder auf.

Und bei v. 2.1.0.0 kann man auch die cache DB einfach löschen. (Datei cache.s3db im Programmordner)

Übrigens hab ich die "Portable Version" vom BsNova inzwischen auch unter Windows 8 x64 erfolgreich getestet. Immer mit dem Archiv, was ich direkt nach dem Setup vor dem ersten Start von BsNova erzeugt habe. Klappt absolut prima. Also bisher unter Win 7, 8 und 8.1 jedenfalls.

Statt dem Timer könnte man auch einfach in einer Schleife so lange versuchen, die Daten zu laden, wie Fehler auftreten und währenddessen weitere Eingaben ignorieren. Ich hab das schon mal bei einem anderen Programm so gemacht.

Link to comment
Share on other sites

DAS will ich definitiv NICHT. Eine Schleife bis Erfolg ist definitiv eine starke Zeitverzögerung!

Außerdem ist es mit dem Timer wesentlich effektiver. 300 ms sind mehr als genug Zeit, um sich in der Liste eine neue Serie auszusuchen. Werde diesen Timer-Wert natürlich anpassbar machen :D

Danke im übrigen für die zahlreichen Tests und Berichte. Nur durch euch ist der BSNova das, was er jetzt ist ;)

Link to comment
Share on other sites

DAS will ich definitiv NICHT. Eine Schleife bis Erfolg ist definitiv eine starke Zeitverzögerung!

Außerdem ist es mit dem Timer wesentlich effektiver. 300 ms sind mehr als genug Zeit, um sich in der Liste eine neue Serie auszusuchen. Werde diesen Timer-Wert natürlich anpassbar machen :D

Danke im übrigen für die zahlreichen Tests und Berichte. Nur durch euch ist der BSNova das, was er jetzt ist ;)

Also nach dem, was ich so in den Netzwerk-Protokollen gesehen habe, tritt der Fehler nie bei 2 Abfragen hintereinander auf. Von daher würde ich da kein Problem vermuten. Und Der BsNova nimmt ja sowieso bei fast allen Aktionen keine Inputs von Maus und Tastatur an, solange sie nich abgeschlossen sind. Man könnte die http Abfragen ja auf 3 oder 4 beschränken und bei Erfolg die Schleife sofort verlassen. Ich nehme mal an, dass der HTTP Aufruf einen Status zurück liefert.

Link to comment
Share on other sites

Der HTTP-Aufruf wird über die API-DLL gesteuert. Diese hat bisher jeden fehlerhaften Aufruf auch in den Logdateien vermerkt.

Nebenbei: die API-Aufrufe für das Auslesen der jeweiligen Informationen wird IMMER über Threads (Asynchron zur GUI) ausgeführt. Es dürfte KEINE Probleme bezüglich "freezing" geben.

Ich habe jetzt einen 450 ms Timeout in die Funktion zum Laden der Serieninformationen und Bilder eingebaut. Somit dürfte es diesbezüglich keine Probleme geben.

Link to comment
Share on other sites

Prima, das dürfte allemal genügen und eine halbe Sekunde Wartezeit ist beim Blätter durchaus vertretbar. Ich hab ja keine Ahnung, was du in den Threads alles erledigst. Zumindest scheint da aber eine Aktualisierung der Serienansicht mit Grafik und Beschreibung stattzufinden, was die Reaktion der GUI auf jeden Fall beeinflusst.

Übrigens führt die Aktualisierung der Prozentanzeige im Download Tab zum Flimmern der ganzen Zeile, was bei vielen gleichzeitigen Downloads sehr irritieren wirkt. Aber ich denke, da bist du eh noch am werkeln und wollte nur mal drauf hinweisen, falls es dir nicht selbst schon aufgefallen ist.

Link to comment
Share on other sites

Dieses Problem ist nur ein "Debug"-Problem, da ich dort das "alte" ListView-Objekt nutze. Für diesen Fall habe ich ein Double-Buffered-ListView-Element entwickelt, welches ich bereits für alle anderen ListView's im BSNova einsetze. Das dürfte das Flimmern beheben. Außerdem mache ich eine "Changed"-Prüfung mit rein, dass der Inhalt der Zellen nur dann geändert wird, wenn der neue Wert auch wirklich anders ist, als der bereits vorhandene.

Link to comment
Share on other sites

So. Mal ein kleines Quiz für euch. :D

Was bewirkt diese Funktion, wenn man ihr den Wert "33" (Zahl) übergibt?

	Private Function WhatIDoing(ByVal percent As Double) As String
Dim miniparts() As String = {ChrW(&H258F),ChrW(&H258E),ChrW(&H258D),ChrW(&H258C),ChrW(&H258B),ChrW(&H258A),ChrW(&H2589)}
Dim full As String = ChrW(&H2588)
Dim empt As String = ChrW(&H2007) & ChrW(&H200A)
Dim length As Integer = 12 * 8
Dim strt As String = ChrW(&H2560)
Dim ende As String = ChrW(&H2563)
Dim ausgabe As String = ""
Dim maxBigBlocks As Integer = Math.Floor((length / 800) * percent)
Dim maxSmallBlocks As Integer = Math.Floor((length / 100) * percent) Mod 8
Dim max_empties As Integer = Math.Floor(length / 8) - maxBigBlocks
If maxSmallBlocks > 0 Then
max_empties -= 1
End If
While maxBigBlocks > 0
ausgabe &= full
maxBigBlocks -= 1
End While
If maxSmallBlocks > 0 Then
ausgabe &= miniparts(maxSmallBlocks - 1)
End If
While max_empties > 0
ausgabe &= empt
max_empties -= 1
End While
Return(strt & ausgabe & ende)
End Function

Link to comment
Share on other sites

Du hast den Sinn der Sache schon einigermaßen verstanden :D

Jetzt wäre cool, herauszufinden, WAS als Ausgabe zurückkäme :D

So als kleine Hilfestellung:

	Dim miniparts() As String = {"▏","▎","▍","▌","▋","▊","▉"}
Dim full As String = "█"
Dim empt As String = ChrW(&H2007) & ChrW(&H200A)
' Leider ist es mir nicht möglich, die Zeichen für "empt" korrekt hier darzustellen.
Dim strt As String = "╠"
Dim ende As String = "╣"

Link to comment
Share on other sites

Ist im Grunde richtig ;)

E sist ein Progressbar-Generator auf Unicode-Basis (Arial Unicode MS deswegen, weil nur darüber die ausgewählten Symbole korrekt dargestellt werden)

Die 2 Zeichen ߗ und ÈA; sind zwei verschiedene "Leerzeichen", welche aus einem etwas breiterem und einem sehr schmalem Leerzeichen bestehen. Somit erzeuge ich die exakte Breite eines "Full Blocks" (█), damit die Fortschrittsanzeige in der Liste dargestellt werden kann.

:D Die miniparts dienen dazu, um den Fortschritt auf weniger Zeichen mit mehr Details zu füllen. :D

Somit habe ich eine Fortschrittsanzeige in meine ListViews gebracht, ohne komplizierte und unsichere sowie nachteilhafte Methoden zu nutzen, um eine echte ProgressBar für jeden Eintrag zu nutzen ;)

Ich habe aber im Moment ein gewaltiges Problem bezüglich des Hinzufügens neuer Episoden zum Downloader. Dieser friert den gesamten BSNova komplett ein, wenn dem irgendwas nicht passt. Und ich bin derzeit akribisch auf der Suche nach dieser Ursache ... Es wundert mich nämlich gewaltig, dass der BSNova überhaupt einfriert, da jegliche Interaktion mit der API und mit den Downloads sowie das Auslesen und Parsen der Hoster asynchron von der GUI abläuft. Normal dürfte dort GARKEINE Einschränkung verursacht werden ...

Nun ja. Irgendwo ist der Fehler drin. Und ich werde ihn finden!

Update: ich habe den fehler gefunden, welcher jedoch gravierender und komplizierter ist, als ich erwartet hätte. Es handelt sich um einen DeadLock-Threadfehler ... <_< verdammter Mist. <_< *mich schlau lesen tu*

Link to comment
Share on other sites

  • Fox locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...