1
2
3
4
5 """ jabber presence definition """
6
7 __copyright__ = 'this file is in the public domain'
8
9 from gozerbot.generic import rlog
10 from gozerbot.ircevent import makeargrest
11 import xmpp, time
12
14
15 """ jabber presence object """
16
18 if msg:
19 xmpp.Presence.__init__(self, node=msg)
20 else:
21 xmpp.Presence.__init__(self)
22 self.jabber = True
23 self.id = self.getID()
24 rlog(1, 'jabberpresence', str(self))
25
27 """ set ircevent compatible attributes """
28 self.cmnd = 'Presence'
29 self.conn = None
30 self.prefix = ""
31 self.postfix = ""
32 self.target = ""
33 self.arguments = []
34 self.nick = str(self.getFrom().getResource())
35 self.user = ""
36 self.jid = self.getAttr('jid') or self.getFrom()
37 self.ruserhost = self.jid
38 self.userhost = str(self.jid)
39 self.resource = self.getFrom().getResource()
40 self.stripped = str(self.jid.getStripped())
41 self.channel = str(self.getFrom().getStripped())
42 self.printto = self.channel
43 self.txt = ""
44 self.origtxt = self.txt
45 self.to = str(self.getTo())
46 self.time = time.time()
47 self.msg = None
48 self.args = []
49 self.rest = ' '.join(self.args)
50 self.usercmnd = 0
51 self.bot = bot
52 self.sock = None
53 self.inqueue = None
54 self.queues = []
55 self.printto = None
56 self.speed = 5
57 self.options = []
58 self.groups = None
59 self.type = self.getType()
60 self.cc = ""
61 self.alias = ""
62 if self.type == 'groupchat':
63 self.groupchat = True
64 else:
65 self.groupchat = False
66 if self.txt:
67 makeargrest(self)
68 self.joined = False
69 self.denied = False
70
72 """ copy in another jabber presence """
73 self.cmnd = str(jmsg.cmnd)
74 self.conn = jmsg.conn
75 self.prefix = str(jmsg.prefix)
76 self.postfix = str(jmsg.postfix)
77 self.target = str(jmsg.target)
78 self.arguments = str(jmsg.arguments)
79 self.nick = str(jmsg.nick)
80 self.user = str(jmsg.user)
81 if not jmsg.jid:
82 self.jid = xmpp.JID(jmsg.userhost)
83 else:
84 self.jid = jmsg.jid
85 self.ruserhost = str(jmsg.ruserhost)
86 self.userhost = str(jmsg.userhost)
87 self.resource = str(jmsg.resource)
88 self.stripped = jmsg.stripped
89 self.channel = str(jmsg.channel)
90 self.printto = str(jmsg.printto)
91 self.txt = str(jmsg.txt)
92 self.origtxt = str(jmsg.origtxt)
93 self.to = str(jmsg.to)
94 self.time = jmsg.time
95 self.msg = jmsg.msg
96 self.args = list(jmsg.args)
97 self.rest = str(jmsg.rest)
98 self.usercmnd = jmsg.usercmnd
99 self.bot = jmsg.bot
100 self.sock = jmsg.sock
101 self.inqueue = jmsg.inqueue
102 self.queues = list(jmsg.queues)
103 self.printto = jmsg.printto
104 self.speed = int(jmsg.speed)
105 self.options = jmsg.options
106 self.groups = jmsg.groups
107 self.groupchat = jmsg.groupchat
108 self.cc = str(jmsg.cc)
109 self.alias = str(jmsg.alias)
110 self.joined = jmsg.joined
111 self.denied = jmsg.denied
112
114 """ return ircevent repr compatible string """
115 return "cmnd=%s printto=%s arguments=%s nick=%s user=%s \
116 userhost=%s channel=%s txt=%s args=%s rest=%s speed=%s" % (self.cmnd, \
117 self.printto, self.arguments, self.nick, self.user, \
118 self.userhost, self.channel, self.txt, self.args, self.rest, self.speed)
119