Source code for errbot.core_plugins.utils

from os import path

from errbot import BotPlugin, botcmd


[docs]def tail(f, window=20): return ''.join(f.readlines()[-window:])
[docs]class Utils(BotPlugin): # noinspection PyUnusedLocal
[docs] @botcmd def echo(self, _, args): """ A simple echo command. Useful for encoding tests etc ... """ return args
[docs] @botcmd def whoami(self, msg, args): """ A simple command echoing the details of your identifier. Useful to debug identity problems. """ if args: frm = self.build_identifier(str(args).strip('"')) else: frm = msg.frm resp = "| key | value\n" resp += "| -------- | --------\n" resp += f"| person | `{frm.person}`\n" resp += f"| nick | `{frm.nick}`\n" resp += f"| fullname | `{frm.fullname}`\n" resp += f"| client | `{frm.client}`\n\n" # extra info if it is a MUC if hasattr(frm, 'room'): resp += f"\n`room` is {frm.room}\n" resp += f"\n\n- string representation is '{frm}'\n" resp += f"- class is '{frm.__class__.__name__}'\n" return resp
# noinspection PyUnusedLocal
[docs] @botcmd(historize=False) def history(self, msg, args): """display the command history""" answer = [] user_cmd_history = self._bot.cmd_history[msg.frm.person] length = len(user_cmd_history) for i in range(0, length): c = user_cmd_history[i] answer.append(f'{length - i:2d}:{self._bot.prefix}{c[0]} {c[1]}') return '\n'.join(answer)
# noinspection PyUnusedLocal
[docs] @botcmd(admin_only=True) def log_tail(self, msg, args): """ Display a tail of the log of n lines or 40 by default use : !log tail 10 """ n = 40 if args.isdigit(): n = int(args) if self.bot_config.BOT_LOG_FILE: with open(self.bot_config.BOT_LOG_FILE) as f: return '```\n' + tail(f, n) + '\n```' return 'No log is configured, please define BOT_LOG_FILE in config.py'
[docs] @botcmd def render_test(self, _, args): """ Tests / showcases the markdown rendering on your current backend """ with open(path.join(path.dirname(path.realpath(__file__)), 'test.md')) as f: return f.read()