test not as class

This commit is contained in:
deathbybandaid 2019-06-24 12:09:58 -04:00
parent 1e4d1ce4e1
commit 56b6eec19b
12 changed files with 172 additions and 173 deletions

View File

@ -16,20 +16,14 @@ from .Commands import commands as botcommands
from .Database import db as botdb from .Database import db as botdb
class BotPrerun(): def prerun(trigger_command_type='module'):
def __init__(self):
self.dict = {}
"""Command Splitting"""
def prerun(self, trigger_command_type='module'):
def actual_decorator(function): def actual_decorator(function):
@functools.wraps(function) @functools.wraps(function)
def internal_prerun(bot, trigger, *args, **kwargs): def internal_prerun(bot, trigger, *args, **kwargs):
# Primary command used for trigger, and a list of all words # Primary command used for trigger, and a list of all words
trigger_args, trigger_command = self.trigger_args(trigger.args[1], trigger_command_type) trigger_args, trigger_command = make_trigger_args(trigger.args[1], trigger_command_type)
# Argsdict Defaults # Argsdict Defaults
argsdict_default = {} argsdict_default = {}
@ -40,38 +34,39 @@ class BotPrerun():
argsdict_default["realcom"] = realcom argsdict_default["realcom"] = realcom
# split into && groupings # split into && groupings
# and_split = self.trigger_and_split(trigger_args) # and_split = trigger_and_split(trigger_args)
# Create dict listings for trigger.sb # Create dict listings for trigger.sb
# argsdict_list = self.trigger_argsdict_list(argsdict_default, and_split) # argsdict_list = trigger_argsdict_list(argsdict_default, and_split)
argsdict = self.trigger_argsdict_single(argsdict_default, trigger_args) argsdict = trigger_argsdict_single(argsdict_default, trigger_args)
trigger.sb = copy.deepcopy(argsdict) trigger.sb = copy.deepcopy(argsdict)
trigger.sb["args"], trigger.sb["hyphen_arg"] = self.trigger_hyphen_args(trigger.sb["args"]) trigger.sb["args"], trigger.sb["hyphen_arg"] = trigger_hyphen_args(trigger.sb["args"])
if not trigger.sb["hyphen_arg"]: if not trigger.sb["hyphen_arg"]:
# check if anything prohibits the nick from running the command # check if anything prohibits the nick from running the command
if self.trigger_runstatus(bot, trigger): if trigger_runstatus(bot, trigger):
return function(bot, trigger, *args, **kwargs) return function(bot, trigger, *args, **kwargs)
else: else:
return self.trigger_hyphen_arg_handler(bot, trigger) return trigger_hyphen_arg_handler(bot, trigger)
"""# Run the function for all splits """# Run the function for all splits
for argsdict in argsdict_list: for argsdict in argsdict_list:
trigger.sb = copy.deepcopy(argsdict) trigger.sb = copy.deepcopy(argsdict)
trigger.sb["args"], trigger.sb["hyphen_arg"] = self.trigger_hyphen_args(trigger.sb["args"]) trigger.sb["args"], trigger.sb["hyphen_arg"] = trigger_hyphen_args(trigger.sb["args"])
if not trigger.sb["hyphen_arg"]: if not trigger.sb["hyphen_arg"]:
# check if anything prohibits the nick from running the command # check if anything prohibits the nick from running the command
if self.trigger_runstatus(bot, trigger): if trigger_runstatus(bot, trigger):
function(bot, trigger, *args, **kwargs) function(bot, trigger, *args, **kwargs)
else: else:
self.trigger_hyphen_arg_handler(bot, trigger) trigger_hyphen_arg_handler(bot, trigger)
""" """
return internal_prerun return internal_prerun
return actual_decorator return actual_decorator
def trigger_args(self, triggerargs_one, trigger_command_type='module'):
def make_trigger_args(triggerargs_one, trigger_command_type='module'):
trigger_args = spicemanip.main(triggerargs_one, 'create') trigger_args = spicemanip.main(triggerargs_one, 'create')
if trigger_command_type in ['nickname']: if trigger_command_type in ['nickname']:
trigger_command = spicemanip.main(trigger_args, 2).lower() trigger_command = spicemanip.main(trigger_args, 2).lower()
@ -81,13 +76,15 @@ class BotPrerun():
trigger_args = spicemanip.main(trigger_args, '2+', 'list') trigger_args = spicemanip.main(trigger_args, '2+', 'list')
return trigger_args, trigger_command return trigger_args, trigger_command
def trigger_and_split(self, trigger_args):
def trigger_and_split(trigger_args):
trigger_args_list_split = spicemanip.main(trigger_args, "split_&&") trigger_args_list_split = spicemanip.main(trigger_args, "split_&&")
if not len(trigger_args_list_split): if not len(trigger_args_list_split):
trigger_args_list_split.append([]) trigger_args_list_split.append([])
return trigger_args_list_split return trigger_args_list_split
def trigger_argsdict_list(self, argsdict_default, and_split):
def trigger_argsdict_list(argsdict_default, and_split):
prerun_split = [] prerun_split = []
for trigger_args_part in and_split: for trigger_args_part in and_split:
argsdict_part = copy.deepcopy(argsdict_default) argsdict_part = copy.deepcopy(argsdict_default)
@ -100,7 +97,8 @@ class BotPrerun():
prerun_split.append(argsdict_part) prerun_split.append(argsdict_part)
return prerun_split return prerun_split
def trigger_argsdict_single(self, argsdict_default, trigger_args_part):
def trigger_argsdict_single(argsdict_default, trigger_args_part):
argsdict_part = copy.deepcopy(argsdict_default) argsdict_part = copy.deepcopy(argsdict_default)
argsdict_part["args"] = spicemanip.main(trigger_args_part, 'create') argsdict_part["args"] = spicemanip.main(trigger_args_part, 'create')
if len(argsdict_part["args"]) and argsdict_part["args"][0] == "-a": if len(argsdict_part["args"]) and argsdict_part["args"][0] == "-a":
@ -110,7 +108,8 @@ class BotPrerun():
argsdict_part["adminswitch"] = False argsdict_part["adminswitch"] = False
return argsdict_part return argsdict_part
def trigger_runstatus(self, bot, trigger):
def trigger_runstatus(bot, trigger):
# Bots can't run commands # Bots can't run commands
if Identifier(trigger.nick) == bot.nick: if Identifier(trigger.nick) == bot.nick:
@ -136,18 +135,20 @@ class BotPrerun():
timestamp = disabled_list[trigger.sb["realcom"]]["timestamp"] timestamp = disabled_list[trigger.sb["realcom"]]["timestamp"]
bywhom = disabled_list[trigger.sb["realcom"]]["disabledby"] bywhom = disabled_list[trigger.sb["realcom"]]["disabledby"]
message = "The " + str(trigger.sb["com"]) + " command was disabled by " + bywhom + " in " + str(trigger.sender) + " at " + str(timestamp) + " for the following reason: " + str(reason) message = "The " + str(trigger.sb["com"]) + " command was disabled by " + bywhom + " in " + str(trigger.sender) + " at " + str(timestamp) + " for the following reason: " + str(reason)
return self.trigger_cant_run(bot, trigger, message) return trigger_cant_run(bot, trigger, message)
return True return True
def trigger_cant_run(self, bot, trigger, message=None):
def trigger_cant_run(bot, trigger, message=None):
if message: if message:
bot.osd(message, trigger.nick, 'notice') bot.osd(message, trigger.nick, 'notice')
if command_permissions_check(bot, trigger, ['admins', 'owner', 'OP', 'ADMIN', 'OWNER']): if command_permissions_check(bot, trigger, ['admins', 'owner', 'OP', 'ADMIN', 'OWNER']):
bot.osd("You however are authorized to bypass this warning with the (-a) admin switch.", trigger.nick, 'notice') bot.osd("You however are authorized to bypass this warning with the (-a) admin switch.", trigger.nick, 'notice')
return False return False
def trigger_hyphen_args(self, trigger_args_part):
def trigger_hyphen_args(trigger_args_part):
valid_hyphen_args = [ valid_hyphen_args = [
'check', 'check',
'enable', 'disable' 'enable', 'disable'
@ -165,7 +166,8 @@ class BotPrerun():
hyphenarg = None hyphenarg = None
return trigger_args_unhyphend, hyphenarg return trigger_args_unhyphend, hyphenarg
def trigger_hyphen_arg_handler(self, bot, trigger):
def trigger_hyphen_arg_handler(bot, trigger):
# Commands that cannot run via privmsg # Commands that cannot run via privmsg
if trigger.sb["hyphen_arg"] in ['check']: if trigger.sb["hyphen_arg"] in ['check']:
@ -215,6 +217,3 @@ class BotPrerun():
return return
return return
prerun = BotPrerun()

View File

@ -9,13 +9,13 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('owners', 'owner') @sopel.module.nickname_commands('owners', 'owner')
def bot_command_owners(bot, trigger): def bot_command_owners(bot, trigger):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('admins', 'admin') @sopel.module.nickname_commands('admins', 'admin')
def bot_command_admins(bot, trigger): def bot_command_admins(bot, trigger):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)

View File

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

View File

@ -15,7 +15,7 @@ import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS]) @SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('commands', 'command') @sopel.module.nickname_commands('commands', 'command')
def nickname_comand_commands(bot, trigger): def nickname_comand_commands(bot, trigger):

View File

@ -13,7 +13,7 @@ import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS]) @SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('(.*)') @sopel.module.nickname_commands('(.*)')
def query_detection_nick(bot, trigger): def query_detection_nick(bot, trigger):
@ -79,7 +79,7 @@ def query_detection_nick(bot, trigger):
@SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS]) @SpiceBot.events.check_ready([SpiceBot.events.BOT_COMMANDS])
@SpiceBot.prerun.prerun('query') @SpiceBot.prerun('query')
@sopel.module.rule('^\?(.*)') @sopel.module.rule('^\?(.*)')
def query_detection(bot, trigger): def query_detection(bot, trigger):

View File

@ -10,7 +10,7 @@ import sopel.module
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.prerun.prerun('prefix') @SpiceBot.prerun('prefix')
@sopel.module.commands('(.*)') @sopel.module.commands('(.*)')
def command_dictcom(bot, trigger): def command_dictcom(bot, trigger):

View File

@ -11,7 +11,7 @@ import spicemanip
# TODO custom gif shortcut commands # TODO custom gif shortcut commands
@SpiceBot.prerun.prerun('gif_prefix') @SpiceBot.prerun('gif_prefix')
@sopel.module.commands('gif') @sopel.module.commands('gif')
def gif_trigger(bot, trigger): def gif_trigger(bot, trigger):
@ -30,7 +30,7 @@ def gif_trigger(bot, trigger):
bot.osd(str(gifdict['gifapi'].title() + " Result (" + str(query) + " #" + str(gifdict["returnnum"]) + "): " + str(gifdict["returnurl"]))) bot.osd(str(gifdict['gifapi'].title() + " Result (" + str(query) + " #" + str(gifdict["returnnum"]) + "): " + str(gifdict["returnurl"])))
@SpiceBot.prerun.prerun('gif_prefix') @SpiceBot.prerun('gif_prefix')
@sopel.module.commands('(.*)') @sopel.module.commands('(.*)')
def gifapi_triggers(bot, trigger): def gifapi_triggers(bot, trigger):

View File

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

View File

@ -9,19 +9,19 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('action') @sopel.module.nickname_commands('action')
def bot_command_action(bot, trigger): def bot_command_action(bot, trigger):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('notice') @sopel.module.nickname_commands('notice')
def bot_command_notice(bot, trigger): def bot_command_notice(bot, trigger):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)
@SpiceBot.prerun.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): def bot_command_privmsg(bot, trigger):
bot_command_process(bot, trigger) bot_command_process(bot, trigger)

View File

@ -9,7 +9,7 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.prerun.prerun('nickname') @SpiceBot.prerun('nickname')
@sopel.module.nickname_commands('update') @sopel.module.nickname_commands('update')
def nickname_comand_update(bot, trigger): def nickname_comand_update(bot, trigger):

View File

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

View File

@ -9,7 +9,7 @@ import spicemanip
import sopel_modules.SpiceBot as SpiceBot import sopel_modules.SpiceBot as SpiceBot
@SpiceBot.prerun.prerun('module') @SpiceBot.prerun('module')
@sopel.module.commands('sherlock', 'username') @sopel.module.commands('sherlock', 'username')
def bot_command_sherlock(bot, trigger): def bot_command_sherlock(bot, trigger):