From 09844d8292dafa3bdc7cee6f3aad0ebbeed09fdf Mon Sep 17 00:00:00 2001 From: Ev-1 <33662061+Ev-1@users.noreply.github.com> Date: Sun, 29 May 2022 13:43:14 +0200 Subject: [PATCH] Refactor code structure --- bot.py | 18 ++++----- {cogs => musicbot/cogs}/cogmanager.py | 4 +- {cogs => musicbot/cogs}/errors.py | 6 +-- musicbot/cogs/helpformatter/__init__.py | 8 ++++ musicbot/cogs/helpformatter/help.py | 32 ++++++++++++++++ .../cogs/helpformatter}/helpformatter.py | 37 +------------------ {cogs => musicbot/cogs}/misc.py | 2 +- {cogs => musicbot/cogs}/music/__init__.py | 2 +- .../cogs}/music/basic_commands.py | 4 +- {cogs => musicbot/cogs}/music/decorators.py | 4 +- {cogs => musicbot/cogs}/music/events.py | 0 .../cogs}/music/extra_commands.py | 4 +- {cogs => musicbot/cogs}/music/music_errors.py | 0 {cogs => musicbot/cogs}/nodemanager.py | 8 ++-- {cogs => musicbot/cogs}/settings.py | 6 +-- {cogs => musicbot}/utils/bot_version.py | 0 {cogs => musicbot}/utils/checks.py | 0 .../utils/localisation/__init__.py | 0 .../utils/localisation/alias.py | 0 .../utils/localisation/localizedcontext.py | 0 .../utils/localisation/localizer/__init__.py | 0 .../localisation/localizer/dict_utils.py | 0 .../utils/localisation/localizer/localizer.py | 0 .../localizer/localizerwrapper.py | 0 {cogs => musicbot}/utils/logger.py | 0 .../utils/mixplayer/__init__.py | 0 .../utils/mixplayer/mixqueue.py | 0 {cogs => musicbot}/utils/mixplayer/player.py | 0 .../utils/settingsmanager/__init__.py | 0 .../utils/settingsmanager/dictmapper.py | 0 .../utils/settingsmanager/settingsmanager.py | 0 {cogs => musicbot}/utils/thumbnailer.py | 0 {cogs => musicbot}/utils/timeformatter.py | 0 .../utils/userinteraction/__init__.py | 0 .../userinteraction/paginators/__init__.py | 0 .../paginators/basepaginator.py | 0 .../paginators/fieldpaginator.py | 0 .../paginators/helppaginator.py | 0 .../paginators/queuepaginator.py | 0 .../paginators/textpaginator.py | 0 .../utils/userinteraction/scroller.py | 0 .../utils/userinteraction/selector.py | 0 42 files changed, 70 insertions(+), 65 deletions(-) rename {cogs => musicbot/cogs}/cogmanager.py (96%) rename {cogs => musicbot/cogs}/errors.py (96%) create mode 100644 musicbot/cogs/helpformatter/__init__.py create mode 100644 musicbot/cogs/helpformatter/help.py rename {cogs => musicbot/cogs/helpformatter}/helpformatter.py (76%) rename {cogs => musicbot/cogs}/misc.py (99%) rename {cogs => musicbot/cogs}/music/__init__.py (99%) rename {cogs => musicbot/cogs}/music/basic_commands.py (99%) rename {cogs => musicbot/cogs}/music/decorators.py (98%) rename {cogs => musicbot/cogs}/music/events.py (100%) rename {cogs => musicbot/cogs}/music/extra_commands.py (99%) rename {cogs => musicbot/cogs}/music/music_errors.py (100%) rename {cogs => musicbot/cogs}/nodemanager.py (97%) rename {cogs => musicbot/cogs}/settings.py (98%) rename {cogs => musicbot}/utils/bot_version.py (100%) rename {cogs => musicbot}/utils/checks.py (100%) rename {cogs => musicbot}/utils/localisation/__init__.py (100%) rename {cogs => musicbot}/utils/localisation/alias.py (100%) rename {cogs => musicbot}/utils/localisation/localizedcontext.py (100%) rename {cogs => musicbot}/utils/localisation/localizer/__init__.py (100%) rename {cogs => musicbot}/utils/localisation/localizer/dict_utils.py (100%) rename {cogs => musicbot}/utils/localisation/localizer/localizer.py (100%) rename {cogs => musicbot}/utils/localisation/localizer/localizerwrapper.py (100%) rename {cogs => musicbot}/utils/logger.py (100%) rename {cogs => musicbot}/utils/mixplayer/__init__.py (100%) rename {cogs => musicbot}/utils/mixplayer/mixqueue.py (100%) rename {cogs => musicbot}/utils/mixplayer/player.py (100%) rename {cogs => musicbot}/utils/settingsmanager/__init__.py (100%) rename {cogs => musicbot}/utils/settingsmanager/dictmapper.py (100%) rename {cogs => musicbot}/utils/settingsmanager/settingsmanager.py (100%) rename {cogs => musicbot}/utils/thumbnailer.py (100%) rename {cogs => musicbot}/utils/timeformatter.py (100%) rename {cogs => musicbot}/utils/userinteraction/__init__.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/__init__.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/basepaginator.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/fieldpaginator.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/helppaginator.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/queuepaginator.py (100%) rename {cogs => musicbot}/utils/userinteraction/paginators/textpaginator.py (100%) rename {cogs => musicbot}/utils/userinteraction/scroller.py (100%) rename {cogs => musicbot}/utils/userinteraction/selector.py (100%) diff --git a/bot.py b/bot.py index dc586dc..57f5224 100644 --- a/bot.py +++ b/bot.py @@ -13,20 +13,20 @@ import aiohttp import yaml # Bot Utilities -from cogs.utils.localisation import Aliaser, LocalizedContext, Localizer, LocalizerWrapper -from cogs.utils.logger import BotLogger -from cogs.utils.settingsmanager import Settings +from musicbot.utils.localisation import Aliaser, LocalizedContext, Localizer, LocalizerWrapper +from musicbot.utils.logger import BotLogger +from musicbot.utils.settingsmanager import Settings initial_extensions = [ - 'cogs.errors', - 'cogs.cogmanager', - 'cogs.settings', - 'cogs.misc', - 'cogs.helpformatter' + 'musicbot.cogs.errors', + 'musicbot.cogs.cogmanager', + 'musicbot.cogs.settings', + 'musicbot.cogs.misc', + 'musicbot.cogs.helpformatter' ] on_ready_extensions = [ - 'cogs.nodemanager' + 'musicbot.cogs.nodemanager' ] diff --git a/cogs/cogmanager.py b/musicbot/cogs/cogmanager.py similarity index 96% rename from cogs/cogmanager.py rename to musicbot/cogs/cogmanager.py index b20eb17..3b6dd64 100644 --- a/cogs/cogmanager.py +++ b/musicbot/cogs/cogmanager.py @@ -4,8 +4,8 @@ from discord.ext import commands import traceback # Bot Utilities -from cogs.helpformatter import commandhelper -from cogs.utils.userinteraction import Scroller +from .helpformatter import commandhelper +from ..utils.userinteraction import Scroller class CogManager(commands.Cog): diff --git a/cogs/errors.py b/musicbot/cogs/errors.py similarity index 96% rename from cogs/errors.py rename to musicbot/cogs/errors.py index 126f395..1ae13b7 100644 --- a/cogs/errors.py +++ b/musicbot/cogs/errors.py @@ -4,11 +4,11 @@ from discord.ext import commands import traceback -from cogs.music.music_errors import WrongTextChannelError, WrongVoiceChannelError +from .music.music_errors import WrongTextChannelError, WrongVoiceChannelError # Bot Utilities -from cogs.helpformatter import commandhelper -from cogs.utils.userinteraction import Scroller +from .helpformatter import commandhelper +from ..utils.userinteraction import Scroller class Errors(commands.Cog): diff --git a/musicbot/cogs/helpformatter/__init__.py b/musicbot/cogs/helpformatter/__init__.py new file mode 100644 index 0000000..e8b6d5c --- /dev/null +++ b/musicbot/cogs/helpformatter/__init__.py @@ -0,0 +1,8 @@ +from .help import Help +from .helpformatter import commandhelper + +__all__ = ['Help', 'commandHelper'] + +def setup(bot): + bot.remove_command("help") + bot.add_cog(Help(bot)) \ No newline at end of file diff --git a/musicbot/cogs/helpformatter/help.py b/musicbot/cogs/helpformatter/help.py new file mode 100644 index 0000000..aa3e313 --- /dev/null +++ b/musicbot/cogs/helpformatter/help.py @@ -0,0 +1,32 @@ +from discord.ext import commands + + +class Help(commands.Cog): + """Help command""" + def __init__(self, bot): + self.bot = bot + + @commands.command(hidden=True) + async def help(self, ctx): # Takes no args because reasons(using the view directly) + ctx.view.skip_ws() + v = ctx.view + invoker = v.buffer[v.index:v.end] + ctx = self.bot.aliaser.get_subcommand(ctx, group=None, parents=[]) + command = v.buffer[v.index:v.end] + + ctx = prefix_cleaner(ctx) + + if not command: + paginator = await helper(ctx) + + if command: + thing = ctx.bot.get_cog(command) or ctx.bot.get_command(command) + if not thing: + return await ctx.send(ctx.localizer.format_str("{notcommand}", _command=command)) + if isinstance(thing, commands.Command): + paginator = commandhelper(ctx, thing, invoker) + else: + paginator = await coghelper(ctx, thing) + + scroller = Scroller(ctx, paginator) + await scroller.start_scrolling() diff --git a/cogs/helpformatter.py b/musicbot/cogs/helpformatter/helpformatter.py similarity index 76% rename from cogs/helpformatter.py rename to musicbot/cogs/helpformatter/helpformatter.py index 875e34b..669842e 100644 --- a/cogs/helpformatter.py +++ b/musicbot/cogs/helpformatter/helpformatter.py @@ -4,7 +4,7 @@ from discord.ext import commands import re # Bot Utilities -from .utils.userinteraction import HelpPaginator, Scroller +from ...utils.userinteraction import HelpPaginator, Scroller usermention = r"<@!?\d{17,19}>" @@ -111,38 +111,3 @@ def prefix_cleaner(ctx): ctx.prefix = pref return ctx - -class Help(commands.Cog): - """Help command""" - def __init__(self, bot): - self.bot = bot - - @commands.command(hidden=True) - async def help(self, ctx): # Takes no args because reasons(using the view directly) - ctx.view.skip_ws() - v = ctx.view - invoker = v.buffer[v.index:v.end] - ctx = self.bot.aliaser.get_subcommand(ctx, group=None, parents=[]) - command = v.buffer[v.index:v.end] - - ctx = prefix_cleaner(ctx) - - if not command: - paginator = await helper(ctx) - - if command: - thing = ctx.bot.get_cog(command) or ctx.bot.get_command(command) - if not thing: - return await ctx.send(ctx.localizer.format_str("{notcommand}", _command=command)) - if isinstance(thing, commands.Command): - paginator = commandhelper(ctx, thing, invoker) - else: - paginator = await coghelper(ctx, thing) - - scroller = Scroller(ctx, paginator) - await scroller.start_scrolling() - - -def setup(bot): - bot.remove_command("help") - bot.add_cog(Help(bot)) diff --git a/cogs/misc.py b/musicbot/cogs/misc.py similarity index 99% rename from cogs/misc.py rename to musicbot/cogs/misc.py index 630f1f5..4182787 100644 --- a/cogs/misc.py +++ b/musicbot/cogs/misc.py @@ -7,7 +7,7 @@ import platform import time # Bot Utilities -from cogs.utils import bot_version +from ..utils import bot_version class Misc(commands.Cog): diff --git a/cogs/music/__init__.py b/musicbot/cogs/music/__init__.py similarity index 99% rename from cogs/music/__init__.py rename to musicbot/cogs/music/__init__.py index 4bd0ba4..21641f5 100644 --- a/cogs/music/__init__.py +++ b/musicbot/cogs/music/__init__.py @@ -3,7 +3,7 @@ import discord import lavalink from discord.ext import commands -from ..utils import thumbnailer, timeformatter +from ...utils import thumbnailer, timeformatter from .music_errors import WrongTextChannelError diff --git a/cogs/music/basic_commands.py b/musicbot/cogs/music/basic_commands.py similarity index 99% rename from cogs/music/basic_commands.py rename to musicbot/cogs/music/basic_commands.py index 5ec061a..e217c84 100644 --- a/cogs/music/basic_commands.py +++ b/musicbot/cogs/music/basic_commands.py @@ -9,8 +9,8 @@ from discord.ext import commands import asyncio import re -from ..utils import checks, timeformatter -from ..utils.userinteraction import QueuePaginator, Scroller, Selector +from ...utils import checks, timeformatter +from ...utils.userinteraction import QueuePaginator, Scroller, Selector from .decorators import require_playing, require_queue, require_voice_connection, voteable time_rx = re.compile('[0-9]+') diff --git a/cogs/music/decorators.py b/musicbot/cogs/music/decorators.py similarity index 98% rename from cogs/music/decorators.py rename to musicbot/cogs/music/decorators.py index 0b503ba..9b77471 100644 --- a/cogs/music/decorators.py +++ b/musicbot/cogs/music/decorators.py @@ -7,9 +7,9 @@ import functools import inspect import math -from cogs.music.music_errors import WrongVoiceChannelError +from .music_errors import WrongVoiceChannelError -from ..utils.checks import is_dj +from ...utils.checks import is_dj def require_voice_connection(should_connect=False): diff --git a/cogs/music/events.py b/musicbot/cogs/music/events.py similarity index 100% rename from cogs/music/events.py rename to musicbot/cogs/music/events.py diff --git a/cogs/music/extra_commands.py b/musicbot/cogs/music/extra_commands.py similarity index 99% rename from cogs/music/extra_commands.py rename to musicbot/cogs/music/extra_commands.py index 335c122..977e8b4 100644 --- a/cogs/music/extra_commands.py +++ b/musicbot/cogs/music/extra_commands.py @@ -14,8 +14,8 @@ import urllib from bs4 import BeautifulSoup -from ..utils import checks -from ..utils.userinteraction import Scroller, TextPaginator +from ...utils import checks +from ...utils.userinteraction import Scroller, TextPaginator from .decorators import require_playing, require_voice_connection, voteable diff --git a/cogs/music/music_errors.py b/musicbot/cogs/music/music_errors.py similarity index 100% rename from cogs/music/music_errors.py rename to musicbot/cogs/music/music_errors.py diff --git a/cogs/nodemanager.py b/musicbot/cogs/nodemanager.py similarity index 97% rename from cogs/nodemanager.py rename to musicbot/cogs/nodemanager.py index 075b371..9e9ea17 100644 --- a/cogs/nodemanager.py +++ b/musicbot/cogs/nodemanager.py @@ -8,9 +8,9 @@ import codecs import yaml # Bot Utilities -from cogs.helpformatter import commandhelper -from cogs.utils.userinteraction import Scroller -from .utils.mixplayer import MixPlayer +from .helpformatter import commandhelper +from ..utils.userinteraction import Scroller +from ..utils.mixplayer import MixPlayer class NodeManager(commands.Cog): @@ -20,7 +20,7 @@ class NodeManager(commands.Cog): self.logger = self.bot.main_logger.bot_logger.getChild("NodeManager") music_extensions = [ - 'cogs.music', + 'musicbot.cogs.music', ] if not hasattr(bot, 'lavalink'): diff --git a/cogs/settings.py b/musicbot/cogs/settings.py similarity index 98% rename from cogs/settings.py rename to musicbot/cogs/settings.py index 414e962..7fdf1cc 100644 --- a/cogs/settings.py +++ b/musicbot/cogs/settings.py @@ -3,9 +3,9 @@ import discord from discord.ext import commands # Bot Utilities -from cogs.helpformatter import commandhelper -from cogs.utils import checks -from cogs.utils.userinteraction import Scroller +from .helpformatter import commandhelper +from ..utils import checks +from ..utils.userinteraction import Scroller class Settings(commands.Cog): diff --git a/cogs/utils/bot_version.py b/musicbot/utils/bot_version.py similarity index 100% rename from cogs/utils/bot_version.py rename to musicbot/utils/bot_version.py diff --git a/cogs/utils/checks.py b/musicbot/utils/checks.py similarity index 100% rename from cogs/utils/checks.py rename to musicbot/utils/checks.py diff --git a/cogs/utils/localisation/__init__.py b/musicbot/utils/localisation/__init__.py similarity index 100% rename from cogs/utils/localisation/__init__.py rename to musicbot/utils/localisation/__init__.py diff --git a/cogs/utils/localisation/alias.py b/musicbot/utils/localisation/alias.py similarity index 100% rename from cogs/utils/localisation/alias.py rename to musicbot/utils/localisation/alias.py diff --git a/cogs/utils/localisation/localizedcontext.py b/musicbot/utils/localisation/localizedcontext.py similarity index 100% rename from cogs/utils/localisation/localizedcontext.py rename to musicbot/utils/localisation/localizedcontext.py diff --git a/cogs/utils/localisation/localizer/__init__.py b/musicbot/utils/localisation/localizer/__init__.py similarity index 100% rename from cogs/utils/localisation/localizer/__init__.py rename to musicbot/utils/localisation/localizer/__init__.py diff --git a/cogs/utils/localisation/localizer/dict_utils.py b/musicbot/utils/localisation/localizer/dict_utils.py similarity index 100% rename from cogs/utils/localisation/localizer/dict_utils.py rename to musicbot/utils/localisation/localizer/dict_utils.py diff --git a/cogs/utils/localisation/localizer/localizer.py b/musicbot/utils/localisation/localizer/localizer.py similarity index 100% rename from cogs/utils/localisation/localizer/localizer.py rename to musicbot/utils/localisation/localizer/localizer.py diff --git a/cogs/utils/localisation/localizer/localizerwrapper.py b/musicbot/utils/localisation/localizer/localizerwrapper.py similarity index 100% rename from cogs/utils/localisation/localizer/localizerwrapper.py rename to musicbot/utils/localisation/localizer/localizerwrapper.py diff --git a/cogs/utils/logger.py b/musicbot/utils/logger.py similarity index 100% rename from cogs/utils/logger.py rename to musicbot/utils/logger.py diff --git a/cogs/utils/mixplayer/__init__.py b/musicbot/utils/mixplayer/__init__.py similarity index 100% rename from cogs/utils/mixplayer/__init__.py rename to musicbot/utils/mixplayer/__init__.py diff --git a/cogs/utils/mixplayer/mixqueue.py b/musicbot/utils/mixplayer/mixqueue.py similarity index 100% rename from cogs/utils/mixplayer/mixqueue.py rename to musicbot/utils/mixplayer/mixqueue.py diff --git a/cogs/utils/mixplayer/player.py b/musicbot/utils/mixplayer/player.py similarity index 100% rename from cogs/utils/mixplayer/player.py rename to musicbot/utils/mixplayer/player.py diff --git a/cogs/utils/settingsmanager/__init__.py b/musicbot/utils/settingsmanager/__init__.py similarity index 100% rename from cogs/utils/settingsmanager/__init__.py rename to musicbot/utils/settingsmanager/__init__.py diff --git a/cogs/utils/settingsmanager/dictmapper.py b/musicbot/utils/settingsmanager/dictmapper.py similarity index 100% rename from cogs/utils/settingsmanager/dictmapper.py rename to musicbot/utils/settingsmanager/dictmapper.py diff --git a/cogs/utils/settingsmanager/settingsmanager.py b/musicbot/utils/settingsmanager/settingsmanager.py similarity index 100% rename from cogs/utils/settingsmanager/settingsmanager.py rename to musicbot/utils/settingsmanager/settingsmanager.py diff --git a/cogs/utils/thumbnailer.py b/musicbot/utils/thumbnailer.py similarity index 100% rename from cogs/utils/thumbnailer.py rename to musicbot/utils/thumbnailer.py diff --git a/cogs/utils/timeformatter.py b/musicbot/utils/timeformatter.py similarity index 100% rename from cogs/utils/timeformatter.py rename to musicbot/utils/timeformatter.py diff --git a/cogs/utils/userinteraction/__init__.py b/musicbot/utils/userinteraction/__init__.py similarity index 100% rename from cogs/utils/userinteraction/__init__.py rename to musicbot/utils/userinteraction/__init__.py diff --git a/cogs/utils/userinteraction/paginators/__init__.py b/musicbot/utils/userinteraction/paginators/__init__.py similarity index 100% rename from cogs/utils/userinteraction/paginators/__init__.py rename to musicbot/utils/userinteraction/paginators/__init__.py diff --git a/cogs/utils/userinteraction/paginators/basepaginator.py b/musicbot/utils/userinteraction/paginators/basepaginator.py similarity index 100% rename from cogs/utils/userinteraction/paginators/basepaginator.py rename to musicbot/utils/userinteraction/paginators/basepaginator.py diff --git a/cogs/utils/userinteraction/paginators/fieldpaginator.py b/musicbot/utils/userinteraction/paginators/fieldpaginator.py similarity index 100% rename from cogs/utils/userinteraction/paginators/fieldpaginator.py rename to musicbot/utils/userinteraction/paginators/fieldpaginator.py diff --git a/cogs/utils/userinteraction/paginators/helppaginator.py b/musicbot/utils/userinteraction/paginators/helppaginator.py similarity index 100% rename from cogs/utils/userinteraction/paginators/helppaginator.py rename to musicbot/utils/userinteraction/paginators/helppaginator.py diff --git a/cogs/utils/userinteraction/paginators/queuepaginator.py b/musicbot/utils/userinteraction/paginators/queuepaginator.py similarity index 100% rename from cogs/utils/userinteraction/paginators/queuepaginator.py rename to musicbot/utils/userinteraction/paginators/queuepaginator.py diff --git a/cogs/utils/userinteraction/paginators/textpaginator.py b/musicbot/utils/userinteraction/paginators/textpaginator.py similarity index 100% rename from cogs/utils/userinteraction/paginators/textpaginator.py rename to musicbot/utils/userinteraction/paginators/textpaginator.py diff --git a/cogs/utils/userinteraction/scroller.py b/musicbot/utils/userinteraction/scroller.py similarity index 100% rename from cogs/utils/userinteraction/scroller.py rename to musicbot/utils/userinteraction/scroller.py diff --git a/cogs/utils/userinteraction/selector.py b/musicbot/utils/userinteraction/selector.py similarity index 100% rename from cogs/utils/userinteraction/selector.py rename to musicbot/utils/userinteraction/selector.py