Aufgrund der kürzlich gemeldeten Probleme mit dem Spoiler-Import (z.B. hier: http://forum.geoclub.de/viewtopic.php?f=114&t=74621 ) hab ich mich jetzt noch Mal ganz intensiv damit beschäftigt und einige zum Teil gravierende Probleme entdeckt (da beide kompatibel zueinander aufgebaut sind betrifft dies WinCB und ACB):
Das Ganze ist jetzt erst Mal in WinCB ab Rev. 305 umgesetzt.
Die entsprechenden dazu kompatiblen Änderungen in ACB werden in kürze folgen...
- Wie in dem oben genannten Thread beschrieben bestand das Problem, dass ein Mal geladene Spoiler nicht mehr aktualisiert wurden wenn ausgetauschte Spoiler den gleichen Namen bekommen haben. Wenn ein Owner einen Spoiler ausgetauscht hatte (mit neuem Namen) dann waren beide (der alte und neue Spoiler) im System.
Zu jedem Spoiler Image wird jetzt in den Dateinamen ein Hash der URL des Images in den Dateinamen aufgenommen. Über diesen Hash kann jetzt einerseits erkannt werden, welcher Spoiler vom Owner ausgetauscht worden ist und zum anderen, welcher Spoiler gelöscht wurde.
Es sollte damit jetzt möglich sein, die Spoiler Liste wirklich aktuell zu halten.
- Wenn zu einem Cache min. 1 Spoier Image existierte dann wurde z.T. überhaupt kein neuer Spoiler Download gemacht.
Diese Überprüfung hab ich jetzt komplett rausgenommen.
- Das gravierendste Problem: Um an die Liste der Spoiler Images zu kommen müssen wir für jeden einzelnen Cache eine API-Funktion aufrufen. Mit diesem Aufruf bekommen wir die URL's, unter denen wir die Spoiler laden können.
Was bisher noch überhaupt nicht berücksichtigt war, der Aufruf dieser Funktion ist beschränkt. Wir dürfen dies nur 30x innerhalb 1 Minute aufrufen. Jeder weitere Aufruf führt zu einem Fehler und wir bekamen die Liste der Images nicht. Dieser Fehler wurde aber bisher nicht behandelt, d.h. für die entsprechenden Caches wurden keine Spoiler geladen und der Cache wurde in der DB als aktualisiert markiert, so dass beim nächsten Spoiler Durchlauf dieser Cache nicht mehr berücksichtigt wurde.
Die entsprechende Fehlermeldung wird jetzt gezielt überprüft und im Falle dieses Fehlers wird eine gewisse Zeit gewartet und der Aufruf wiederholt. Dadurch wird jetzt jeder Aufruf für jeden Cache ordnungsgemäß durchgeführt und alle Spoiler können geladen werden.
Das Ganze hat nur den Haken, dass der Spoiler Download jetzt noch langsamer ist, max. 30 Caches pro Minute.
Das Ganze ist jetzt erst Mal in WinCB ab Rev. 305 umgesetzt.
Die entsprechenden dazu kompatiblen Änderungen in ACB werden in kürze folgen...