import random from datetime import datetime from common import userstatus class Protectees(): def update(self, nick, user, host): if nick in self.protectees: # On record. if userstatus.atleast_halfop(self, user, self.homechannel) or nick == self.connection.get_nickname(): # Update. Is atleast halfop or bot itself. self.protectees[nick].update({'ident': nick + "!" + user + "@" + host}) else: # Delete. del self.protectees[nick] else: # Append. if userstatus.atleast_halfop(self, user, self.homechannel) or nick == self.connection.get_nickname(): # Update. Is atleast halfop or bot itself. self.protectees[nick] = {'ident': nick + "!" + user + "@" + host} class Replyto(): def name(connection, event): messages = [ "Hello " + event.source.nick + ".", "How are you today " + event.source.nick + "?", "Piss off " + event.source.nick + "!", event.source.nick + ", what are you botherring me for?", "Go bother someone else...", "Is life treating you fair?", "What's up?", "Why are you talking to me?", "I'm not talking to you!", "What have you been up to?", "How is life?", "What do you wan't from me?", event.source.nick + ", why are you bothering me?", event.source.nick + ", when will you stop talking about me?", event.source.nick + " I hate you!", "Get bent!", "Go and cut yourself.", "Do you think i care about you?", "Stop nickalerting me " + event.source.nick + ", you wanker!", ] actions = [ "hides!", "dies.", "runs away.", "is ignoring that.", "is not feeling like caring.", "is away", "will be ignoring that.", "is faggaliciouz!! <333", "likes you! <3", "looks the other way...", "does a little dance with " + event.source.nick + ".", "makes a little love.", "get's down tonight.", "thinks SAM Broadcaster sucks raw cocks in hell!", "is secretly in love with " + event.source.nick + ".", "tosses " + event.source.nick + "'s salad.", "tortures " + event.source.nick + " horribly!", "is smelling like tuna when looking at " + event.source.nick + ".", "sniffing armpits.. Eew! Smells like " + event.source.nick + ".", "rapes " + event.source.nick + ".", ] # Reply with a random message or action. if random.randint(0, 1) == 0: connection.privmsg(event.target, random.choice(messages)) else: connection.action(event.target, random.choice(actions)) class Aggressiveness(): def retalliation_reason(self, connection, protectee, behaviour): if protectee == connection.get_nickname(): # Bot itself. return "Aggression channel function = " + behaviour + ": Self defense." else: return "Aggression channel function = " + behaviour + ": " + protectee + " is atlast halfop in " + self.homechannel + "." class Lastact(): def update(self, name, type, channel=False, lastact=False, auxiliary=False): # Create records if not present. if not self.db.one("SELECT id FROM users WHERE name='" + name + "' AND network='" + self.network + "'"): # Not on record. self.db.run("INSERT INTO users (name, network) VALUES ('" + name + "', '" + self.network + "')") # Create record. # Update record. fields = "last_act_type, last_act_datetime" values = "'" + type + "', '" + str(datetime.now()) + "'" parameters = () if channel: fields = fields + ", last_act_channel" values = values + ", '" + channel + "'" if lastact: fields = fields + ", last_act" values = values + ", %s" parameters = (lastact, ) if auxiliary: fields = fields + ", last_act_auxiliary" values = values + ", %s" parameters = parameters + (auxiliary, ) self.db.run("UPDATE users SET (" + fields + ") = (" + values + ") WHERE name='" + name + "' AND network='" + self.network + "'", parameters)