Compare commits

..

2 Commits

Author SHA1 Message Date
1a8f84b333
feat: reload when SIGUSR1 is received 2025-06-08 13:11:50 -04:00
94bdb91eb0
feat: add trusted user list 2025-06-08 13:11:50 -04:00
3 changed files with 20 additions and 11 deletions

View File

@ -8,7 +8,7 @@ import audio
import commands import commands
import utils import utils
from constants import EMBED_COLOR from constants import EMBED_COLOR
from state import client, players from state import client, players, trusted_users
from .playback import resume from .playback import resume
from .utils import command_allowed, ensure_joined, play_next from .utils import command_allowed, ensure_joined, play_next
@ -147,6 +147,7 @@ async def queue_or_play(message, edited=False):
) )
>= 5 >= 5
and not len(message.guild.voice_client.channel.members) == 2 and not len(message.guild.voice_client.channel.members) == 2
and message.author.id not in trusted_users
): ):
await utils.reply( await utils.reply(
message, message,

27
core.py
View File

@ -3,6 +3,7 @@ import contextlib
import importlib import importlib
import inspect import inspect
import io import io
import signal
import textwrap import textwrap
import time import time
import traceback import traceback
@ -59,17 +60,8 @@ async def on_message(message, edited=False):
match matched: match matched:
case C.RELOAD if message.author.id in OWNERS: case C.RELOAD if message.author.id in OWNERS:
reloaded_modules = set()
start = time.time() start = time.time()
reloaded_modules = reload()
rreload(reloaded_modules, __import__("core"))
rreload(reloaded_modules, __import__("extra"))
for module in filter(
lambda v: inspect.ismodule(v) and v.__name__ in RELOADABLE_MODULES,
globals().values(),
):
rreload(reloaded_modules, module)
end = time.time() end = time.time()
debug( debug(
f"reloaded {len(reloaded_modules)} modules in {round(end - start, 2)}s", f"reloaded {len(reloaded_modules)} modules in {round(end - start, 2)}s",
@ -186,3 +178,18 @@ def rreload(reloaded_modules, module):
if "__reload_module__" in dir(module): if "__reload_module__" in dir(module):
module.__reload_module__() module.__reload_module__()
def reload(*_):
reloaded_modules = set()
rreload(reloaded_modules, __import__("core"))
rreload(reloaded_modules, __import__("extra"))
for module in filter(
lambda v: inspect.ismodule(v) and v.__name__ in RELOADABLE_MODULES,
globals().values(),
):
rreload(reloaded_modules, module)
return reloaded_modules
signal.signal(signal.SIGUSR1, reload)

View File

@ -17,3 +17,4 @@ message_responses = LimitedSizeDict()
players = {} players = {}
sponsorblock_cache = LimitedSizeDict() sponsorblock_cache = LimitedSizeDict()
start_time = time.time() start_time = time.time()
trusted_users = []