Shacklaf

shacklaf ist der 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 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)
project/shacklaf.txt · Zuletzt geändert: 2012/05/18 03:36 von 93.231.180.130