Changeset 128
- Timestamp:
- 12/22/07 15:23:11 (3 years ago)
- Files:
-
- 1 modified
-
randomchat/randomchat.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
randomchat/randomchat.py
r126 r128 58 58 return other 59 59 60 def update_ status(self, jid, show):60 def update_availability(self, jid, availability): 61 61 if not self.has_user(jid): 62 62 return 63 if show == 'chat': 64 self.users_list[jid] = True 65 else: 66 self.users_list[jid] = False 67 print self.users_list 63 self.users_list[jid] = availability 68 64 69 65 def jid_list(self): … … 84 80 room = msg.getTo().getNode() 85 81 room_jid = room+'@'+self.jid 86 if not frm_str in self.users or self.users[frm_str]['room'] != room or self.users[frm_str]['nick'] is None:82 if not frm_str in self.users or not self.users[frm_str].has_key(room) or self.users[frm_str][room]['nick'] is None: 87 83 con.send(xmpp.Error(msg, 'item-not-found')) 88 84 return … … 94 90 message.setTo(jid) 95 91 if jid == frm: 96 message.setFrom(room_jid+'/'+self.users[frm_str][ 'nick'])92 message.setFrom(room_jid+'/'+self.users[frm_str][room]['nick']) 97 93 else: 98 94 message.setFrom(room_jid+'/'+config.NICK_GUEST) … … 101 97 def destroy_room(self, room): 102 98 for jid in self.rooms[room]: 103 user = self.users[jid.getStripped()] 99 if not self.users.has_key(jid.getStripped()): 100 continue 101 user = self.users[jid.getStripped()][room] 104 102 destroy = xmpp.Presence(to = jid, frm = room+'@'+self.jid+'/'+user['nick'], typ = 'unavailable', payload = [ 105 103 xmpp.Node('x', attrs={'xmlns': xmpp.NS_MUC+'#user'}, payload = [ … … 121 119 room_jid = room+'@'+self.jid 122 120 nick = prs.getTo().getResource() 123 if not frm_str in self.users or self.users[frm_str]['room'] != room:124 con.send(xmpp.Error(prs, 'item-not-found'))125 return126 121 if nick == '': 127 122 con.send(xmpp.Error(prs, 'bad-format')) 128 123 return 129 130 user = self.users[frm_str] 124 if not self.users.has_key(frm_str) or not self.users[frm_str].has_key(room): 125 con.send(xmpp.Error(prs, 'item-not-found')) 126 return 127 128 user = self.users[frm_str][room] 131 129 132 130 print user['nick'] … … 170 168 jid1_str = jid1.getStripped() 171 169 jid2_str = jid2.getStripped() 172 self.users[jid1_str] = {'room': room, 'other': jid2_str, 'nick': None} 173 self.users[jid2_str] = {'room': room, 'other': jid1_str, 'nick': None} 170 if not self.users.has_key(jid1_str): 171 self.users[jid1_str]={} 172 self.users[jid1_str][room] = {'other': jid2_str, 'nick': None} 173 if not self.users.has_key(jid2_str): 174 self.users[jid2_str]={} 175 self.users[jid2_str][room] = {'other': jid1_str, 'nick': None} 174 176 self.invite(room,jid1) 175 177 self.invite(room,jid2) … … 197 199 self.con.RegisterHandler('message', self.message_handler) 198 200 201 b=xmpp.browser.Browser() 202 b.PlugIn(self.con) 203 items=[] 204 info={'ids':[{'category': 'conference', 'type': 'text', 'name': 'Random Chat'}], 'features':[xmpp.NS_REGISTER, xmpp.NS_DISCO_INFO, xmpp.NS_DISCO_ITEMS]} 205 b.setDiscoHandler({'items':items,'info':info}) 206 207 199 208 self.send_probes() 200 209 … … 227 236 self.muc.presence_handler(con, prs) 228 237 return 229 self.users.update_status(prs.getFrom().getStripped(), prs.getShow()) 238 if prs.getType() is None and prs.getShow() == 'chat': 239 #available to chat 240 self.users.update_availability(prs.getFrom().getStripped(), True) 241 con.send(xmpp.Presence(frm = self.jid, to = prs.getFrom(), show = 'chat')) 242 else: 243 self.users.update_availability(prs.getFrom().getStripped(), False) 244 if prs.getType() is None: 245 con.send(xmpp.Presence(frm = self.jid, to = prs.getFrom())) 246 else: 247 con.send(xmpp.Presence(frm = self.jid, to = prs.getFrom(), typ = 'unavailable')) 230 248 231 249
