Headerbild

Da es bei Twitter inzwischen üblich ist, dass einige User sich mittels Bots alles abonnieren, was ihnen im Weg steht habe ich mir heute eine Lösung überlegt, die ohne meiner Maus zu schaden diesen bösen Followern den Hals umdreht.

Hier findet Ihr ein kleines Ruby-Script, welches über die Twitter-API eure Follower ausliest, sich informationen über sie besorgt und sie bei überschreiten einer bestimmten Ratio an Followers / Friends blockt. Bitte lest euch vor dem Einsatz dieses Scripts die Kommentare und / oder das Script durch um sicher zu stellen, dass Ihr das wollt was ich da programmiert habe.

Momentan mit der stark reduzierten API-Nutzung ist das Script nur bei wenigen Followern zu empfehlen, da leider 1 + Anzahl der Follower Requests gemacht werden muss. (Dazu kommen dann noch die Block-Anfragen.) Da die Zahl momentan bei 30 Anfragen pro Stunde liegt, kommt es bei >=30 Followern leider zu Problemen. Ich hoffe, dass die erlaubte Anzahl an Anfragen für die API bald wieder erhöht wird, aber wenn man sein Script nur einmal täglich ausführt (evtl. wenn kein anderer Client läuft) sollte keiner (außer die Add-Bot-Nutzer) etwas dagegen haben.

Hier der obligatorische Hinweis: Wer es einsetzt und den Twitter-Server damit ganz killt ist selber schuld.

Wer jetzt immer noch überzeugt ist, dass er das Script mag findet es nach dem Umbruch. Sollte jemand noch Fehler finden oder Vorschläge zur Verbesserung haben: Mein Blog hat eine Kommentar-Funktion!

[UPDATE:2008-06-26]

Heute habe ich ein wenig an meinem Script gebastelt und mittels Sequel ein Caching für Ratios eingebaut. Dadurch werden die Anzahl der Anfragen an Twitter noch einmal reduziert. Solange die Ratios gecached sind werden sie nicht mehr abgerufen.

Das Script ist jetzt auch in einer Langzeit-Version meines Nopaste-Systems verfügbar, damit ich mich nicht mit dem rumgebastel vom WordPress rumschlagen muss. Das Script ist dort auch als normale Textdatei zum Download verfügbar: [Funktioniert nicht mehr und ist nicht mehr verfügbar.]

I just read Tantes post regarding his script to rename pictures using the exif data written by the camera.

So I want to present my own script too. It works nearly the same way as Tantes but this script adds a check for existing pictures and not existing exif data.

See the script below the break.

#!/bin/bash

######
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
######

######
## This script requires the ubuntu package "exiftags". Other distros might
## provide it with another name but it have to provide the command "exiftime"
######

# Hereingegebene Datei in $INFILE laden
INFILE=$1

# Sollte die Datei nicht existieren mit Status 1 aussteigen
if ! [ -e "$INFILE" ]
then
	exit 1
fi

# Die Dateiendung des Opfers ermitteln und dafür sorgen, dass sie lower-case ist
TMP=$(echo "$INFILE" | sed "s/.*\.\([a-zA-Z]*\)$/\1/")
SUFFIX=$(echo $TMP | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/")

# Das Zielverzeichnis ermitteln
SUBDIR=$(echo "$INFILE" | sed "s/^\(.*\/\)[^\/]*$/\1/")

# Aus den Exif-Tags den neuen Dateinamen ermitteln
NEWNAME=$(exiftime -tc "$INFILE" | sed 's/.*: \([0-9].*\)/\1/;s/:/-/g;s/ /_/g')

# Sollte es nicht möglich sein die Exif-Daten auszulesen dann Status 2 und raus.
if ( test "$NEWNAME" == "" )
then
	exit 2
fi

# Standardmäßig den blanken Dateinamen ohne Counter verwenden
RIGHTNAME=$NEWNAME 

# Counter initialisieren
CT=0

# Sollte es schon eine Datei mit genau diesem Namen geben wird ein Counter angehängt
while [ -e $SUBDIR$RIGHTNAME.$SUFFIX ]
do
	CT=$(( $CT + 1 )) # Den counter erhöhen
	RIGHTNAME=$NEWNAME"_"$CT # Den counter an den Dateinamen anhängen
done

# Schlussendlich die Datei in ihren neuen Namen umbenennen
mv --update "$INFILE" $SUBDIR$RIGHTNAME.$SUFFIX

# Den Rückgabestatus des mv zurück liefern
exit $#

On 2nd April there was an interesting post on SheGeeks about an mobile application for windows mobile devices to use twitter on it without the cost of many short messages. The only things needed are a windows mobile device with .NET compact framework 2.0 and an internet connection on the mobile.

So for people like me using such an device (HTC Touch) with a included volume of 250 MB traffic per month this is a nice possibility to post twitter comments on the mobile device and follow the posts of my friends. Additional this works too if the mobile is connected to a WLAN access-point and helps to reduce cost.

If you are searching such an client I can recommend to try out this (currently marked as “beta”) application.

knuttr2@knut.me