#!/usr/bin/python
# Rag Sagar.V <ragsagar@gmail.com>
# ragsagar.blogspot.com
# Feel Free to copy, modify and redistribute the script



import dbus
import time
import os



def set_message(message,purple):
	
	# Get current status type 
	current = purple.PurpleSavedstatusGetType(purple.PurpleSavedstatusGetCurrent())
	status = purple.PurpleSavedstatusNew("", current)
	purple.PurpleSavedstatusSetMessage(status, message)
	purple.PurpleSavedstatusActivate(status)

def get_data(proxy1,proxy2):
	path=proxy2.getPlayingUri()
	songtitle=proxy1.getSongProperties(path)['title']
	album=proxy1.getSongProperties(path)['album']
	artist=proxy1.getSongProperties(path)['artist-folded']
	return [songtitle,album,artist]
	


def retrieve_msg(purple):
	status=purple.PurpleSavedstatusGetCurrent()
	return purple.PurpleSavedstatusGetMessage(status)

bus = dbus.SessionBus()
proxy1=bus.get_object('org.gnome.Rhythmbox','/org/gnome/Rhythmbox/Shell')
proxy2=bus.get_object('org.gnome.Rhythmbox','/org/gnome/Rhythmbox/Player')
proxy = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(proxy, "im.pidgin.purple.PurpleInterface")
oldmsg=retrieve_msg(purple)
if oldmsg.find('%rb') != -1 :
  while True:
	oldmsg=oldmsg.strip()
	data=get_data(proxy1,proxy2)
	message=oldmsg.replace('%rbs',data[0])
	message=message.replace('%rbt',data[1])
	message=message.replace('%rba',data[2])
	set_message(message,purple)
	time.sleep(20)
else:
  while True:
	os.system('clear')
	data=get_data(proxy1,proxy2)
	print "Song : ",data[0]
	print "Album : ",data[1]
	print "Artist : ",data[2]
	message='listening to '+data[0]+' in '+data[1]
	set_message(message,purple)
	time.sleep(20)
	


 


