Changeset 123
- Timestamp:
- 10/30/07 21:06:00 (2 years ago)
- Files:
-
- 1 modified
-
randomchat/randomchat.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
randomchat/randomchat.py
r122 r123 3 3 4 4 import xmpp 5 import random 6 import sha 7 import time 8 5 9 import config 6 10 … … 40 44 self.db.execute("INSERT INTO randomchat (jid) VALUES (?)", (jid,)) 41 45 self.db.commit() 46 self.users_list[jid] = PRS_OFFLINE 42 47 43 48 def remove_user(self, jid): 44 49 self.db.execute("DELETE FROM randomchat WHERE jid=?", (jid,)) 45 50 self.db.commit() 51 del self.users_list[jid] 46 52 47 def get_chat_partner(jid): 48 pass 53 def get_chat_partner(self, jid): 54 user = jid.getStripped() 55 if len(self.users_list) < 2: 56 return None 57 else: 58 users = self.users_list.keys() 59 other = random.choice(users) 60 while other == user: 61 other = random.choice(users) 62 return other 63 64 class MUC: 65 def __init__(self, selfjid, con): 66 self.jid = selfjid 67 self.con = con 68 self.users = {} 69 70 def invite(self, room, jid): 71 invite = xmpp.Message(to = jid, frm = room+'@'+self.jid, body = 'Vous avez été invité dans le salon '+room+'@'+self.jid, payload = [ 72 xmpp.Node('x', attrs={'xmlns': xmpp.NS_MUC+'#user'}, payload = [ 73 xmpp.Node('invite', attrs={'to': room+'@'+self.jid}, payload = [ 74 xmpp.Node('reason', payload = ['Random chat !'] ) 75 ]) 76 ]) 77 ]) 78 self.con.send(invite) 79 self.users[jid.getStripped()] = room 80 81 def invite_users(self, jid1, jid2): 82 room = sha.sha(str(jid1)+str(jid2)+str(time.time())).hexdigest() 83 self.users[jid1] = room 84 self.users[jid2] = room 85 self.invite(room,jid1) 86 self.invite(room,jid2) 87 49 88 50 89 … … 54 93 self.con = xmpp.Component(server, port) 55 94 self.jid = jid 95 self.muc = MUC(jid, self.con) 56 96 if not self.con.connect(): 57 97 raise Exception('Unable to connect to %s:%s' % (server, port)) … … 95 135 96 136 def message_handler(self, con, msg): 97 self.init_chat(msg.getFrom()) 137 if not self.init_chat(msg.getFrom()): 138 con.send(xmpp.Message(to = msg.getFrom(), frm = msg.getTo(), body = 'Pas de participant trouvé', typ = msg.getType())) 98 139 99 140 def init_chat(self, jid): 100 141 other_jid = self.users.get_chat_partner(jid) 142 if other_jid is None: 143 return False 144 self.muc.invite_users(jid, xmpp.JID(other_jid)) 145 return True 101 146 102 147
