Audacious 2 Twitter

By fuepi

Kleines Skript, um den aktuellen Titel von Audacious in Twitter zu posten.
Kurze Version (leider länger als 140 Zeichen ;) :

#!/usr/bin/env python
import dbus, twitter
twitter.Api(username="u",password="p").PostUpdate(("Playing: %(artist)s - %(title)s [%(album)s]" % dbus.SessionBus().get_object('org.mpris.audacious', '/Player').GetMetadata())[:140])

Längere Version:

#!/usr/bin/env python
import dbus
import logging
import sys
import twitter

format = """Now Playing: %(artist)s - %(title)s [%(album)s]"""
username = "u"
password = "p"
bus=dbus.SessionBus()

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(module)s %(levelname)s - %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')

try:
    player = bus.get_object('org.mpris.audacious', '/Player')
except dbus.exceptions.DBusException, msg:
    logging.error("Audacious is not running.")
    sys.exit(1)

info_dict = player.GetMetadata()
info = {'artist' : unicode(info_dict['artist']).encode('utf-8'),
        'album' : unicode(info_dict['album']).encode('utf-8'),
        'title' : unicode(info_dict['title']).encode('utf-8'),
        'genre' : unicode(info_dict['genre']).encode('utf-8'),}

logging.info(format % info)

tweet = twitter.Api(username=username,password=password)

try:
status = tweet.PostUpdate((format % info)[:140])
except twitter.TwitterError, msg:
logging.error(msg)
logging.debug(status)

Eine Antwort schreiben