====== 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)