1
# gozerbot/jabberpresence.py
5
""" jabber presence definition """
7
__copyright__ = 'this file is in the public domain'
9
from gozerbot.generic import rlog
10
from gozerbot.ircevent import makeargrest
13
class Jabberpresence(xmpp.Presence):
15
""" jabber presence object """
17
def __init__(self, msg=None):
19
xmpp.Presence.__init__(self, node=msg)
21
xmpp.Presence.__init__(self)
23
self.id = self.getID()
24
rlog(1, 'jabberpresence', str(self))
27
""" set ircevent compatible attributes """
28
self.cmnd = 'Presence'
34
self.nick = str(self.getFrom().getResource())
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
44
self.origtxt = self.txt
45
self.to = str(self.getTo())
46
self.time = time.time()
49
self.rest = ' '.join(self.args)
59
self.type = self.getType()
62
if self.type == 'groupchat':
65
self.groupchat = False
71
def copyin(self, jmsg):
72
""" copy in another jabber presence """
73
self.cmnd = str(jmsg.cmnd)
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)
82
self.jid = xmpp.JID(jmsg.userhost)
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)
96
self.args = list(jmsg.args)
97
self.rest = str(jmsg.rest)
98
self.usercmnd = jmsg.usercmnd
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
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)