def autobutt(_, chan=None, msg=None, bot=None, say=None): butt_config = bot.config.get('butt', {}) rate_mean = butt_config.get('rate_mean', 300) rate_sigma = butt_config.get('rate_sigma', 60) lines_mean = butt_config.get('lines_mean', 20) now = time.time() if chan[0] == '#': # public channel if chan in channel_states: state = channel_states[chan] state.lines_left -= 1 if state.next_time > now: return sent, score = butter.score_sentence(msg) if score.sentence() == 0 or score.sentence() < state.lines_left: return say(butter.buttify_sentence(sent, score)) channel_states[chan] = ChannelState( random.normalvariate(rate_mean, rate_sigma) + now, poissonvariate(lines_mean) ) else: # private message try: say(butter.buttify(msg)) except: pass
def autobutt(_, chan=None, msg=None, bot=None, say=None): butt_config = bot.config.get('butt', {}) rate_mean = butt_config.get('rate_mean', 300) rate_sigma = butt_config.get('rate_sigma', 60) lines_mean = butt_config.get('lines_mean', 20) now = time.time() if chan[0] == '#': # public channel if chan in channel_states: state = channel_states[chan] state.lines_left -= 1 if state.next_time > now: return sent, score = butter.score_sentence(msg) if score.sentence() == 0 or score.sentence() < state.lines_left: return say(butter.buttify_sentence(sent, score)) channel_states[chan] = ChannelState( random.normalvariate(rate_mean, rate_sigma) + now, poissonvariate(lines_mean)) else: # private message try: say(butter.buttify(msg)) except: pass
def butt(msg, me=None): """.butt <text> -- buttifies a line of text""" try: return butter.buttify(msg, min_words=1) except: me("can't butt the unbuttable!") raise
def butt(): text = request.args.get("text") if not text: return 404 else: try: return buttify(text) except ValueError: return "Too few words to buttify"
def search_twitter(query): result = random.choice(api.search(query)) response = json.dumps( {"username": result.author.screen_name, "content": buttify(result.text.encode("ascii", "ignore"))} ) return response