Einträge der Kategorie 'Eigene Software'

twitter-Meldungen per Mail empfangen

Nach gut einem Monat Produktiveinsatz kann ich nun das Programm twitter2mail guten Gewissens freigeben und anderen Personen zum Download anbieten.

Das Python-Script läuft idealerweise auf einem Server, der über einen Mail-Transfer-Agent verfügt, wo es von cron regelmäßig aufgerufen wird.

Zum Betrieb ist die python-twitter-API notwendig, die bei aktuellen Linux-Distributionen bereits in den Paketquellen enthalten ist, aber auch nachträglich leicht installiert werden kann.

Folgende Schritte sind zur Installation von twitter2mail notwendig:

  1. Python-Datei auf den Server herunterladen und via chmod ausführbar machen
  2. python-twitter installieren
  3. twitter-Account, Passwort und Pfad für temporäre Arbeitsdatei im Kopf der Datei anpassen
  4. twitter2mail in die crontab eintragen, z. B.


#M S T M W Befehl
*/15    *    * * *   /home/markus/scripts/twitter2mail/twitter2mail_04.py >> /var/log/cron.log 2>&1

Und schon erhält man regelmäßig Mails mit den aktuellen Meldungen der Leute, denen man auf twitter folgt. Dies sieht dann in etwa so aus:

Betreff: [Twitter] Aktuelles vom 2010-05-08 14:00
Datum: Sat,  8 May 2010 14:00:02 +0200 (CEST)
Von: twitter2mail;
An: Markus Becker (News Inbox)

Aktuelle Tweets:
----------------------

Sat May 08 11:48:41 +0000 (UTC) 2010: der_abakus:
twitter2mail v0.4 officially released: http://bit.ly/cIDSWF #twitter #mailgateway

[...]

Homepage-Statistiken aus Logfiles selbst erstellen

Um Statistiken über Besucherzahlen und Seitenaufrufe ermitteln zu können, habe ich folgendes Bash-Script geschrieben:

#!/bin/bash
#mailstat v0.3
d=$(date +%d/%b/%Y)
for url in "xn--sdumgehung-9db.de" "mbecker-tech"; do
echo "Domain: $url:" >> out
ges=$(grep "$d" /var/log/apache2/access.log | grep "$url" | awk '{print $1}' | sort | uniq -c | grep -c ".")
echo "Besucher: $ges (IPs)" >> out
echo "" >> out
echo "Besuchte Seiten:" >> out
grep "$d" /var/log/apache2/access.log | grep "$url" | awk '{print $11}' | sort | uniq -c | sort -b -n -r >> out
echo " " >> out
done
echo " " >> out
echo "Statistic generated by mb-mailstat v0.3" >> out
echo "Copyright 2010 by M. Becker | http://mbecker-tech.de" >> out
echo " " >> out
mail -s "Statistik $d" <emailadresse> < out
rm out

Das Script wird täglich von cron aufgerufen und durchsucht die access.log vom apache-Webserver nach dem aktuellen Datum. Diese Rohdaten werden anschließend noch nach den URLs der VHosts durchsucht und die Anzahl der Besucher (anhand der IPs) ermittelt.

Anschließend werden noch die angezeigten Unterseiten ausgefiltert und gezählt.

Diese Statistik wird dann per E-Mail an mich gesendet:

Domain: mbecker-tech:
Besucher: 20 (IPs)

Besuchte Seiten:
    122 "http://mbecker-tech.de/2010/04/18/
         donaukurier-und-google-street-view/"
     87 "http://mbecker-tech.de/"
     79 "http://mbecker-tech.de/?p=803&preview=true"
     62 "http://mbecker-tech.de/wp-content/themes/eximius/style.css"
     46 "http://mbecker-tech.de/wp-admin/post.php?action=edit&post=803"
     32 "http://mbecker-tech.de/wp-admin/css/colors-fresh.css?ver=20091217"
     28 "http://mbecker-tech.de/wp-admin/"
     23 "http://mbecker-tech.de/wp-admin/post-new.php"
     15 "http://mbecker-tech.de/tag/freenet/"
     15 "http://mbecker-tech.de/fuhrpark/"
     12 "http://mbecker-tech.de/impressum/"
      9 "http://mbecker-tech.de/2010/04/02/service-bei-1und1/"
      6 "http://mbecker-tech.de/wp-includes/js/tinymce/themes/advanced/
         skins/wp_theme/ui.css?ver=327-1235100"
      6 "http://mbecker-tech.de/wp-admin/edit.php"
      3 "http://mbecker-tech.de/category/motorsport/"
      1 "http://mbecker-tech.de/projekte/"
      1 "http://mbecker-tech.de/it-skills/"

Statistic generated by mb-mailstat v0.3
Copyright 2010 by M. Becker | http://mbecker-tech.de

IRC-Bot als Schnittstelle zwischen IRC, http und Twitter

Um Statusinfos unseres IRC-Channels (Anzahl der Nutzer, Zeitpunkt der letzten Aktivität, Infos zum Topic) auch auf unserer Homepage anzeigen zu können, habe ich einen IRC-Bot in python entwickelt und unter der BSD-Lizenz veröffentlicht.

Der Bot baut über die python-irclib eine Verbindung zum IRC-Server auf und “joined” dem Channel. Die Statusinfos, die auf der Homepage angezeigt werden sollen, werden anschließend regelmäßig in ein maschinenlesbares JSON-File gespeichert.

Zusätzlich wird über die twitter-API das Topic bei Änderungen “getwittert” (Hintergrund: in unserem Vereins-Channel “#bytewerk” auf freenode wird die Anzahl der Anwesenden im Vereinsheim ins Topic geschrieben, um lästige Fragen wie “ist grad’ jemand im bytewerk” zu ersparen).