def _hype_stats_command(self, session: InboundMessageSession): stats_filename = self._config.get('hype_stats_filename') if not stats_filename or \ stats_filename and not os.path.exists(stats_filename): session.reply('{} This command is currently unavailable!'.format( gen_roar())) return try: with open(stats_filename) as file: doc = json.load(file) text_1 = '[{duration}] Lines/sec {averages_str} ' \ '· Hints/sec {hint_averages_str}'.format( duration=doc['stats']['duration'], averages_str=doc['stats']['averages_str'], hint_averages_str=doc['stats']['hint_averages_str'], ) text_2 = 'Chat {chat_graph} · Hint {hint_graph}'.format( chat_graph=doc['stats']['chat_graph'], hint_graph=doc['stats']['hint_graph'], ) except (ValueError, KeyError, IndexError): _logger.exception('Error formatting stats') else: session.say(text_1) session.say(text_2)
def _spell_chatot_command(self, session: InboundMessageSession): limiter_key = ('chatot', session.message['channel']) if not self._spam_limiter.is_ok(limiter_key): return text = session.match.group(1).strip() or 'I LIKE CHATOT' text = text[:len(self.CHATOT_TEMPLATE)] buf = io.StringIO() text_index = 0 for index, letter in enumerate(self.CHATOT_TEMPLATE): if index % 2 == 0: buf.write(letter) elif text_index < len(text) and letter.strip(): if text[text_index].strip(): buf.write(text[text_index]) else: buf.write(letter) text_index += 1 else: buf.write(letter) formatted_text = buf.getvalue() session.say(formatted_text, multiline=True) self._spam_limiter.update(limiter_key)
def _try_say_or_reply_too_long(cls, formatted_text, session: InboundMessageSession): if cls.is_too_long(formatted_text): session.reply(cls.TOO_LONG_TEXT_TEMPLATE.format(gen_roar())) return False else: session.say(formatted_text) return True
def _wow_command(self, session: InboundMessageSession): if self._tellnext_generator: platform_name = session.get_platform_name() max_len = 500 if platform_name == 'discord' else 400 session.say('> {}'.format( self._censor_text( session, self._tellnext_generator.get_paragraph(max_len))), multiline=True) else: session.reply('{} Feature not available!'.format(gen_roar()))
def _xd_rand_command(self, session: InboundMessageSession): if ( _random.random() < 0.1 or session.message["username"] == "wow_deku_onehand" and session.message["text"].strip() == "xD MingLee" ): def rep_func(match): return "!" if _random.random() < 0.6 else "1" session.say("{} xD MingLee".format(re.sub("!", rep_func, gen_roar().lower())))
def _xd_rand_command(self, session: InboundMessageSession): if _random.random() < 0.1 or \ session.message['username'] == 'wow_deku_onehand' and \ session.message['text'].strip() == 'xD MingLee': def rep_func(match): return '!' if _random.random() < 0.6 else '1' session.say('{} xD MingLee'.format( re.sub('!', rep_func, gen_roar().lower())))
def _greeting_command(self, session: InboundMessageSession): is_set = session.match.group(1) text = session.match.group(3).strip() if is_set: self._database.set_greeting( session.message['channel'], session.message['user_id'] or session.message['username'], text) session.reply('{} Greeting saved'.format(gen_roar())) else: greeting = self._database.get_greeting(session.message['channel']) if greeting: formatted_text = '{} {}'.format(gen_roar(), greeting) else: formatted_text = '{}'.format(gen_roar()) session.say(formatted_text, multiline=True)
def _try_say_or_reply_too_long(self, formatted_text, session: InboundMessageSession): platform_name = session.get_platform_name() if platform_name == 'twitch' and self._bot.twitch_char_limit: max_length = 500 max_byte_length = 1800 elif platform_name == 'discord': max_length = 2000 max_byte_length = max_length * 4 else: max_length = 400 max_byte_length = 400 if len(formatted_text) > max_length or self.is_too_long( formatted_text, max_byte_length): session.reply(self.TOO_LONG_TEXT_TEMPLATE.format(gen_roar())) return False else: session.say(formatted_text) return True
def _hype_stats_command(self, session: InboundMessageSession): stats_filename = self._config.get("hype_stats_filename") if not stats_filename or stats_filename and not os.path.exists(stats_filename): session.reply("{} This command is currently unavailable!".format(gen_roar())) return try: with open(stats_filename) as file: doc = json.load(file) text_1 = "[{duration}] Lines/sec {averages_str} " "· Hints/sec {hint_averages_str}".format( duration=doc["stats"]["duration"], averages_str=doc["stats"]["averages_str"], hint_averages_str=doc["stats"]["hint_averages_str"], ) text_2 = "Chat {chat_graph} · Hint {hint_graph}".format( chat_graph=doc["stats"]["chat_graph"], hint_graph=doc["stats"]["hint_graph"] ) except (ValueError, KeyError, IndexError): _logger.exception("Error formatting stats") else: session.say(text_1) session.say(text_2)
def _klappa_command(self, session: InboundMessageSession): session.say('{}'.format(_random.choice(('Kappa //', gen_roar()))))
def _klappa_command(self, session: InboundMessageSession): session.say("{}".format(_random.choice(("Kappa //", gen_roar()))))
def _huffle_command(self, session: InboundMessageSession): session.say(random.choice(['卅(◕‿◕)卅', '卅( ◕‿◕)卅つ✂ (◕‿◕ )卅']))
def _roar_command(self, session: InboundMessageSession): session.say('{} {} {}'.format(gen_roar(), gen_roar(), gen_roar().upper()))
def _roar_command(self, session: InboundMessageSession): session.say("{} {} {}".format(gen_roar(), gen_roar(), gen_roar().upper()))
def _wow_command(self, session: InboundMessageSession): if self._tellnext_generator: session.say('> {}'.format( self._tellnext_generator.get_paragraph())) else: session.reply('{} Feature not available!'.format(gen_roar()))
def _wow_command(self, session: InboundMessageSession): if self._tellnext_generator: session.say("> {}".format(self._tellnext_generator.get_paragraph())) else: session.reply("{} Feature not available!".format(gen_roar()))