#!/usr/bin/python # -*- coding: utf-8 -*- # modulos import time from jabber import jabber # variables configurables daylight=0 # time.daylight latin2utf = lambda s: s.decode('latin1').encode('utf-8') utf2latin = lambda u: u.encode('latin1') # cosas de conversación minutos = 0.2 sesion = [ # principio ['mensaje', 'Hola, mi nombre es Ulysses (para ustedes uly) y me encargaré de dirigir esta sesión de sombreros.'], ['sleep', 3], # blanco ['mensaje', 'Expresen todos sus pensamientos de sombrero blanco: hechos, cifras, información objetiva. Tienen %d minutos.' % (minutos)], ['guarda', 'blanco'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # rojo ['mensaje', 'Ahora expresen todos sus pensamientos de sombrero rojo: emociones y sensaciones, sentimientos. Tienen %d minutos.' % (minutos)], ['guarda', 'rojo'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # negro ['mensaje', 'Ahora expresen todos sus pensamientos de sombrero negro: lógico, negativo. Tienen %d minutos.' % (minutos)], ['guarda', 'negro'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # amarilo ['mensaje', 'Ahora expresen todos sus pensamientos de sombrero amarillo: Positivo, constructivo. Tienen %d minutos.' % (minutos)], ['guarda', 'amarillo'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # verde ['mensaje', 'Ahora expresen todos sus pensamientos de sombrero verde: Creatividad, ideas nuevas. Tienen %d minutos.' % (minutos)], ['guarda', 'verde'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # azul ['mensaje', 'Ahora expresen todos sus pensamientos de sombrero azul: control de los demás sombreros y pasos para pensar. Tienen %d minutos.' % (minutos)], ['guarda', 'azul'], ['sleep', minutos * 60], ['mensaje', 'El tiempo ha finalizado.'], ['sleep', 3], # fin ['mensaje', 'Muchas gracias por su participación.'], ] class sombreros(jabber): def __init__(self, user, resource, server, password): jabber.__init__(self, user, resource, server, password) self.step = -1 self.tag = None self.array={} def recv_sala(self, sala, user, text, date): jabber.recv_sala(self, sala, user, text, date) if self.step > -1 and sesion[self.step][0] == 'sleep': print "recibido groupchat de '%s': (text='%s', date='%s')" % (user, text, date) if self.tag: self.array[self.tag].append(text) self.send_groupchat("recibido %s" % user) else: self.send_groupchat(u"lo siento %s, no hay sesión de sombreros en marcha" % user) def recv_sala_private(self, mesg, user, text, date): jabber.recv_sala_private(self, mesg, user, text, date) print "recibido private de '%s': (text='%s', date='%s')" % (user, text, date) if text == 'on': self.step = 0; self.chat_reply(mesg, "comenzado, gracias") elif text == 'off': self.step = -1; self.chat_reply(mesg, "terminando, gracias") elif text == 'bye': self.chat_reply(mesg, "saliendo, adios") self.exit = 1 else: self.chat_reply(mesg, "comandos disponibles: on, off, bye") def recv_private(self, mesg, user, text, date): jabber.recv_private(self, mesg, user, text, date) print "recibido private de '%s': (text='%s', date='%s')" % (user, text, date) self.chat_reply(mesg, "he recibido con exito un message de '%s' que dice '%s'" % (user,text)) if __name__ == "__main__": con_user = "ulysses" con_server = "gulic.org" con_resource = "bot" con_password = "safjkasdf" con_sala="sombreros@jabber.gulic.org" j = sombreros(con_user, con_resource, con_server, con_password) while True: j.connect() # conecta j.join_groupchat(con_sala) # entra a sala j.send_groupchat('Hola hola vecino' ) # hola y tal while True: if j.step == -1: if j.loop(1): break # loop de eventos continue command = sesion[j.step][0] arg = sesion[j.step][1] if command == "sleep": if j.loop(arg): break elif command == "mensaje": j.send_groupchat(arg) elif command == "guarda": j.array[arg]=[] j.tag = arg j.step += 1 if len(sesion)==j.step: j.step = -1 j.send_groupchat('los resultados son: '+ str(j.array)) # hola y tal print j.array print "x=",j.step j.send_groupchat('Me voy vuelvo en 2 minutos') # bye y tal j.leave_groupchat() # sale de sala j.disconnect() # cuelga # j.chat_start(server + '/announce/online', "mensajito de prueba para el broadcast") # broadcast # j.chat_start("amd77@gulic.org", "mensajito de prueba para amd77@gulic.org") # a usuario print "Durmiendo dos minutos" time.sleep(2*60)