Randomness: add 'vote' command & make responses more relevant

This commit is contained in:
GLolol 2014-08-08 13:41:27 -07:00
parent 74f3e10d33
commit c73ffb158d

View File

@ -67,6 +67,7 @@ class Randomness(callbacks.Plugin):
self.__parent = super(Randomness, self) self.__parent = super(Randomness, self)
self.__parent.__init__(irc) self.__parent.__init__(irc)
self.dotCounter = TimeoutQueue(10) self.dotCounter = TimeoutQueue(10)
self.votes = {}
## ##
# SHHHHHHHHHHH DON'T SPOIL THE JOKES DOWN HERE # SHHHHHHHHHHH DON'T SPOIL THE JOKES DOWN HERE
## ##
@ -83,7 +84,7 @@ class Randomness(callbacks.Plugin):
exclaim = (("!" * random.randint(1,5)) + ("1" * random.randint(0,2))) * \ exclaim = (("!" * random.randint(1,5)) + ("1" * random.randint(0,2))) * \
random.randint(1,2) + ("!" * random.randint(-1,5)) random.randint(1,2) + ("!" * random.randint(-1,5))
gemotes = ["xD", "=']", "\\o/", ":"+"3"*random.randint(1,4), "^_^"] gemotes = ["xD", "=']", "\\o/", ":"+"3"*random.randint(1,4), "^_^"]
bemotes = ["-_-", ":|", ":\\"] bemotes = ["-_-", ":|", ":\\", ":/"]
if irc.network.lower() == "overdrive-irc": if irc.network.lower() == "overdrive-irc":
if "wow" in irc.state.channels[msg.args[0]].ops and \ if "wow" in irc.state.channels[msg.args[0]].ops and \
ircutils.stripFormatting(msg.args[1].lower()).startswith("wow"): ircutils.stripFormatting(msg.args[1].lower()).startswith("wow"):
@ -96,14 +97,16 @@ class Randomness(callbacks.Plugin):
"ffs i'm trying to work", "ffs i'm trying to work",
"WHAT DO YOU WANT", "WHAT DO YOU WANT",
"leave me alone "+random.choice(bemotes), "leave me alone "+random.choice(bemotes),
"ugh", "hello, you've reached the user 'wow'. "
"pls", "for peoplehat actually need to talk to me, "
"stop" + dots, "press 1. for everybody else, PISS OFF!"
"stop it!", "stop highlighting me" + dots,
"reproted to fbi for harrassment" + dots, "reproted to fbi for harrassment" + dots,
"-_-", "-_-",
msg.nick + " pls", msg.nick + " pls",
"i cry", "need something?"
"r u mad"
"ur made"
"fml", "fml",
"?", "?",
".", ".",
@ -137,7 +140,7 @@ class Randomness(callbacks.Plugin):
irc.queueMsg(ircmsgs.privmsg(msg.args[0], random.choice(dotresponses))) irc.queueMsg(ircmsgs.privmsg(msg.args[0], random.choice(dotresponses)))
else: self.dotCounter.enqueue([0]) else: self.dotCounter.enqueue([0])
elif ircutils.stripFormatting(msg.args[1]) == "ok": elif ircutils.stripFormatting(msg.args[1]) == "ok":
okresponses = ["not ok", "ok", "ko", "not ok"+unichr(2122), "no spam", "^why does everyone say that ._."] okresponses = ["not ok", "ok", "ko", "okay*", "O.K.", "^why does everyone say that ._."]
r = random.randint(1, 23) r = random.randint(1, 23)
if r >= 17: if r >= 17:
irc.queueMsg(ircmsgs.action(msg.args[0], random.choice(volatile)+msg.nick)) irc.queueMsg(ircmsgs.action(msg.args[0], random.choice(volatile)+msg.nick))
@ -152,6 +155,27 @@ class Randomness(callbacks.Plugin):
and r >= 0.3: and r >= 0.3:
irc.queueMsg(ircmsgs.privmsg(msg.args[0], "OH, hackinbot! " + random.choice(gemotes))) irc.queueMsg(ircmsgs.privmsg(msg.args[0], "OH, hackinbot! " + random.choice(gemotes)))
def _lazyhostmask(self, host):
return "*!"+host.split("!",1)[1]
def vote(self, irc, msg, args, action):
"""<thing>
Votes for something. It doesn't actually perform any actions directly,
but could be an interesting way to get user feedback."""
self.log.warning(action)
try:
if self._lazyhostmask(msg.prefix) in self.votes[action][1]:
irc.reply("You have already voted to %s." % action)
return
except KeyError:
self.votes[action] = [0, []]
self.votes[action][0] += 1
a, b = action.split(" ",1)
irc.reply("%s voted to \x02%s\x02 %s. (Votes: \x02%s\x02)" % (msg.nick, a, b, self.votes[action][0]))
self.votes[action][1].append(self._lazyhostmask(msg.prefix))
vote = wrap(vote, ['text'])
Class = Randomness Class = Randomness