#! /usr/bin/env python
#-*- coding: iso-8859-1-*-

#AUTOR: David Valdez
#CORREO: david.valdez210arrobagmail.com
#FECHA: 9 de febrero del 2006

#Modificacion: Rodrigo Garcia
#Fecha: 26 de noviembre de 2005
#Correo: nibblesmx[arroba]gmail.com

#rola.py:Este es un script para
#xchat que lo unico que muestra
#es el titulo de la cancion
#de nuestro reproductor (xmms o beep-media-player)


#Recuerda:
#Debe de estar activado (en las preferencias del reproductor) el plugin
#general llamado libsong_change con el
#comando: echo "%s" > ~/.current_song

version = "2.0"
reproductor = "xmms" #Cambiar esto por  Beep-Media-Player si quieres el Beep-Media-Player

__module_name__ = "rola.py" 
__module_version__ = version
__module_description__ = "script para ver la rola actual hecho en python y controlar el playlist" 

import os
import xchat

class Rola:
	
	def __init__(self):
		xchat.prnt("rola.py Version %s cargado!" % (version))
		xchat.prnt("Los comandos para este script son:")
		xchat.prnt("/rola /next /prev /stop /play /pause /rolacurrent /rolasend")
	
	def rola(self, word, word_eol, userdata):
		archivo = open(os.environ['HOME']+ '/.current_song', 'r')
		cadena = archivo.read()
		archivo.close()		
		xchat.command('me esta escuchando %s' % (cadena[cadena.find('|')+1:cadena.find('^')]))
		archivo.close()				
		return xchat.EAT_XCHAT
	
	def current(self,word,word_eol, userdata):
		archivo = open(os.environ['HOME'] + '/.current_song','r')
		cadena = archivo.read()
		archivo.close
		xchat.command('me esta reproduciendo la rola numero %s de su playlist' % (cadena[:cadena.find('|')]))
		return xchat.EAT_XCHAT
	
	def send(self,word,word_eol,userdata):
		archivo = open(os.environ['HOME'] + '/.current_song','r')
		cadena = archivo.read()
		cadena2 =  '"'+cadena[cadena.find('^')+2:-1]+'"'
		archivo.close()	
		if len(word) < 2:
			print 'te falto poner  a quien se lo vas a mandar ;-)'
		elif len(word) > 2:
			print 'solo un nick por vez'
		else:			
			xchat.command('dcc send '+ word[1] + ' %s'% (cadena2) ) 		
		return xchat.EAT_XCHAT


	def __getattr__(self, accion):
		def accion(word, word_eol, userdata, _accion=accion):
			os.popen(reproductor + " --" + _accion)
			return xchat.EAT_ALL
		return accion
	
control = Rola()

xchat.hook_command("rola", control.rola)
xchat.hook_command("rolacurrent",control.current)
xchat.hook_command("next", control.fwd)
xchat.hook_command("play", control.play)
xchat.hook_command("stop", control.stop)
xchat.hook_command("prev", control.rew)
xchat.hook_command("pause", control.pause)
xchat.hook_command("rolasend",control.send)