ruby-mine

exploring the mine

phpBB+Thunderbird+Ruby+MacOS = bbNotify

von murphy am 15.09.2007 (23 Uhr)

Ein kleines Ruby-Script soll aktiven phpBB-Neutzern dabei helfen, schnell und einfach über Neuigkeiten informiert zu werden. Eine Lösung von murphy speziell für Thunderbird und MacOS.

Problem

Ein phpBB-Forum informiert seine Mitglieder über neue Nachrichten mithilfe von Mails. Wenn man auf den enthaltenen Link klickt, landet man direkt bei dem ersten neuen Beitrag. Wer allerdings viel in solchen Foren unterwegs ist, bekommt davon irgendwann einen Rappel: Das ist zu kompliziert!

Lösung (für Thunderbird unter MacOS)

bbNotify ist ein lustiges kleines Script, das euch eine überwachte Forumseite im Browser öffnet, wenn jemand geantwortet hat. Es liest dazu die Mails aus dem Thunderbird-Datenordner, sucht darin nach phpBB-typischen URLs, und sendet sie an den MacOS-Befehl open.

Idee dahinter: Wenn man das Script als daemon laufen lässt:

ruby bbnotify.rb &

dann wird man schnell informiert, wenn sich in den überwachten Foren etwas tut. Man muss nicht mehr erst zum Mailclient wechseln, die Mail auswählen, und auf den Link klicken.

Code

1
2
3
4
5
6
7
8
9
# bbNotify, by murphy, 2007, Public Domain
open "|tail -0 -f /Users/murphy/Library/Thunderbird/Profiles/YOUR-PROFILE-NUM.default/Mail/mail.rubychan.de/Foren" do |io|
  while x = io.gets
    if x[/http:.*?\/viewtopic\.php\?p=\S*/]  # looks like phpBB Topic URL
      puts $&
      system 'open', $&
    end
  end
end

Erklärung

Das Script öffnet per tail -f die Liste, in der meine Mails im Ordner “mail.rubychan.de/Foren” abgespeichert werden (in meinem Thunderbird habe ich Filter definiert, die alle phpBB-Meldungen in diesen Ordner verschieben.) Ändert sich die Datei, springt auch io.gets an. Stößt es auf eine URL, die nach einem Link auf ein Forum-Topic aussieht, dann öffnet es die Website.

Offene Probleme

Eigentlich hätte ich den Browser gerne im Hintergrund geöffnet. Bei mir ist Firefox der Standard-Browser, und der öffnet sich sofort im Vordergrund.

Portierung

Es sollte kein großes Problem sein, das Script auf andere Betriebsysteme umzustellen, wenn man einen Ersatz für den open-Befehl findet. Andere Foren sind auch kein Problem, dazu passt man die Regexp an. Andere Mailclients sind aber sicher schwierig: Thunderbird speichert eure Mails netterweise im Plaintext in einer einzelnen Datei pro Ordner.