Changeset 9
- Timestamp:
- 01/27/04 20:13:24 (5 years ago)
- Files:
-
- trunk/jjigw.py (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jjigw.py
r7 r9 13 13 from pyxmpp import ClientStream,JID,Iq,Presence,Message,StreamError 14 14 import pyxmpp.jabberd 15 from pyxmpp.jabber.muc import MucPresence,MucX,MucUserX,MucItem,MUC_NS 15 16 16 17 class ConnectConfig: … … 172 173 if channel: 173 174 channel.sync_user(self) 175 176 def jid(self): 177 return JID(nick_to_node(self.nick,self.session.default_encoding), 178 self.session.network.jid.domain, 179 unicode(self.user+'@'+self.host,self.session.default_encoding,"replace")) 174 180 175 181 def debug(self,msg): … … 223 229 self.stanza=stanza.copy() 224 230 self.state="join" 231 if stanza.get_join_info(): 232 self.muc=1 225 233 226 234 def leave(self,stanza): … … 236 244 self.state=None 237 245 self.stanza=None 238 p= Presence(type="unavailable",fr=stanza.get_to(),to=stanza.get_from(),status=status)246 p=MucPresence(type="unavailable",fr=stanza.get_to(),to=stanza.get_from(),status=status) 239 247 self.session.component.send(p) 240 248 for u in self.users: … … 253 261 def get_user_presence(self,user): 254 262 if self.state and user in self.users: 255 p=Presence(fr=self.nick_to_jid(user.nick),to=self.session.jid) 256 else: 257 p=Presence(type="unavailable",fr=self.nick_to_jid(user.nick),to=self.session.jid) 263 p=MucPresence(fr=self.nick_to_jid(user.nick),to=self.session.jid) 264 else: 265 p=MucPresence(type="unavailable",fr=self.nick_to_jid(user.nick),to=self.session.jid) 266 if self.muc: 267 ui=p.make_muc_userinfo() 268 it=MucItem("none","participant",user.jid(),unicode(user.nick,self.encoding,"replace")) 269 ui.add_item(it) 258 270 return p 259 271 … … 302 314 if self.state=="join": 303 315 self.debug("Channel %r joined!" % (self.name,)) 304 p=Presence(type="available",fr=self.stanza.get_to(), 305 to=self.stanza.get_from()) 306 self.session.component.send(p) 316 self.session.user.join_channel(self) 307 317 self.state="joined" 308 318 self.stanza=None … … 381 391 self.channels={} 382 392 self.users={} 393 self.user=IRCUser(self,nick) 383 394 384 395 def register_user(self,user): … … 681 692 self.disco_info.add_feature("jabber:iq:version") 682 693 self.disco_info.add_feature("jabber:iq:register") 694 self.disco_info.add_feature(MUC_NS) 683 695 self.stream.set_presence_handler("available",self.presence_available) 684 696 self.stream.set_presence_handler("unavailable",self.presence_unavailable) … … 788 800 self.irc_sessions[fr.as_unicode()]=sess 789 801 if to.node: 790 sess.join( stanza)802 sess.join(MucPresence(stanza)) 791 803 else: 792 804 p=Presence(
