12.03.2020 DB0USD sendet Nachrichten und Termine aus dem DARC Distrikt H

News und Termine aus dem Distrikt H auf dem DAPNET-Pager

Naja, wie das im Journalismus üblich ist – die Headline trifft bildet die Wahrheit nur vereinfacht ab. Der eigentliche DMR-Repeater hat ehrlicherweise mit dem Ganzen nur insoweit zu tun, dass er Namensgeber für den DAPNET-Bot ist und dort wo der Bot zu Hause ist, werden jetzt auch Nachrichten in die Rubrik dl-ni eingespielt.

Die Idee ist aus einer Diskussion in der DAPNET-Telegram-Gruppe entstanden, in der es darum ging, ob man “verwaiste” Rubriken nicht neu/anders zu nutzen. Vorweg, die Rubrik dl-ni ist nicht verwaist, aber etwas mehr “Traffic” schadet ja nicht. Es musste also ein Content her, der a) für Funkamateure interessant ist und b) möglichst ohne zusätzliche manuelle Handarbeit auskommt, denn das ist langfristig fast immer ein Killerfaktor bei solchen Informationsdiensten.

Nach einem kurzen Austausch mit Karsten DC7OS (Admin der Rubrik), wurde die Idee geboren die Termine des Distriktes von seiner Webseite zu verarbeiten. Nach einer ersten Probesendung kam dann noch die Überlegung mit dem RSS-Feed des Distriktes hinzu.

Ob das in der jetzigen neuen Form gut ankommt oder verändert/verbessert werden sollte, das müsst ihr entscheiden – scheut nicht davor zurück Karsten oder mich zu kontaktieren.

Wie funktioniert das Ganze?

Auf dem Server, der den DAPNET-Bot sowie das Dashboard von db0usd und diese Webseite hostet, laufen seit gestern zwei Skripte unter dem Arbeitstitel dapnet_news.

Das erste Skript liest eine von DC7OS auf seiner Webseite bereitgestellte ICalendar-Datei (.ics) die im Wesentlichen Termine vom DARC Distrikt H enthält. Hier werden zweimal täglich (7:55 und 17:55) die Termine ausgelesen und für das DAPNET aufbereitet (Zeichen ersetzen und Wörter abkürzen um die Nachrichtenlänge möglichst sinnvoll begrenzen). Neben den tagesaktuellen Terminen gibt es dann noch eine Vorschau auf die nächsten Tage. Insgesamt sind dafür die Nachrichten-Positionen 6-10 in der Rubrik “reserviert”.

Das zweite Skript bedient sich am RSS-Feed des Distrikts H auf der DARC-Webseite und prüft dort die Nachrichten. Die erste Nachricht aus dem Feed wird in der Rubrik auf der Position 5 abgelegt. Das Skript läuft jeweils 5 Minuten vor der vollen Stunde, und sendet nur eine neue Rubrikennachricht, wenn sich die “Topnews” im Feed geändert hat.

Die Laufzeit der Skripte 5 Minuten vor der vollen Stunde ist mit Blick auf die Rubrikenaussendung geplant. So ist sichergestellt, dass Skriptlauf, RIC-basierte Aussendung (erfolgt sofort mit dem Ablegen der Nachricht in der Rubrik) und die Rubrikenaussendung zur vollen Stunde möglichst dicht beieinander sind.

Die technische Seite

Realisiert wurde das ganze in meiner Lieblings-Skriptsprache Python. Für das Auslesen der Quelldaten werden die Module icalendar und feedparser benötigt. Der Rest ist recht unspektakuläres Umrechnen und Formatieren von Zeitangaben, Ersetzen von Wörtern und Zeichen und Erzeugen von JSON-Datensätzen für den Upload ins DAPNET via hampager.de.

Dabei bin ich übrigens über eine kleine Kante gestolpert: ich habe in meinem Leichtsinn gedacht, dass ich ein JSON-Array (also mehrere Nachrichten auf einmal) an die API übergeben könnte – das versteht sie aber nicht und antwortet mit einem 400:bad request und nicht wie erwartet mit einem 201:created. Ist kein Beinbruch, so sendet das Skript halt für jede Nachricht einen eigenen http-Request – muss man nur wissen.

Auf dem Server laufen die Skripte nun als cron-Job und brauchen hoffentlich nie wieder angefasst zu werden 😉 ok, ICS-Skript wird auf jeden Fall noch mal umgebaut, da auch hier eine Prüfung rein muss, ob sich überhaupt der Content geändert hat, denn falls nicht, muss man ihn auch nicht unnötig senden und hunderte Meldeempfänger piepen lassen.

Die beiden Skripte sind als Source im Github veröffentlicht und dürfen gerne für eigene Projekte verwendet werden. Über eine kurze Info wo und wie ihr das einsetzt würde ich mich sehr freuen .

Links

Quellcode der Skripte auf github | https://github.com/do6uk/dapnet_news/

private Webseite von Karsten DC7OS | https://dc7os.darc.de/

Webseite des Distriktes H | https://www.darc.de/der-club/distrikte/h/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert