This commit is contained in:
deathbybandaid 2023-01-24 10:26:15 -05:00
parent 6de64a260b
commit 2d85874c0e
5 changed files with 39 additions and 41 deletions

View File

@ -48,7 +48,7 @@ class SpiceBotCore_OBJ():
self.logger.info("SpiceBot Commands Interface Setup Complete.") self.logger.info("SpiceBot Commands Interface Setup Complete.")
# SpiceBots access to Sopel Command listing # SpiceBots access to Sopel Command listing
self.users = Users(self.config, self.bot) self.users = Users(self.bot)
self.logger.info("SpiceBot Users Interface Setup Complete.") self.logger.info("SpiceBot Users Interface Setup Complete.")
def setup(self, bot): def setup(self, bot):
@ -56,8 +56,6 @@ class SpiceBotCore_OBJ():
# store an access interface to sopel.bot # store an access interface to sopel.bot
self.bot = bot self.bot = bot
self.commands.bot = bot
self.users.bot = bot
# Re-initialize the bot config properly during plugin setup routine # Re-initialize the bot config properly during plugin setup routine
self.config.config = bot.config self.config.config = bot.config

View File

@ -6,7 +6,7 @@ import os
from sopel.cli.run import build_parser, get_configuration from sopel.cli.run import build_parser, get_configuration
from sopel.config.types import StaticSection, ValidatedAttribute # from sopel.config.types import StaticSection, ValidatedAttribute
class Config(): class Config():
@ -47,8 +47,8 @@ class Config():
return None return None
class SpiceBot_Conf(StaticSection): # class SpiceBot_Conf(StaticSection):
multi_split_key = ValidatedAttribute('multi_split_key', default="&&") # multi_split_key = ValidatedAttribute('multi_split_key', default="&&")
pipe_split_key = ValidatedAttribute('pipe_split_key', default="|") # pipe_split_key = ValidatedAttribute('pipe_split_key', default="|")
query_command_key = ValidatedAttribute('query_command_key', default="?") # query_command_key = ValidatedAttribute('query_command_key', default="?")

View File

@ -1,12 +1,12 @@
from sopel.privileges import VOICE, HALFOP, OP, ADMIN, OWNER, OPER
from sopel import plugin
class Users(): class Users():
def __init__(self, config, bot): def __init__(self, bot):
self.bot = None self.bot = None
self.config = config
self.bot_priv_dict = { self.bot_priv_dict = {
"OWNER": 10, "OWNER": 10,
@ -14,12 +14,12 @@ class Users():
} }
self.channel_privilege_dict = { self.channel_privilege_dict = {
"OPER": OPER, "OPER": plugin.OPER,
"OWNER": OWNER, "OWNER": plugin.OWNER,
"ADMIN": ADMIN, "ADMIN": plugin.ADMIN,
"OP": OP, "OP": plugin.OP,
"HALFOP": HALFOP, "HALFOP": plugin.HALFOP,
"VOICE": VOICE, "VOICE": plugin.VOICE,
} }
"""Bot Priviledges""" """Bot Priviledges"""
@ -51,7 +51,7 @@ class Users():
"""Bot Owner""" """Bot Owner"""
def list_bot_owner(self): def list_bot_owner(self):
list_owner = self.config.owner list_owner = self.bot.config.owner
if not isinstance(list_owner, list): if not isinstance(list_owner, list):
list_owner = [list_owner] list_owner = [list_owner]
return list_owner return list_owner
@ -64,7 +64,7 @@ class Users():
"""Bot Admins""" """Bot Admins"""
def list_bot_admin(self): def list_bot_admin(self):
list_admins = self.config.admins list_admins = self.bot.config.admins
if not isinstance(list_admins, list): if not isinstance(list_admins, list):
list_admins = [list_admins] list_admins = [list_admins]
return list_admins return list_admins
@ -98,23 +98,23 @@ class Users():
if not isinstance(privilege, int): if not isinstance(privilege, int):
if privilege.upper() == "OPER": if privilege.upper() == "OPER":
privilege = self.channel_privilege_dict["OPER"] privilege = plugin.OPER
elif privilege.upper() == "OWNER": elif privilege.upper() == "OWNER":
privilege = self.channel_privilege_dict["OWNER"] privilege = plugin.OWNER
elif privilege == "ADMIN": elif privilege == "ADMIN":
privilege = self.channel_privilege_dict["ADMIN"] privilege = plugin.ADMIN
elif privilege.upper() == "OP": elif privilege.upper() == "OP":
privilege = self.channel_privilege_dict["OP"] privilege = plugin.OP
elif privilege.upper() in ["HALFOP", "HOP"]: elif privilege.upper() in ["HALFOP", "HOP"]:
privilege = self.channel_privilege_dict["HALFOP"] privilege = plugin.HALFOP
elif privilege.upper() == "VOICE": elif privilege.upper() == "VOICE":
privilege = self.channel_privilege_dict["VOICE"] privilege = plugin.VOICE
else: else:
return False return False
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
if nick in [nick for nick in list(channel.users.items()) if channel.has_privileges(nick, privilege)]: if nick in [user for nick, user in channel.users if channel.has_privileges(nick, privilege)]:
return True return True
return False return False
@ -122,7 +122,7 @@ class Users():
def list_channel_users_oper(self, channelstr): def list_channel_users_oper(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_oper(nick, self.channel_privilege_dict["OPER"])] return [user for nick, user in channel.users if channel.is_oper(nick, plugin.OPER)]
def is_channel_oper(self, channelstr, user): def is_channel_oper(self, channelstr, user):
if user in self.list_channel_users_oper(channelstr): if user in self.list_channel_users_oper(channelstr):
@ -133,7 +133,7 @@ class Users():
def list_channel_users_owner(self, channelstr): def list_channel_users_owner(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_owner(nick, self.channel_privilege_dict["OWNER"])] return [user for nick, user in channel.users if channel.is_owner(nick, plugin.OWNER)]
def is_channel_owner(self, channelstr, user): def is_channel_owner(self, channelstr, user):
if user in self.list_channel_users_owner(channelstr): if user in self.list_channel_users_owner(channelstr):
@ -144,7 +144,7 @@ class Users():
def list_channel_users_admin(self, channelstr): def list_channel_users_admin(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_admin(nick, self.channel_privilege_dict["ADMIN"])] return [user for nick, user in channel.users if channel.is_admin(nick, plugin.ADMIN)]
def is_channel_admin(self, channelstr, user): def is_channel_admin(self, channelstr, user):
if user in self.list_channel_users_admin(channelstr): if user in self.list_channel_users_admin(channelstr):
@ -155,7 +155,7 @@ class Users():
def list_channel_users_op(self, channelstr): def list_channel_users_op(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_op(nick, self.channel_privilege_dict["OP"])] return [user for nick, user in channel.users if channel.is_op(nick, plugin.OP)]
def is_channel_op(self, channelstr, user): def is_channel_op(self, channelstr, user):
if user in self.list_channel_users_op(channelstr): if user in self.list_channel_users_op(channelstr):
@ -166,7 +166,7 @@ class Users():
def list_channel_users_halfop(self, channelstr): def list_channel_users_halfop(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_halfop(nick, self.channel_privilege_dict["HALFOP"])] return [user for nick, user in channel.users if channel.is_halfop(nick, plugin.HALFOP)]
def is_channel_halfop(self, channelstr, user): def is_channel_halfop(self, channelstr, user):
if user in self.list_channel_users_halfop(channelstr): if user in self.list_channel_users_halfop(channelstr):
@ -177,7 +177,7 @@ class Users():
def list_channel_users_voice(self, channelstr): def list_channel_users_voice(self, channelstr):
channel = self.bot.channels[channelstr] channel = self.bot.channels[channelstr]
return [user for nick, user in channel.users if channel.is_voice(nick, self.channel_privilege_dict["VOICE"])] return [user for nick, user in channel.users if channel.is_voice(nick, plugin.VOICE)]
def is_channel_voice(self, channelstr, user): def is_channel_voice(self, channelstr, user):
if user in self.list_channel_users_voice(channelstr): if user in self.list_channel_users_voice(channelstr):

View File

@ -8,18 +8,18 @@ import os
import pathlib import pathlib
from .SBCore import SpiceBotCore_OBJ from .SBCore import SpiceBotCore_OBJ
from .SBCore.config import SpiceBot_Conf #from .SBCore.config import SpiceBot_Conf
SCRIPT_DIR = pathlib.Path(os.path.dirname(os.path.abspath(__file__))) SCRIPT_DIR = pathlib.Path(os.path.dirname(os.path.abspath(__file__)))
sb = SpiceBotCore_OBJ(SCRIPT_DIR) sb = SpiceBotCore_OBJ(SCRIPT_DIR)
def configure(config): # def configure(config):
config.define_section("spiceBot", SpiceBot_Conf, validate=False) # config.define_section("spiceBot", SpiceBot_Conf, validate=False)
config.SpiceBot_Conf.configure_setting('multi_split_key', 'key to split multi-commands') # config.SpiceBot_Conf.configure_setting('multi_split_key', 'key to split multi-commands')
config.SpiceBot_Conf.configure_setting('pipe_split_key', 'key to split multi-commands') # config.SpiceBot_Conf.configure_setting('pipe_split_key', 'key to split multi-commands')
config.SpiceBot_Conf.configure_setting('query_command_key', 'key to split multi-commands') # config.SpiceBot_Conf.configure_setting('query_command_key', 'key to split multi-commands')
def setup(bot): def setup(bot):

View File

@ -176,7 +176,7 @@ class ComRun():
recipients = self.trigger.sender recipients = self.trigger.sender
sb.osd(messages, recipients, text_method, max_messages=-1) sb.osd(messages, recipients, text_method, max_messages=-1)
# @property @property
def required_privileges(self): def required_privileges(self):
bot_level = 0 bot_level = 0
channel_level = 0 channel_level = 0
@ -192,7 +192,7 @@ class ComRun():
"channel": channel_level "channel": channel_level
} }
# @property() @property()
def required_privileges_text(self): def required_privileges_text(self):
ret_text = "This command requries privileges of/above the following" ret_text = "This command requries privileges of/above the following"
if self.required_privileges["bot"]: if self.required_privileges["bot"]:
@ -203,7 +203,7 @@ class ComRun():
ret_text += "." ret_text += "."
return ret_text return ret_text
# @property @property
def is_nick_privileged(self): def is_nick_privileged(self):
has_bot_priv = True has_bot_priv = True
has_channel_priv = True has_channel_priv = True