Twitter API Limit

Neulich berichtete ich per Twitter (@seeseekey) live von der Kreistagsitzung. Nach einer Weile kam dann beim Versenden eines Tweet nur noch „Verboten“ als Antwort vom Server zurück. Ich hatte wohl mein API Limit gesprengt. Das führt natürlich zu der Frage wo genau dieses Limit liegt.

Glücklicherweise ist das alles sauber dokumentiert. Das Limit für Direktnachrichten liegt bei 250 pro Tag, das der Tweets (Updates) bei 1000 pro Tag wobei auch Retweets als Updates gezählt werden. Die Anzahl der Updates ist allerdings noch pro Stunde gedeckelt und zwar auf 150 bzw. 350 (per OAuth). Nach Ablauf der Stunde kann man dann wieder weitertwittern.

Weitere Informationen gibt es unter:
https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following
https://dev.twitter.com/docs/rate-limiting

High Level WebGL API

Wer auf der Suche nach einer High Level API für WebGL ist, der sollte sich einmal PhiloGL anschauen. Dieses Framework welches Open Source (MIT Lizenz) ist kann dabei unter http://senchalabs.github.com/philogl/ bezogen werden. Ein kurze Einführung in das Framwork gibt der Entwickler in seinem Blog unter http://www.sencha.com/blog/introducing-philogl-a-webgl-javascript-library-from-sencha-labs/.

Weitere Informationen gibt es unter:
http://www.golem.de/1102/81627.html

ChronoTweet 0.30

Aus meinen Bedürfnis heraus bestimmte Tweets nach einer bestimmten Zeit wieder zu löschen entstand folgendes kleines Skript, welches hier nun in der Version 0.30 vorliegt. Es wurde ein Fehler behoben der verhinderte das die Tweets gelöscht werden wenn man zu viele Tweets in der vorgebenden Zeit geschrieben hat:

# ChronoTweet v0.30
# https://seeseekey.net
#
# Installation
# http://pypi.python.org/pypi/simplejson installieren (apt-get install python-simplejson)
# http://code.google.com/p/python-twitter/ installieren
# wget http://python-twitter.googlecode.com/files/python-twitter-0.6.tar.gz
# tar -xf python-twitter-0.6.tar.gz
# cd python-twitter-0.6
# python setup.py build
# python setup.py install
#
# chrono_tweet - Dateirechte 700
# crontab -e

# Import
import time
import twitter

# Optionen
twitter_account_name = "seeseekey"
twitter_account_password = "1234567890"

remove_time_in_seconds = 151200 # 42 Stunden

hashtag_sensitive=False
hashtag="#ChronoTweet"

# Programmlogik
api = twitter.Api(username=twitter_account_name, password=twitter_account_password)
stati = api.GetUserTimeline(twitter_account_name, 9999999)

for s in stati: #Fuer jeden Status
	currentTime = time.mktime(time.localtime(time.time()))
	createTime = s.GetCreatedAtInSeconds()
	diffTime = currentTime-createTime
	
	if diffTime > remove_time_in_seconds: #Wenn Zeit groesser remove_time_in_seconds
	
		if hashtag_sensitive==True:
			if s.text.find(hashtag) != -1: #Wenn ChronoTweet
				print(s.id)
				api.DestroyStatus(s.id)
		else:
			print(s.id)
			api.DestroyStatus(s.id)

ChronoTweet 0.20

Aus meinen Bedürfnis heraus bestimmte Tweets nach einer bestimmten Zeit wieder zu löschen entstand folgendes kleines Skript, welches hier nun in der Version 0.20 vorliegt in welcher man einstellen kann nach welchem Hashtag gesucht werden soll und ob überhaupt nach einem Hashtag gesucht werden soll:

# ChronoTweet v0.20
# https://seeseekey.net
#
# Installation
# http://pypi.python.org/pypi/simplejson installieren (apt-get install python-simplejson)
# http://code.google.com/p/python-twitter/ installieren
# wget http://python-twitter.googlecode.com/files/python-twitter-0.6.tar.gz
# tar -xf python-twitter-0.6.tar.gz
# cd python-twitter-0.6
# python setup.py build
# python setup.py install
#
# chrono_tweet - Dateirechte 700
# crontab -e

# Import
import time
import twitter

# Optionen
twitter_account_name = "seeseekey"
twitter_account_password = "123456789"

remove_time_in_seconds = 151200 # 42 Stunden

hashtag_sensitive=True
hashtag="#ChronoTweet"

# Programmlogik
api = twitter.Api(username=twitter_account_name, password=twitter_account_password)
stati = api.GetUserTimeline(twitter_account_name)

for s in stati: #Fuer jeden Status
	currentTime = time.mktime(time.localtime(time.time()))
	createTime = s.GetCreatedAtInSeconds()
	diffTime = currentTime-createTime
	
	if diffTime > remove_time_in_seconds: #Wenn Zeit groesser remove_time_in_seconds
		if hashtag_sensitive==True:
			if s.text.find(hashtag) != -1: #Wenn ChronoTweet
				print(s.id)
				api.DestroyStatus(s.id)
		else:
			print(s.id)
			api.DestroyStatus(s.id)