~vcs-imports/gozerbot/main

« back to all changes in this revision

Viewing changes to gozerplugs/plugs/relay.py

  • Committer: bthate
  • Date: 2007-05-08 10:03:37 UTC
  • Revision ID: vcs-imports@canonical.com-20070508100337-5b70lqgnm0djjn17
sync with hg

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
    
59
59
relay = Relay(datadir + os.sep + 'relay')
60
60
 
 
61
jabberjoined = {}
 
62
 
61
63
def size():
62
64
    return len(relay.data)
63
65
 
125
127
callbacks.add('PRIVMSG', cbrelaypriv, prerelay)
126
128
 
127
129
def cbMessage(bot, msg):
 
130
    if not msg.groupchat:
 
131
        return
128
132
    result = "[%s] %s" % (msg.nick, msg.origtxt)
129
133
    relay.check(bot.name, msg.channel, result, fromm=msg.userhost)
130
134
 
132
136
 
133
137
def cbPresence(bot, msg):
134
138
    result = None
135
 
    nick = msg.resource
 
139
    got = False
136
140
    if msg.type == 'unavailable':
137
 
        result = "%s left %s" % (nick, msg.channel)
 
141
        result = "%s left %s" % (msg.nick, msg.channel)
 
142
        try:
 
143
            jabberjoined[msg.channel].remove(msg.nick)
 
144
        except:
 
145
            pass
138
146
    elif msg.joined:
139
 
        if bot.timejoined.has_key(msg.channel):
140
 
            if time.time() - bot.timejoined[msg.channel] > 10:
141
 
                result = "%s joined %s" % (nick, msg.channel)
 
147
        try:
 
148
            if msg.nick in jabberjoined[msg.channel]:
 
149
                got = True
 
150
            else:
 
151
                got = False
 
152
        except KeyError:
 
153
                got = False
 
154
        if not got:
 
155
            if not jabberjoined.has_key(msg.channel):
 
156
                jabberjoined[msg.channel] = []
 
157
            jabberjoined[msg.channel].append(msg.nick)
 
158
            if bot.timejoined.has_key(msg.channel):
 
159
                if time.time() - bot.timejoined[msg.channel] > 10:
 
160
                    result = "%s joined %s" % (msg.nick, msg.channel)
142
161
    if result:
143
162
        relay.check(bot.name, msg.channel, result)
144
163