test
This commit is contained in:
parent
6d4e59f589
commit
0e84e4ced4
@ -4,6 +4,7 @@ import re
|
|||||||
from sopel.trigger import Trigger
|
from sopel.trigger import Trigger
|
||||||
|
|
||||||
from sopel_SpiceBot_Core_1 import sb
|
from sopel_SpiceBot_Core_1 import sb
|
||||||
|
from .comrun import ComRun
|
||||||
|
|
||||||
|
|
||||||
def prerun(metadata={}):
|
def prerun(metadata={}):
|
||||||
|
|||||||
144
sopel_SpiceBot_Core_Prerun/comrun.py
Normal file
144
sopel_SpiceBot_Core_Prerun/comrun.py
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
|
||||||
|
|
||||||
|
from sopel_SpiceBot_Core_1 import sb
|
||||||
|
|
||||||
|
|
||||||
|
class ComRun():
|
||||||
|
|
||||||
|
def __init__(self, bot, trigger, function, metadata):
|
||||||
|
self.bot = bot
|
||||||
|
self.orig_trigger = trigger
|
||||||
|
self.trigger = trigger
|
||||||
|
self.function = function
|
||||||
|
self.metadata = metadata
|
||||||
|
self._say = []
|
||||||
|
|
||||||
|
@property
|
||||||
|
def instigator(self):
|
||||||
|
return self.trigger.nick
|
||||||
|
|
||||||
|
@property
|
||||||
|
def channel(self):
|
||||||
|
return self.trigger.sender
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_in_channel(self):
|
||||||
|
return self.channel.startswith("#")
|
||||||
|
|
||||||
|
def say(self, message):
|
||||||
|
self._say.append(message)
|
||||||
|
|
||||||
|
def osd(self, messages, recipients=None, text_method='PRIVMSG', max_messages=-1):
|
||||||
|
if not recipients:
|
||||||
|
recipients = self.trigger.sender
|
||||||
|
sb.osd(messages, recipients, text_method, max_messages=-1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def required_privileges(self):
|
||||||
|
bot_level = 0
|
||||||
|
channel_level = 0
|
||||||
|
|
||||||
|
if "required_privileges" in list(self.metadata.keys()):
|
||||||
|
if "bot_level" in list(self.metadata["required_privileges"].keys()):
|
||||||
|
bot_level = self.metadata["required_privileges"]["bot_level"]
|
||||||
|
if "channel_level" in list(self.metadata["required_privileges"].keys()):
|
||||||
|
channel_level = self.metadata["required_privileges"]["channel_level"]
|
||||||
|
|
||||||
|
return {
|
||||||
|
"bot": bot_level,
|
||||||
|
"channel": channel_level
|
||||||
|
}
|
||||||
|
|
||||||
|
@property()
|
||||||
|
def required_privileges_text(self):
|
||||||
|
ret_text = "This command requries privileges of/above the following"
|
||||||
|
if self.required_privileges["bot"]:
|
||||||
|
ret_text += " Bot: %s" % sb.users.get_bot_privilege_name(self.required_privileges["bot"])
|
||||||
|
if self.required_privileges["channel"] and self.is_in_channel:
|
||||||
|
ret_text += " or "
|
||||||
|
ret_text += "Channel: %s" % sb.users.get_channel_privilege_name(self.required_privileges["channel"])
|
||||||
|
ret_text += "."
|
||||||
|
return ret_text
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_nick_privileged(self):
|
||||||
|
has_bot_priv = True
|
||||||
|
has_channel_priv = True
|
||||||
|
|
||||||
|
priv_dict = self.required_privileges()
|
||||||
|
|
||||||
|
has_bot_priv = sb.users.has_bot_privilege(self.trigger.nick, priv_dict["bot"])
|
||||||
|
|
||||||
|
if self.is_in_channel:
|
||||||
|
has_channel_priv = sb.users.has_channel_privilege(self.trigger.nick, self.trigger.sender, priv_dict["channel"])
|
||||||
|
|
||||||
|
if has_bot_priv or has_channel_priv:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def author(self):
|
||||||
|
author = "deathbybandaid"
|
||||||
|
if "author" in list(self.metadata.keys()):
|
||||||
|
author = self.metadata["author"]
|
||||||
|
return author
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_real_command(self):
|
||||||
|
return sb.commands.is_real_command(self.command)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def command_type(self):
|
||||||
|
return sb.commands.what_command_type(self.trigger)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_catchall(self):
|
||||||
|
return sb.commands.is_catchall(self.function, self.command_type)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_multi_command(self):
|
||||||
|
if sb.commands.multi_split_key in self.orig_trigger.args[1]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_pipe_command(self):
|
||||||
|
if sb.commands.pipe_split_key in self.orig_trigger.args[1]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def multi_split_count(self):
|
||||||
|
if self.is_multi_command:
|
||||||
|
return len([x.strip() for x in self.orig_trigger.args[1].split(sb.commands.multi_split_key)])
|
||||||
|
return "N/A"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pipe_split_count(self):
|
||||||
|
if self.is_pipe_command:
|
||||||
|
return len([x.strip() for x in self.orig_trigger.args[1].split(sb.commands.pipe_split_key)])
|
||||||
|
return "N/A"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def commands(self):
|
||||||
|
if self.is_multi_command:
|
||||||
|
return sb.commands.get_commands_split(self.orig_trigger, sb.commands.multi_split_key)
|
||||||
|
elif self.is_pipe_command:
|
||||||
|
return sb.commands.get_commands_split(self.orig_trigger, sb.commands.pipe_split_key)
|
||||||
|
else:
|
||||||
|
return sb.commands.get_commands_nosplit(self.orig_trigger)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def command(self):
|
||||||
|
return self.commands[0]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_command_been_sanitized(self):
|
||||||
|
trigger_command = sb.commands.get_command_from_trigger(self.orig_trigger)
|
||||||
|
if trigger_command != self.command["trigger_command"]:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def re_match(self):
|
||||||
|
return self.trigger.match
|
||||||
Loading…
Reference in New Issue
Block a user