====== Shacklaf ======
{{tag>project software process infrastructure computing social howto }}
shacklaf ist der [[https://twitter.com/#!/shack_laf|twitter-account]] des Lost and Found Tisches im shackspace.
Er nimmt eine Direct Message entgegen und postet sie aufgehuebscht auf die Mitglieder Mailingliste.
===== Wie benutze ich es? =====
Erstmal musst du den [[https://twitter.com/#!/shack_laf|twitter-account]] dazu bekommen dir zu folgen, dazu fragst du am besten momo, das geht leider noch nicht automagisch.
Sobald dir der Account folgt schickst du ihm eine Direct Message (DM) mit einer einfachen beschreibung des Gegenstands (z.B. Regenschirm) und einem Link zum Foto des Objekts.
Schon ist die Magie geschehen, und der Account postet es automagisch auf die Mitglieder Mailingliste.
===== Mein Twitterclient ist kacke =====
Diverse Twitterclients unterstuetzen keine DMs mit Bildern im Anhang, doch du kannst ihn austricksen indem du einen normalen Tweet schreibst, und ein Bild anhaengst.
Beispiel: d shack_laf Regenschirm
===== Kudos =====
Jan: fuer die Idee\\
momo: fuer den Code
===== Code =====
import time
import smtplib
from email.mime.text import MIMEText
#initiate twitter API
api = twitter.Api()
api = twitter.Api(
consumer_key='XXXX',
consumer_secret='XXXX',
access_token_key='XXXX',
access_token_secret='XXXX')
newest_dm = ''
#check for direct messages
def update_dms():
global newest_dm
fetched_dms = api.GetDirectMessages()
current_newest_dm = fetched_dms[0]
if newest_dm == '' :
print 'initialized!'
newest_dm = current_newest_dm
elif newest_dm != current_newest_dm:
print 'new dm!'
#print current_newest_dm.text
newest_dm = current_newest_dm
send_email()
else:
print 'No Update'
def compose_message():
msg = newest_dm.sender_screen_name+"[0]:\n"+newest_dm.text+"\n\nVon dem abgebildetem Gegenstand sind Zweck oder Besitzer unbekannt, bitte hilf bei der Identifizierung.\n\n[0] angegeben ist der Twitter Account (https://twitter.com/#!/"+newest_dm.sender_screen_name+")"
return msg
def send_email():
sender = 'lost_and_found@mo2-systems.com'
recipient = 'mitglieder@lists.shackspace.de'
msg = MIMEText(compose_message())
msg['Subject'] = "[Lost and Found] "+newest_dm.text
msg['From'] = sender
msg['To'] = recipient
#debug
#print msg
s = smtplib.SMTP('localhost')
s.sendmail(sender, recipient, msg.as_string())
s.quit()
return msg
while True:
update_dms()
time.sleep(30)