def hashtag(inp, say=None, db=None, bot=None, me=None, conn=None, input=None, chan=None, notice=None): "<word>? -- Shows what data is associated with <word>." disabledhashes = database.get(db,'channels','disabledhashes','chan',chan) split = inp.group(1).strip().split(" ") try: if chan[0] != '#': pass elif split[0].lower() in disabledhashes.lower(): notice('{} is disabled.'.format(split[0])) return except TypeError: pass try: prefix_on = bot.config["plugins"]["factoids"].get("prefix", False) except KeyError: prefix_on = False db_init(db) # split up the input split = inp.group(1).strip().split(" ") factoid_id = split[0] if len(split) >= 1: arguments = " ".join(split[1:]) else: arguments = "" data = get_memory(db, factoid_id) if data: # factoid preprocessors if data.startswith("<py>"): code = data[4:].strip() variables = 'input="""%s"""; nick="%s"; chan="%s"; bot_nick="%s";' % (arguments.replace('"', '\\"'), input.nick, input.chan, input.conn.nick) result = execute.eval_py(variables + code) elif data.startswith("<url>"): url = data[5:].strip() try: result = http.get(url) except http.HttpError: result = "Could not fetch URL." else: result = data # factoid postprocessors result = text.multiword_replace(result, shortcodes) if result.startswith("<act>"): result = result[5:].strip() me(result) else: if prefix_on: say("\x02[%s]:\x02 %s" % (factoid_id, result)) else: say("\x02%s\x02 %s" % (factoid_id, result))
def factoid(inp, message=None, db=None, bot=None, action=None, conn=None, input=None): "?<word> -- Shows what data is associated with <word>." try: prefix_on = bot.config["plugins"]["factoids"].get("prefix", False) except KeyError: prefix_on = False db_init(db) # split up the input split = inp.group(1).strip().split(" ") factoid_id = split[0] if len(split) >= 1: arguments = " ".join(split[1:]) else: arguments = "" data = get_memory(db, factoid_id) if data: # factoid preprocessors if data.startswith("<py>"): code = data[4:].strip() variables = 'input="""{}"""; nick="{}"; chan="{}"; bot_nick="{}";'.format( arguments.replace('"', '\\"'), input.nick, input.chan, input.conn.nick) result = execute.eval_py(variables + code) else: result = data # factoid postprocessors result = text.multiword_replace(result, shortcodes) if result.startswith("<act>"): result = result[5:].strip() action(result) elif result.startswith("<url>"): url = result[5:].strip() try: message(http.get(url)) except http.HttpError: message("Could not fetch URL.") else: if prefix_on: message("\x02[{}]:\x02 {}".format(factoid_id, result)) else: message(result)
def factoid(inp, message=None, db=None, bot=None, action=None, conn=None, input=None): "?<word> -- Shows what data is associated with <word>." try: prefix_on = bot.config["plugins"]["factoids"].get("prefix", False) except KeyError: prefix_on = False db_init(db) # split up the input split = inp.group(1).strip().split(" ") factoid_id = split[0] if len(split) >= 1: arguments = " ".join(split[1:]) else: arguments = "" data = get_memory(db, factoid_id) if data: # factoid preprocessors if data.startswith("<py>"): code = data[4:].strip() variables = 'input="""{}"""; nick="{}"; chan="{}"; bot_nick="{}";'.format(arguments.replace('"', '\\"'), input.nick, input.chan, input.conn.nick) result = execute.eval_py(variables + code) else: result = data # factoid postprocessors result = text.multiword_replace(result, shortcodes) if result.startswith("<act>"): result = result[5:].strip() action(result) elif result.startswith("<url>"): url = result[5:].strip() try: message(http.get(url)) except http.HttpError: message("Could not fetch URL.") else: if prefix_on: message("\x02[{}]:\x02 {}".format(factoid_id, result)) else: message(result)
def python(inp): "python <prog> -- Executes <prog> as Python code." return eval_py(inp)
def hashtag(inp, say=None, db=None, bot=None, me=None, conn=None, input=None, chan=None, notice=None): "<word>? -- Shows what data is associated with <word>." disabledhashes = database.get(db, 'channels', 'disabledhashes', 'chan', chan) split = inp.group(1).strip().split(" ") try: if chan[0] != '#': pass elif split[0].lower() in disabledhashes.lower(): notice('{} is disabled.'.format(split[0])) return except TypeError: pass except AttributeError: pass try: prefix_on = bot.config["plugins"]["factoids"].get("prefix", False) except KeyError: prefix_on = False db_init(db) # split up the input split = inp.group(1).strip().split(" ") factoid_id = split[0] if len(split) >= 1: arguments = " ".join(split[1:]) else: arguments = "" data = get_memory(db, factoid_id) if data: # factoid preprocessors if data.startswith("<py>"): code = data[4:].strip() variables = 'input="""%s"""; nick="%s"; chan="%s"; bot_nick="%s";' % ( arguments.replace('"', '\\"'), input.nick, input.chan, input.conn.nick, ) result = execute.eval_py(variables + code) elif data.startswith("<url>"): url = data[5:].strip() try: result = http.get(url) except http.HttpError: result = "Could not fetch URL." else: result = data # factoid postprocessors result = text.multiword_replace(result, shortcodes) if result.startswith("<act>"): result = result[5:].strip() me(result) else: if prefix_on: say("\x02[%s]:\x02 %s" % (factoid_id, result)) else: say("\x02%s\x02 %s" % (factoid_id, result))