Esempio n. 1
0
 def __init__(self):
     self.questions = self.load_trivia()
     self.current = ""
     self.trivia_time = LoopTimeThread(config.get('trivia-interval'), self)
     self.trivia_time.start()
     self.f = f.WHITE + "[" + f.PURPLE + "Trivia" + f.WHITE + "] "
     self.disabled = False
     log("Trivia initialized.", m_type="STARTUP", colour=Fore.CYAN)
Esempio n. 2
0
 def __init__(self):
     self.questions = self.load_trivia()
     self.current = ""
     self.trivia_time = LoopTimeThread(config.get('trivia-interval'), self)
     self.trivia_time.start()
     self.f = f.WHITE + "[" + f.PURPLE + "Trivia" + f.WHITE + "] "
     self.disabled = False
     log("Trivia initialized.", m_type="STARTUP", colour=Fore.CYAN)
Esempio n. 3
0
class Trivia:
    """ Trivia class, has a timer in
    a separate thread that initiates a new
    round every 'trivia-interval' seconds.
    
    """
    def __init__(self):
        self.questions = self.load_trivia()
        self.current = ""
        self.trivia_time = LoopTimeThread(config.get('trivia-interval'), self)
        self.trivia_time.start()
        self.f = f.WHITE + "[" + f.PURPLE + "Trivia" + f.WHITE + "] "
        self.disabled = False
        log("Trivia initialized.", m_type="STARTUP", colour=Fore.CYAN)
        
    def load_trivia(self):
        with open('trivia.yml', 'r') as triv:
            c = yaml.load(triv)
        return c
        
    def get_question(self):
        return random.choice(self.questions.keys())
            
    def get_answer(self):
        for k, v in self.questions.iteritems():
            if k == self.current:
                return str(v).lower()
        
    def guess(self, guess, nick):
        if self.check(guess):
            c.say(f.GREEN + self.f + nick + f.WHITE + " got the answer! "
                + f.ORANGE + "+" + str(config.get('trivia-points')) + " points!")
            self.current = ""
            score.add(nick, config.get('trivia-points'))
            
        else:
            c.msg(self.f + "Incorrect!", nick)
        return True
        
    def check(self, guess):
        g = str(" ".join(guess))
        for k, v in self.questions.iteritems():
            if k == self.current:
                if g.lower() == str(v).lower():
                    return True
        return False
        
    def disable(self):
        self.disabled = True
        
    def getinfo(self):
        n = 0
        for k in self.questions:
            n += 1
        int = config.get('trivia-interval')
        return (self.f
                + "Time interval: " + str(int)
                + " seconds (" + str(int/60) + " minutes), "
                + str(n) + " questions listed.")
        
    def _getdisabled(self):
        return self.disabled
        
    def _runnable(self):
        if not self.current == "":
            c.say(self.f + "Nobody got it! New round.")
        self.current = self.get_question()
        self.answer = self.get_answer()
        c.say(self.f + self.current
            + " (" + str(len(self.answer.split(" "))) + ")")
        c.say(self.f + "Use ?a [answer] to answer")
Esempio n. 4
0
 def __init__(self):
     self.FLOOD = {}
     self.last_msg = ""
     self.thread = LoopTimeThread(config.get("interval"), self)
     self.thread.start()
     self.disabled = False
Esempio n. 5
0
class Handler:
    def __init__(self):
        self.FLOOD = {}
        self.last_msg = ""
        self.thread = LoopTimeThread(config.get("interval"), self)
        self.thread.start()
        self.disabled = False

    def _runnable(self):
        self.decrement()

    def _getdisabled(self):
        return self.disabled

    def disable(self):
        self.disabled = True

    # Add one to nick's flood amount
    def increment(self, nick, msg):
        if "esper.net" in nick:
            return False
        if not self.FLOOD.has_key(nick):
            self.FLOOD[nick] = 1

        elif msg == self.last_msg:
            self.FLOOD[nick] += 2

        else:
            self.FLOOD[nick] += 1

        self.handle(nick, self.FLOOD[nick])
        return True

    def clear_empties(self):
        for nick, val in self.FLOOD:
            if val == 0:
                del self.FLOOD[nick]

    def clear(self):
        self.FLOOD = {}

    def decrement(self):
        try:
            keys = self.FLOOD.keys()
            for nick in keys:
                self.FLOOD[nick] -= 1
                if self.FLOOD[nick] == 0:
                    del self.FLOOD[nick]

            say = False
            for nick, val in self.FLOOD.iteritems():
                log(nick + ": " + str(val), m_type="SPAMHANDLR")
                # ACTION_LOG.info(Style.BRIGHT + Fore.BLUE + 'SPAMHDLR ' + Fore.RESET + nick + ': ' + str(val))
                say = True
            if say:
                log("Decremented FLOOD dict", m_type="SPAMHANDLR")
                # ACTION_LOG.info(Style.BRIGHT + Fore.BLUE + 'SPAMHDLR ' + Fore.RESET + ' Decremented FLOOD dict')

        except:
            traceback.print_exc()

    def handle(self, nick, val):
        if val > config.get("kick"):
            connect.kick(nick, "Spamming")
            connect.say(f.YELLOW + "User " + f.RED + nick + f.YELLOW + " was kicked for spamming.")
            log("User: "******" was kicked for spamming", m_type="SPAMHANDLR", reset=False)
            # ACTION_LOG.info(Fore.RED + 'KCK' + Fore.RESET + ' User: '******' was kicked for spamming')
            del self.FLOOD[nick]

        elif val > config.get("warn"):
            connect.msg(f.YELLOW + "Please slow down with your messages, or else you'll be kicked.", nick)
Esempio n. 6
0
class Trivia:
    """ Trivia class, has a timer in
    a separate thread that initiates a new
    round every 'trivia-interval' seconds.
    
    """
    def __init__(self):
        self.questions = self.load_trivia()
        self.current = ""
        self.trivia_time = LoopTimeThread(config.get('trivia-interval'), self)
        self.trivia_time.start()
        self.f = f.WHITE + "[" + f.PURPLE + "Trivia" + f.WHITE + "] "
        self.disabled = False
        log("Trivia initialized.", m_type="STARTUP", colour=Fore.CYAN)

    def load_trivia(self):
        with open('trivia.yml', 'r') as triv:
            c = yaml.load(triv)
        return c

    def get_question(self):
        return random.choice(self.questions.keys())

    def get_answer(self):
        for k, v in self.questions.iteritems():
            if k == self.current:
                return str(v).lower()

    def guess(self, guess, nick):
        if self.check(guess):
            c.say(f.GREEN + self.f + nick + f.WHITE + " got the answer! " +
                  f.ORANGE + "+" + str(config.get('trivia-points')) +
                  " points!")
            self.current = ""
            score.add(nick, config.get('trivia-points'))

        else:
            c.msg(self.f + "Incorrect!", nick)
        return True

    def check(self, guess):
        g = str(" ".join(guess))
        for k, v in self.questions.iteritems():
            if k == self.current:
                if g.lower() == str(v).lower():
                    return True
        return False

    def disable(self):
        self.disabled = True

    def getinfo(self):
        n = 0
        for k in self.questions:
            n += 1
        int = config.get('trivia-interval')
        return (self.f + "Time interval: " + str(int) + " seconds (" +
                str(int / 60) + " minutes), " + str(n) + " questions listed.")

    def _getdisabled(self):
        return self.disabled

    def _runnable(self):
        if not self.current == "":
            c.say(self.f + "Nobody got it! New round.")
        self.current = self.get_question()
        self.answer = self.get_answer()
        c.say(self.f + self.current + " (" + str(len(self.answer.split(" "))) +
              ")")
        c.say(self.f + "Use ?a [answer] to answer")
Esempio n. 7
0
 def __init__(self):
     self.FLOOD = {}
     self.last_msg = ""
     self.thread = LoopTimeThread(config.get('interval'), self)
     self.thread.start()
     self.disabled = False
Esempio n. 8
0
class Handler:
    def __init__(self):
        self.FLOOD = {}
        self.last_msg = ""
        self.thread = LoopTimeThread(config.get('interval'), self)
        self.thread.start()
        self.disabled = False

    def _runnable(self):
        self.decrement()

    def _getdisabled(self):
        return self.disabled

    def disable(self):
        self.disabled = True

    # Add one to nick's flood amount
    def increment(self, nick, msg):
        if 'esper.net' in nick:
            return False
        if not self.FLOOD.has_key(nick):
            self.FLOOD[nick] = 1

        elif msg == self.last_msg:
            self.FLOOD[nick] += 2

        else:
            self.FLOOD[nick] += 1

        self.handle(nick, self.FLOOD[nick])
        return True

    def clear_empties(self):
        for nick, val in self.FLOOD:
            if val == 0:
                del self.FLOOD[nick]

    def clear(self):
        self.FLOOD = {}

    def decrement(self):
        try:
            keys = self.FLOOD.keys()
            for nick in keys:
                self.FLOOD[nick] -= 1
                if self.FLOOD[nick] == 0:
                    del self.FLOOD[nick]

            say = False
            for nick, val in self.FLOOD.iteritems():
                log(nick + ': ' + str(val), m_type='SPAMHANDLR')
                #ACTION_LOG.info(Style.BRIGHT + Fore.BLUE + 'SPAMHDLR ' + Fore.RESET + nick + ': ' + str(val))
                say = True
            if say:
                log('Decremented FLOOD dict', m_type='SPAMHANDLR')
                #ACTION_LOG.info(Style.BRIGHT + Fore.BLUE + 'SPAMHDLR ' + Fore.RESET + ' Decremented FLOOD dict')

        except:
            traceback.print_exc()

    def handle(self, nick, val):
        if val > config.get('kick'):
            connect.kick(nick, "Spamming")
            connect.say(f.YELLOW + 'User ' + f.RED + nick + f.YELLOW +
                        ' was kicked for spamming.')
            log('User: '******' was kicked for spamming',
                m_type='SPAMHANDLR',
                reset=False)
            #ACTION_LOG.info(Fore.RED + 'KCK' + Fore.RESET + ' User: '******' was kicked for spamming')
            del self.FLOOD[nick]

        elif val > config.get('warn'):
            connect.msg(
                f.YELLOW +
                'Please slow down with your messages, or else you\'ll be kicked.',
                nick)