9. Dezember 2007
Warum eigentlich werden meine Einträge vorwiegend auf Seiten zitiert, die gleichzeitig unschlagbare Angebote für rezeptpflichtige Medikamente machen? Das muss ich jedenfalls aus den Trackbacks schließen, die mich seit einiger Zeit erreichen. Um dem Treiben Einhalt zu gebieten, werden ab sofort alle Kommentare und Trackbacks durch Akismet gefiltert. Für private Blogs ist der benötigte API-Key durch eine Registrierung bei Wordpress zu bekommen, was etwas verwundert, da ich mich mit meinem eigenen Blog schließlich vom Blog-Mainstream abheben möchte (Sie dürfen kurz lachen). Nun gut, können sie mit einem registrierten Nutzer mehr werben...
Um auf die Akismet-API zuzugreifen benutze ich die Library von David Lynch (vermutlich nicht identisch mit diesem David Lynch) mit folgender Funktion:
def is_spam(user_ip, user_agent, **other):
blog_url='http://qoli.de/blog/'
try:
key = akismet.verify_key( settings.AKISMET_API_KEY, blog_url )
if key:
return akismet.comment_check( settings.AKISMET_API_KEY, blog_url,
user_ip, user_agent, **other)
except akismet.AkismetError, e:
pass
return false
in den entsprechenden Views wird sie dann so aufgerufen:
if is_spam(request.META['REMOTE_ADDR'], request.META['HTTP_USER_AGENT'],
comment_author=request.POST['person_name'],
comment_content=request.POST['comment'],
comment_type='comment' ):
return HttpResponse('SPAM')
bzw.
if is_spam(request.META['REMOTE_ADDR'], request.META['HTTP_USER_AGENT'],
comment_author=blog,
comment_content=excerpt,
comment_type='trackback',
comment_author_url=url ):
return render_to_response('blog/trackback_answer.xml',{'error':'1','errormsg': 'SPAM' })