Mehr für mich selbst - aber wenn es wen interessiert, es darf jeder wissen.
Wenn der Bot jetzt weiterhin verlässlich läuft, wird es hier vorerst keine Einträge mehr geben.
Heute kam eine Warnung, der Bot hat sie geposted. Also wieder alles im Lot.
Gestern ziemlich genau um 14:00 hat sich mein Serverchen aufgehängt - warum genau lässt sich nicht feststellen (es ist ein sog. Headless-Server, ohne Konsole, auf welcher wahrscheinlich die Ursache zu lesen gewesen wäre).
Aber ich hatte bisher keine Vorsorge für diese Art Ausfall getroffen. Schlicht, weil es in 11 Jahren Dauerbetrieb des Kistchens das erste Mal passierte und mir gar nicht klar war, dass er in einem solchen Fall schlicht stehenbleibt und nicht neu startet.
Nun habe ich mich damit auseinander gesetzt, das nächste Mal wird er neu starten. Wenn das dann mal nicht hilft, haben wir ein anderes Problem.
Was zu tun ist, damit er neu startet anstatt stehenzubleiben, habe ich hier beschrieben.
Des Weiteren muss ich mir vielleicht Gedanken darüber machen, wie ich das System von außerhalb überwachen kann um schneller mitzubekommen, wenn es hängt.
Der Bot überwacht sich zwar selbst, aber das war in vorliegenden Fall natürlich wirkungslos. Aber da ich einen Neustart, der ja jetzt forciert wird, sehr wohl überwache, ist das nicht vordringlich.
Ich habe leider erst gegen 21:30 bemerkt, dass das Serverchen hängt und der Bot daher auch.
Habe daraufhin das Problem manuell gepostet, auf die nicht versandten Warnungen hingewiesen und auch darauf, dass vorerst keine mehr kommen.
Gut, dass Wochenende ist - am Wochenende kommen keine Warnungen.
Bis gestern war Ruhe, dann kamen gleich ein ganzer Schwung Warnungen (Gesundheitsgefahr durch verschreibungspflichtige Medikamente). Eine davon kam eine Stunde vor den anderen, wurde dann aber vom Bot erneut gepostet. Da wurde wieder der Inhalt geringfügig geändert.
Seit Tagen kommen keine Warnungen der Behörde. Bot läuft, aber bekommt nichts zu tun.
Bot funktioniert seit Tagen korrekt. Auch heute wieder bis nachmittags 2 neue Warnungen korrekt getrötet.
Währenddessen arbeite ich an einer Version, die die Warnungen dem RSS-Feed entnimmt und weitgehend komplett trötet, wozu eine Warnung in mehrere Tröts geteilt wird, wenn sie nicht in einen passt.
Wieder wurden die Warnungen im Web offenbar nachträglich geändert, weswegen der Bot die Paprika-Gewürzmischung 3 mal getrötet hat, weil er eine Aktualisierung annahm. Um herauszubekommen, was sich eigentlich ändert, habe ich jetzt mal die Top 10 Einzelwarnungen mit curl gesichert. Der Bot läuft ab sofort nur von 11:00 bis 17:00, ich will nicht, dass die Paprika heute noch mal getrötet wird.
Keine neue Warnung, aber ein Update für die Treets-Erdnüsse (PDF vom Hersteller kam hinzu). Bot hat getrötet.
Pfingstwochenende verlief erwartungsgemäss ruhig. Bot heute (da ab heute alle Warnungen mindestens 2 Tage alt sind) erneut überprüft, ob die Logik funktioniert. Sie tut es. Mal sehen, wie es mit der nächsten neuen Warnung wird.
Produktiv-Umgebung umgestellt auf neue Version. Diese wertet jetzt das Datum in der Liste der ersten 10 Warnungen (neue warn_page in der ini ohne zeitliche Einschränkung) aus. Damit sollte das gestrige Problem und das des unnötigen Re-Post erledigt sein. Ich hoffe diese Version nicht zu früh produktiv gesetzt zu haben.
Problem 1: Warnung blieb unerkannt.
Ein Blick
in die App heute zeigt (in der 24h-Ansicht) dass die App die gestrige
Änderung nicht als Aktualisierung betrachtet (mein Bot leider schon).
Ich überlege, wie ich es erreichen könnte, dass so etwas vom Bot nicht
mehr getrötet wird.
Problem 2: Murks auf lebensmittelwanung.de
Nicht zu fassen, was für ein Murks: Die App zeigt in der
24h-Ansicht eine neue Warnung “Treets Salted Peanuts Vegan 200 Gramm”“,
aber die Webseite in derselben Ansicht nicht!
Lösung: Aktion erforderlich
Tröt manuell
getriggert, Bot nimmt jetzt die Top-Ten ohne Zeitraum. Dann muss der Bot
zwar jede Viertelstunde 11 Seiten anstelle von einer einzigen (+derer
der letzten 24h) abfragen, aber das haben die sich selber zuzuschreiben.
Ach, wäre das schön, wenn es ein API zur Abfrage gäbe!
Um 10:33h wurden die “enerBIO Dinkel Waffeln” als aktualisiert gepostet, obwohl im Stand nach wir vor der 20.05. steht. Meine Hypothese: Die haben klammheimlich den Text geändert. Muss noch genauer untersucht werden.
Die Untersuchung hat die Hypothese bestätigt: Die Seite wurde - ohne
Erklärung - modifiziert. Ich habe die Erklärung getrötet: 
Riesenpleite! Gestern gingen Posts für 50 alte Warnungen raus.
Schuld war ich selbst, denn ich hatte die Übersichts-Seite mit 50 Einträgen (die für die neuere, in Entwicklung befindliche, Botversion gedacht war) versehentlich dem produkiven Bot vorgesetzt.
Um 13:33h hat der Bot eine neue Warnung korrekt gepostet (enerBIO Dinkel Waffeln).
Zwei neue Warnungen gegen Mittag - in gestrige Tabelle (s. u.) eingefügt. Heute klappt aber das Timing, sind aber auch beide neu.
Kuriosum am Rande. Die Original-App alarmierte mich vorhin über Updates zweier Warnungen. Lässt man sich deren Details aber in der App anzeigen, haben die Warnungen ihre letzte Aktualisierung vor Tagen erfahren. Fragt man die App nach Ereignissen der letzten 24 Stunden, findet auch die App erst einmal nichts. Allerdings tauchen die Warnungen dort irgendwann später doch auf. Und wenn es dann dort auftaucht, findet es auch der Bot - denn der verwendet ja diese Seite. Allerdings ist zuerst nur eine von beiden Warnungen in der 24h-Übersicht angekommen (Mönchshof Radler) . Eine nagelneue Warnung (Instant Nudelgericht) tauchte dort nicht auf. Erst lange später.
Die Zeiten werde ich hier ein Weilchen hier notieren.
| Produkt | Daten push |
Daten post |
App-push | M-post | 24h- Zeit |
Datum |
|---|---|---|---|---|---|---|
| Mönchshof Natur Radler Blutorange | 15.05E 18.05A |
vorm. | 13:33 | (abends) | 18.05. | |
| Instant Nudelgericht “Huhn-Geschmack” |
18.05E 18.05A |
15:041 | 15:03 | (abends) | 18.05. | |
| Mais Waffeln Salted caramel |
19.05E 19.05A |
19.05E 19.05A |
11:51 | 12:03 | 12:03 | 19.05. |
| Pesto Bärlauch 165 Gramm |
19.05E 19.05A |
19.05E 19.05A |
11:53 12:38 |
12:03 | 12:03 | 19.05. |
Und ich hatte schon befürchtet, dass der Bot was übersieht.
Stattdessen sieht es so aus, als wenn die App mit dem Push schon da wäre, wenn die Daten am Server in den Detailseiten noch gar nicht aktualisiert sind.
Eigenartig!
Neu! Alle Dokumentations-Seiten haben am Seitenende jetzt einen Link auf das Verzeichnis aller Seiten.
Der Source-Code wurde ausführlich im README auf Codeberg dokumentiert.
Ich hoffe hiermit das Projekt beenden zu können und würde mich verstärkt anderen Projekten zuwenden.
Ich werde den Bot aber natürlich im Auge behalten. Dazu habe ich die offizielle lebensmittelwarnung.de-App auf dem Handy und prüfe derzeit noch für jede dort erscheinende Warnung, ob der Bot sie postet. Und wenn nicht, poste ich sie “von Hand”.
Der Source-Code ist jetzt bei Codeberg veröffentlicht.
Und das Blog-Layout wurde geringfügig geändert.
Erfreulicherweise ist jetzt endlich Verlass auf den Bot. Er hat gestern ohne mein Zutun mehrfach brav getrötet.
Wenn das so bleibt, gibt es hier jetzt ein paar Tage keinen neuen Eintrag, heute ist Feiertag, übermorgen Wochenende.
Im Moment freue ich mich über jeden einzelnen Tröt, aber natürlich nicht darüber, dass es andauernd Warnungen gibt - am Liebsten wäre mir natürlich auch, wenn es keine Notwendigkeit dafür gäbe.
Die letzten Tage habe ich damit verbracht, die Erkennung von Änderungen auf der Übersichtsseite zu verbessern.
Warum das notwendig war, habe ich hier beschrieben.
Der Bot läuft jetzt wieder automatisch, ich musste nichts in Handarbeit posten. Der Bot kennzeichnet aktualisierte Warnungen jetzt mit diesem Symbol 🔄 vor dem Text “⚠️#Lebensmittelwarnung⚠️”. Die Aktualisierungen bestehen oft - aber nicht immer - nur darin, dass die Anzahl der betroffenen Länder angestiegen ist.
Der Bot hat tatsächlich funktioniert und einen Update erkannt und gepostet. Nur im Log stand ein wenig Unsinn.
Nach umfangreichem Umbau der Crawling-Funktion ist der Bot wieder auf Automatik geschaltet, ich hoffe er blamiert mich nicht wieder.
Damit der Bot endlich mal seinem Namen gerecht wird, muss die Erkennung neuer Warnungen noch einmal umgestellt werden. Daran arbeite ich. Derweilen poste ich mit der alten Version handverlesen.
Eine neue Warnung vormittags. Die Testumgebung hat erfolgreich automatisch gepostet (nicht an Follower). Die Produktiv-Umgebung habe ich daraufhin auch einen Einmal-Lauf machen lassen, die Warnung ist also raus.
Dieselbe Warnung nachmittags, nur ein paar Bundesländer mehr. Wie zuvor.
Der Bot verschickte im manuellen Lauf 2 Warnungen. Diese waren auch in der 24h-Ansicht der Website zu sehen. Neu war leider nur eine. Zur Ursachenforschung kam ich leider erst, als das Problem nicht meht nachvollziehbar war.
Musste erneut die Initialseite ändern, damit die beiden heutigen Warnungen gepostet wurden.
Seit der Bot läuft, gab es das noch nicht: Ein kompletter Werktag ohne eine einzige Warnung.2
Aber gestern war es so.
Das war ein guter Tag! (Außer man möchte den Bot testen.)
Nun wäre es schön zum Testen, wenn eine Warnung käme - aber bis Mittag kam erstmal nichts. In der Zeit habe ich kurz noch den Bot optimiert (aber davon habe nur ich etwas).
Die Geisterstunde brachte die Falschmeldung (an den Betreiber, nicht die Follower) dass die website down wäre.
Ursache war, dass die Logik so programmiert war, dass 0 Warnungen gleichbedeutend website down sind.
Das war aber nur korrekt bis zum gestrigen Wechsel der Einstiegsseite, we{lche nun nur mehr die Warnungen des vergangenen Tages anzeigt.
Ab kurz nach Mitternacht gibt es für den neuen Tag natürlicherweise 0 Warnungen.
Der Zustand website down wird jetzt anderweitig bestimmt.
Bot umgestellt auf die “Expertensuche”, um gezielt die Warnungen des Tages abzufragen. Das sollte Mehrfachposts jetzt verhindern. Bot in der Testumgebung aktiviert, in der Produktiv-Umgebung noch nicht. Bis auf Weiteres werde ich den Produktiv-Bot jeweils einmal für einen Lauf starten, wenn es tatsächlich neue Warnungen gibt.
Dadurch sollten den Followern keine Warnungen entgehen.
Die wurden informiert: 
Neue Warnungen (durch einmaligen Botlauf) gepostet. Automatisches Posting nach wie vor gestoppt.
Zu früh gefreut: der Bot postete alte Warnungen - ich die
Entschuldigung dazu. 
Die Ursache ist ungeklärt. Ich beobachte die Warnungen per App, um manuell den Bot zum Posten zu verwenden. Bis auf Weiteres läuft der Bot nicht mehr automatisch. Die Ursachenforschung braucht jetzt ein paar Tage Beobachtungszeit.
Hurra! Nachdem der Bot ein paar kleinere Fehler beim Posten machte, hat eine korrigierte Version soeben korrekt und wieder wie vorgesehen gepostet. Am Freitag und am Wochenende musste ich manuell eingreifen und habe beim Testen dann auch noch versehentlich längst versandte Warnungen erneut gepostet. Es gibt nun endlich eine klare Trennung von Test- und Produktivumgebung, damit sollte so etwas nicht wiedervorkommen. Wer genau wissen will, was schief lief, kann hier nachlesen.
Heute zwei neue Warnungen. Bot hat sie getrötet.
Eben erst bemerkt (und behoben), ein # fehlte: Statt dem
Tag #Produktrückruf stand da
Produktrückruf.
Heute kam trotz Werktag keine Warnung auf lebensmittelwarnung.de.
Der Bot war brav. Den Logs konnte ich entnehmen, dass er lebensmittelwarnung.de bisher (20:30h) 78 mal befragt hat. Ein einziges Mal kam erst im dritten Anlauf eine brauchbare Antwort, aber das verträgt er.
Hier wurden weitere Zeichen eingespart: - durch bundesweit statt Auflistung aller16 Länder - durch NICHT …, wenn dies kürzer ist, als die Kürzelliste wäre.
Geändert wurde
Ersteres weil es 3 Zeichen spart, Letzteres weil sich sonst Ware und Warum so ähnlich waren.
Geändert - sowohl im Tröt als auch in der Doku - wurde auch
... in … - das ist optisch manchmal kaum zu
unterscheiden. Aber das erste sind drei einzelne Punkte, das zweite ist
ein einziges (Unicode-)Zeichen. Das spart pro Kürzung zwei Zeichen.
Die Doku wurde ergänzt (um dieses Log) und, insbesondere im Hinblick auf die Kürzungen im Post, aktualisiert.
Dieses “Logbuch” hier erstellt.
Jetzt zählt der Bot richtig und kürzt notfalls radikal. Zur Verifikation die Salami nochmals, diesmal vom Bot versenden lassen (versehentlich sogar zwei Mal 🥴🫣).
Bot reaktiviert - 😇rechtzeitig, bevor was Neues kam. Die Salami ist immer noch die neueste Warnung.
Durch einen Fehler im Bot wurde eine Warnung (Salami) zu lang und wurde daher von der Instanz abgelehnt.
Sofort verkürzte Version des Post erstellt und manuell versandt. Bot zunächst abgeschaltet. Wenn was hereinkäme, müsste ich manuell posten.
Erste öffentliche Tröts.