Changeset 126
- Timestamp:
- 10/31/07 17:36:28 (3 years ago)
- Files:
-
- 1 modified
-
randomchat/randomchat.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
randomchat/randomchat.py
r125 r126 10 10 11 11 NS_MUC_USER = xmpp.NS_MUC+'#user' 12 13 PRS_OFFLINE = 114 PRS_CHAT = 215 PRS_AVAILABLE = 316 PRS_AWAY = 417 PRS_XA = 518 PRS_DND = 619 12 20 13 def db_connect(config): … … 36 29 user = cursor.fetchone() 37 30 while user: 38 self.users_list[user[0]] = PRS_OFFLINE31 self.users_list[user[0]] = False 39 32 user = cursor.fetchone() 40 33 cursor.close() … … 46 39 self.db.execute("INSERT INTO randomchat (jid) VALUES (?)", (jid,)) 47 40 self.db.commit() 48 self.users_list[jid] = PRS_OFFLINE41 self.users_list[jid] = False 49 42 50 43 def remove_user(self, jid): … … 55 48 def get_chat_partner(self, jid): 56 49 user = jid.getStripped() 57 if len(self.users_list) < 2: 50 users = [jid for jid in self.users_list.keys() if self.users_list[jid]] 51 #if we have only one participant don't start a chat, except when the user is not in this list (so in fact we have two participants) 52 if (len(users) < 2 and user in users) or len(users) < 1: 58 53 return None 59 54 else: 60 users = self.users_list.keys()61 55 other = random.choice(users) 62 56 while other == user: 63 57 other = random.choice(users) 64 58 return other 59 60 def update_status(self, jid, show): 61 if not self.has_user(jid): 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 68 69 def jid_list(self): 70 return self.users_list.keys() 71 72 65 73 66 74 class MUC: … … 189 197 self.con.RegisterHandler('message', self.message_handler) 190 198 199 self.send_probes() 200 191 201 192 202 while 1: … … 217 227 self.muc.presence_handler(con, prs) 218 228 return 219 pass 229 self.users.update_status(prs.getFrom().getStripped(), prs.getShow()) 230 220 231 221 232 def message_handler(self, con, msg): … … 233 244 return True 234 245 246 def send_probes(self): 247 for jid in self.users.jid_list(): 248 self.con.send(xmpp.Presence(to = jid, frm = self.jid, typ='probe')) 249 235 250 236 251 db = db_connect(config)
