Ich bin mit meinem Latein am Ende.
Folgendes Theorem:
Wenn in einem Forum was neues ist, taucht der String "folder_new.gif" im HTML-File öfter als 1 mal auf (1 mal ist er nämlich in der Legende unten zu finden).
Also sollte es ganz einfach sein, automatisch zu prüfen, ob sich was tut.
Das Forum macht das Ganze scheinbar über Cookies. Also habe ich die cookielib etc. gefunden und folgenden Test-Code geschrieben (win32, Firefox):
Code: Alles auswählen
import cookielib
import urllib2
def urlopen(url):
""" URL mit Mozilla-Cookies oeffnen """
cj = cookielib.MozillaCookieJar()
cj.load(r'X:\Dokumente und Einstellungen\XXX\Anwendungsdaten\Mozilla\Firefox\Profiles\xxxxxx.default\cookies.txt')
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
return opener.open(url)
# forum-12.html ist das Testboard
fp = urlopen('http://www.python-forum.de/forum-12.html')
forum = fp.read()
fp.close()
print forum.count('folder_new.gif')
Dann habe ich von einem anderen Rechner eine Testnachricht im Testboard gemacht. Dann das Testboard von meinem Rechner aus angefordert und die Nachricht war dann tatsächlich als "neu" markiert; dh 'folder_new.gif' ist 2mal dringestanden. Auch noch nach einigen Reloads, also werden die Topics erst als "gelesen" markiert, wenn man hineinschaut (was ich nicht getan habe). Dann habe ich sicherheitshalber den Mozilla beendet.
Dann habe ich meinen Testcode ausgeführt, Ausgabe: 1.
Es hat also nicht funktioniert, es hätte 2 (oder mehr) ausgegeben werden sollen.
Damit könnte ich ja noch leben, ich dachte mir: du bist eben zu dumm und hast irgendwas wichtiges vergessen.
Aber: danach habe ich den Mozilla wieder angeworfen und das Testboard angefordert. Effekt: nichts war mehr als neu markiert, auch in den Foren, die vorher noch Neuigkeiten enthielten.
Das kann ich mir allerdings gar nicht erklären.
Kann mir da jemand helfen?
P.S.: An der zensierten Zeile kann's nicht liegen, sonst wäre eine Ausnahme aufgeworfen worden.
EDIT: Ich hatte die automatische Anmeldung aktiviert, daran scheint's also nicht zu liegen.