def collectlines(bot, trigger): """Create a temporary log of what people say""" # Don't log things in PM if trigger.is_privmsg: return # Add a log for the channel and nick, if there isn't already one if trigger.sender not in bot.memory['find_lines']: bot.memory['find_lines'][trigger.sender] = lpbotMemory() if Identifier(trigger.nick) not in bot.memory['find_lines'][trigger.sender]: bot.memory['find_lines'][trigger.sender][Identifier(trigger.nick)] = list() # Create a temporary list of the user's lines in a channel templist = bot.memory['find_lines'][trigger.sender][Identifier(trigger.nick)] line = trigger.group() if line.startswith("s/"): # Don't remember substitutions return elif line.startswith("\x01ACTION"): # For /me messages line = line[:-1] templist.append(line) else: templist.append(line) del templist[:-10] # Keep the log to 10 lines per person bot.memory['find_lines'][trigger.sender][Identifier(trigger.nick)] = templist
def collectlines(bot, trigger): """Create a temporary log of what people say""" # Don't log things in PM if trigger.is_privmsg: return # Add a log for the channel and nick, if there isn't already one if trigger.sender not in bot.memory['find_lines']: bot.memory['find_lines'][trigger.sender] = lpbotMemory() if Identifier( trigger.nick) not in bot.memory['find_lines'][trigger.sender]: bot.memory['find_lines'][trigger.sender][Identifier( trigger.nick)] = list() # Create a temporary list of the user's lines in a channel templist = bot.memory['find_lines'][trigger.sender][Identifier( trigger.nick)] line = trigger.group() if line.startswith("s/"): # Don't remember substitutions return elif line.startswith("\x01ACTION"): # For /me messages line = line[:-1] templist.append(line) else: templist.append(line) del templist[:-10] # Keep the log to 10 lines per person bot.memory['find_lines'][trigger.sender][Identifier( trigger.nick)] = templist
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][http_regex] = catch_spotify_url bot.memory['url_callbacks'][uri_regex] = catch_spotify_url
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][wiki_article] = wiki_info
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][post_regex] = rpost_info bot.memory['url_callbacks'][user_regex] = redditor_info
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][github_pull] = get_pull_info bot.memory['url_callbacks'][github_issue] = get_issue_info
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][regex] = ytinfo
def __init__(self, config): irc.Bot.__init__(self, config.core) self.config = config """The ``Config`` for the current lpbot instance.""" self.doc = {} """ A dictionary of command names to their docstring and example, if declared. The first item in a callable's commands list is used as the key in version *3.2* onward. Prior to *3.2*, the name of the function as declared in the source code was used. """ self.stats = {} """ A dictionary which maps a tuple of a function name and where it was used to the nuber of times it was used there. """ self.times = {} """ A dictionary mapping lower-case'd nicks to dictionaries which map funtion names to the time which they were last used by that nick. """ self.acivity = {} self.server_capabilities = set() """A set containing the IRCv3 capabilities that the server supports. For servers that do not support IRCv3, this will be an empty set.""" self.enabled_capabilities = set() """A set containing the IRCv3 capabilities that the bot has enabled.""" self._cap_reqs = dict() """A dictionary of capability requests Maps the capability name to a list of tuples of the prefix ('-', '=', or ''), the name of the requesting module, and the function to call if the request is rejected.""" self.privileges = dict() """A dictionary of channels to their users and privilege levels The value associated with each channel is a dictionary of Identifiers to a bitwise integer value, determined by combining the appropriate constants from `module`.""" self.db = lpbotDB(config) """The bot's database.""" self.memory = tools.lpbotMemory() self.memory['owner_auth'] = False """ A thread-safe dict for storage of runtime data to be shared between modules. See `lpbotMemory <#tools.lpbot.lpbotMemory>`_ """ self.scheduler = LpBot.JobScheduler(self) self.scheduler.start() # Set up block lists # Default to empty if not self.config.core.nick_blocks: self.config.core.nick_blocks = [] if not self.config.core.nick_blocks: self.config.core.host_blocks = [] #Add nicks blocked under old scheme, if present if self.config.core.other_bots: nicks = self.config.core.get_list('nick_blocks') bots = self.config.core.get_list('other_bots') nicks.extend(bots) self.config.core.nick_blocks = nicks self.config.core.other_bots = False self.config.save() self.setup()
def setup(bot): bot.memory['find_lines'] = lpbotMemory()
def setup(bot): if not bot.memory.contains('url_callbacks'): bot.memory['url_callbacks'] = tools.lpbotMemory() bot.memory['url_callbacks'][post_regex] = rpost_info bot.memory['url_callbacks'][user_regex] = redditor_info bot.memory['url_callbacks'][short_regex] = rpost_info