insert bot loaded check into prerun

This commit is contained in:
deathbybandaid 2019-07-03 09:32:53 -04:00
parent 66a03df210
commit 1c4e07d39c
18 changed files with 18 additions and 36 deletions

View File

@ -19,6 +19,7 @@ from .Channels import channels as botchannels
from .MessageLog import messagelog as botmessagelog from .MessageLog import messagelog as botmessagelog
from .Config import config as botconfig from .Config import config as botconfig
from .Users import users as botusers from .Users import users as botusers
from .Events import events as botevents
def prerun(t_command_type='module', t_command_subtype=None): def prerun(t_command_type='module', t_command_subtype=None):
@ -28,6 +29,10 @@ def prerun(t_command_type='module', t_command_subtype=None):
@functools.wraps(function) @functools.wraps(function)
def internal_prerun(bot, trigger, *args, **kwargs): def internal_prerun(bot, trigger, *args, **kwargs):
# verify the bot is at a loaded state
while not botevents.check(botevents.BOT_LOADED):
pass
# Verify channel and user exist # Verify channel and user exist
verify_channel(trigger) verify_channel(trigger)
verify_user(trigger) verify_user(trigger)

View File

@ -9,7 +9,7 @@ import os
from .Config import config as botconfig from .Config import config as botconfig
from .Logs import logs from .Logs import logs
from .Events import events from .Events import events as botevents
from .Channels import SpiceBot_Channels_MainSection from .Channels import SpiceBot_Channels_MainSection
from .Commands import SpiceBot_Commands_MainSection from .Commands import SpiceBot_Commands_MainSection
@ -73,19 +73,19 @@ def setup_config(bot):
def setup_logs(bot): def setup_logs(bot):
logs.log('SpiceBot_Logs', "Starting Setup Procedure") logs.log('SpiceBot_Logs', "Starting Setup Procedure")
events.startup_add([events.BOT_LOGS]) botevents.startup_add([botevents.BOT_LOGS])
bot.config.core.logs_stdio = os.path.join(bot.config.core.logdir, 'stdio.log') bot.config.core.logs_stdio = os.path.join(bot.config.core.logdir, 'stdio.log')
# bot.config.core.logs_stdio = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.stdio.log') # bot.config.core.logs_stdio = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.stdio.log')
bot.config.core.logs_exceptions = os.path.join(bot.config.core.logdir, 'exceptions.log') bot.config.core.logs_exceptions = os.path.join(bot.config.core.logdir, 'exceptions.log')
# bot.config.core.logs_exceptions = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.exceptions.log') # bot.config.core.logs_exceptions = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.exceptions.log')
bot.config.core.logs_raw = os.path.join(bot.config.core.logdir, 'raw.log') bot.config.core.logs_raw = os.path.join(bot.config.core.logdir, 'raw.log')
# bot.config.core.logs_raw = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.raw.log') # bot.config.core.logs_raw = os.path.os.path.join(bot.config.core.logdir, bot.config.core.basename + '.raw.log')
events.trigger(bot, events.BOT_LOGS, "SpiceBot_Logs") botevents.trigger(bot, botevents.BOT_LOGS, "SpiceBot_Logs")
def setup_commands(bot): def setup_commands(bot):
logs.log('SpiceBot_Commands', "Setting Up Configuration") logs.log('SpiceBot_Commands', "Setting Up Configuration")
events.startup_add([events.BOT_COMMANDS]) botevents.startup_add([botevents.BOT_COMMANDS])
bot.config.define_section("SpiceBot_Commands", SpiceBot_Commands_MainSection, validate=False) bot.config.define_section("SpiceBot_Commands", SpiceBot_Commands_MainSection, validate=False)
bot.config.core.query_list = str(bot.config.SpiceBot_Commands.query_prefix).replace("\\", '').split("|") bot.config.core.query_list = str(bot.config.SpiceBot_Commands.query_prefix).replace("\\", '').split("|")
bot.config.core.prefix_list.extend(bot.config.SpiceBot_Commands.query_prefix) bot.config.core.prefix_list.extend(bot.config.SpiceBot_Commands.query_prefix)
@ -98,17 +98,17 @@ def setup_google(bot):
def setup_startupmonologue(bot): def setup_startupmonologue(bot):
logs.log('SpiceBot_StartupMonologue', "Initial Setup processing") logs.log('SpiceBot_StartupMonologue', "Initial Setup processing")
events.startup_add([ botevents.startup_add([
events.BOT_STARTUPMONOLOGUE_CONNECTED, botevents.BOT_STARTUPMONOLOGUE_CONNECTED,
events.BOT_STARTUPMONOLOGUE_CHANNELS, botevents.BOT_STARTUPMONOLOGUE_CHANNELS,
events.BOT_STARTUPMONOLOGUE_COMMANDS, botevents.BOT_STARTUPMONOLOGUE_COMMANDS,
events.BOT_STARTUPMONOLOGUE_AI, botevents.BOT_STARTUPMONOLOGUE_AI,
]) ])
def setup_channels(bot): def setup_channels(bot):
logs.log('SpiceBot_Channels', "Setting Up Configuration") logs.log('SpiceBot_Channels', "Setting Up Configuration")
events.startup_add([events.BOT_CHANNELS]) botevents.startup_add([botevents.BOT_CHANNELS])
bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False) bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False)
@ -122,7 +122,7 @@ def setup_ai(bot):
logs.log('SpiceBot_AI', "Setting Up Configuration") logs.log('SpiceBot_AI', "Setting Up Configuration")
bot.config.define_section("SpiceBot_AI", SpiceBot_AI_MainSection, validate=False) bot.config.define_section("SpiceBot_AI", SpiceBot_AI_MainSection, validate=False)
bot.config.aibrain = os.path.join(bot.config.homedir, bot.config.core.basename + '.aibrain.brn') bot.config.aibrain = os.path.join(bot.config.homedir, bot.config.core.basename + '.aibrain.brn')
events.startup_add([events.BOT_AI]) botevents.startup_add([botevents.BOT_AI])
def setup_osd(bot): def setup_osd(bot):

View File

@ -9,7 +9,6 @@ import sopel_modules.SpiceBot as SpiceBot
import spicemanip import spicemanip
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('ai') @sopel.module.nickname_commands('ai')
def ai_trigger(bot, trigger, botcom): def ai_trigger(bot, trigger, botcom):

View File

@ -9,14 +9,12 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('owners', 'owner') @sopel.module.nickname_commands('owners', 'owner')
def bot_command_owners(bot, trigger, botcom): def bot_command_owners(bot, trigger, botcom):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('admins', 'admin') @sopel.module.nickname_commands('admins', 'admin')
def bot_command_admins(bot, trigger, botcom): def bot_command_admins(bot, trigger, botcom):

View File

@ -10,7 +10,6 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('channels', 'channel') @sopel.module.nickname_commands('channels', 'channel')
def nickname_comand_channels(bot, trigger, botcom): def nickname_comand_channels(bot, trigger, botcom):

View File

@ -14,7 +14,6 @@ import sopel_modules.SpiceBot as SpiceBot
# TODO commands sent in privmsg don't need bot.nick # TODO commands sent in privmsg don't need bot.nick
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('commands', 'command') @sopel.module.nickname_commands('commands', 'command')
def nickname_comand_commands(bot, trigger, botcom): def nickname_comand_commands(bot, trigger, botcom):

View File

@ -12,15 +12,12 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('query') @sopel.module.nickname_commands('query')
def query_trigger(bot, trigger, botcom): def query_trigger(bot, trigger, botcom):
bot.osd("I have been programmed to help find new commands by using `?`.") bot.osd("I have been programmed to help find new commands by using `?`.")
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun_query('nickname', 'nickname') @SpiceBot.prerun_query('nickname', 'nickname')
@sopel.module.nickname_commands('(.*)') @sopel.module.nickname_commands('(.*)')
def query_detection_nick(bot, trigger, botcom): def query_detection_nick(bot, trigger, botcom):
@ -86,7 +83,6 @@ def query_detection_nick(bot, trigger, botcom):
bot.osd("The following " + bot.nick + " commands start with " + str(trigger.sb['com']) + ": " + spicemanip.main(commandlist, 'andlist') + ".", trigger.nick, 'notice') bot.osd("The following " + bot.nick + " commands start with " + str(trigger.sb['com']) + ": " + spicemanip.main(commandlist, 'andlist') + ".", trigger.nick, 'notice')
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun_query('module', 'module') @SpiceBot.prerun_query('module', 'module')
@sopel.module.rule('^\?(.*)') @sopel.module.rule('^\?(.*)')
def query_detection(bot, trigger, botcom): def query_detection(bot, trigger, botcom):

View File

@ -10,7 +10,7 @@ import sopel.module
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED]) @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('database') @sopel.module.nickname_commands('database')
def bot_command_database(bot, trigger): def bot_command_database(bot, trigger):
bot.osd("Database is " + SpiceBot.config.db_type) bot.osd("Database is " + SpiceBot.config.db_type)

View File

@ -15,7 +15,6 @@ from word2number import w2n
from random import randint from random import randint
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module', 'dictcom') @SpiceBot.prerun('module', 'dictcom')
@sopel.module.commands('(.*)') @sopel.module.commands('(.*)')
def command_dictcom(bot, trigger, botcom): def command_dictcom(bot, trigger, botcom):

View File

@ -7,7 +7,7 @@ import sopel.module
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED]) @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('help', 'docs', 'wiki') @sopel.module.nickname_commands('help', 'docs', 'wiki')
def bot_command_docs(bot, trigger): def bot_command_docs(bot, trigger):
sb_git_url = str( sb_git_url = str(

View File

@ -11,7 +11,6 @@ import spicemanip
# TODO custom gif shortcut commands # TODO custom gif shortcut commands
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands('gif') @sopel.module.commands('gif')
def gif_trigger(bot, trigger, botcom): def gif_trigger(bot, trigger, botcom):

View File

@ -12,7 +12,6 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOGS])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('logs', 'debug') @sopel.module.nickname_commands('logs', 'debug')
def bot_command_logs(bot, trigger, botcom): def bot_command_logs(bot, trigger, botcom):

View File

@ -9,21 +9,18 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('action') @sopel.module.nickname_commands('action')
def bot_command_action(bot, trigger, botcom): def bot_command_action(bot, trigger, botcom):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('notice') @sopel.module.nickname_commands('notice')
def bot_command_notice(bot, trigger, botcom): def bot_command_notice(bot, trigger, botcom):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('privmsg', 'say', 'msg') @sopel.module.nickname_commands('privmsg', 'say', 'msg')
def bot_command_privmsg(bot, trigger, botcom): def bot_command_privmsg(bot, trigger, botcom):

View File

@ -9,7 +9,6 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('update') @sopel.module.nickname_commands('update')
def nickname_comand_update(bot, trigger, botcom): def nickname_comand_update(bot, trigger, botcom):
@ -42,7 +41,6 @@ def nickname_comand_update(bot, trigger, botcom):
SpiceBot.spicebot_reload(bot, 'SpiceBot_Update', quitmessage) SpiceBot.spicebot_reload(bot, 'SpiceBot_Update', quitmessage)
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('restart') @sopel.module.nickname_commands('restart')
def nickname_comand_restart(bot, trigger, botcom): def nickname_comand_restart(bot, trigger, botcom):

View File

@ -10,7 +10,6 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands('search', 'find', 'google', 'lookup') @sopel.module.commands('search', 'find', 'google', 'lookup')
def search_main(bot, trigger, botcom): def search_main(bot, trigger, botcom):
@ -27,7 +26,6 @@ def search_main(bot, trigger, botcom):
bot.osd(["[Information search for '" + str(searchterm) + "']", str(searchreturn)]) bot.osd(["[Information search for '" + str(searchterm) + "']", str(searchreturn)])
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands("where", "whereis") @sopel.module.commands("where", "whereis")
def search_where(bot, trigger, botcom): def search_where(bot, trigger, botcom):
@ -44,7 +42,6 @@ def search_where(bot, trigger, botcom):
bot.osd(["[Location search for " + str(searchterm) + "]", str(searchreturn)]) bot.osd(["[Location search for " + str(searchterm) + "]", str(searchreturn)])
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands("what", "whatis") @sopel.module.commands("what", "whatis")
def search_what(bot, trigger, botcom): def search_what(bot, trigger, botcom):

View File

@ -9,7 +9,6 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands('sherlock', 'username') @sopel.module.commands('sherlock', 'username')
def bot_command_sherlock(bot, trigger, botcom): def bot_command_sherlock(bot, trigger, botcom):

View File

@ -9,7 +9,6 @@ import time
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('uptime') @sopel.module.nickname_commands('uptime')
def bot_command_uptime(bot, trigger, botcom): def bot_command_uptime(bot, trigger, botcom):

View File

@ -8,7 +8,6 @@ import sopel
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_LOADED])
@SpiceBot.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('users', 'user') @sopel.module.nickname_commands('users', 'user')
def nickname_comand_users(bot, trigger, botcom): def nickname_comand_users(bot, trigger, botcom):