From e1b782c2cb12be8551216979e6f9a0e9cb5da102 Mon Sep 17 00:00:00 2001 From: Slava Date: Mon, 22 Aug 2022 01:17:27 +0300 Subject: [PATCH] refractor lib code --- cogs/audio.py | 1 + cogs/general.py | 44 +++++++++++++++++--------------------------- cogs/info.py | 10 ++++++---- lib/Comands.py | 11 ++--------- test.py | 15 ++++++++------- 5 files changed, 34 insertions(+), 47 deletions(-) diff --git a/cogs/audio.py b/cogs/audio.py index 7f6225a..1419ab3 100644 --- a/cogs/audio.py +++ b/cogs/audio.py @@ -25,6 +25,7 @@ class Audio(commands.Cog): audio = await read_db(member.guild.id, member.id, 'usertracks') from lib.Comands import list_files audio_files = await list_files(f'audio/{member.id}') + logging.info(f"state changed to user {member}") f = await list_files() if role is not None and before.channel is None and role in member.roles: track = randrange(0, len(f) - 1, 1) diff --git a/cogs/general.py b/cogs/general.py index 1bc368d..96cf727 100644 --- a/cogs/general.py +++ b/cogs/general.py @@ -4,9 +4,8 @@ import disnake from disnake import Option, OptionType, Colour from disnake.ext import commands -import lib from lib.Comands import read_json, set_prefix, write_json -from lib.DB import fill_bd, prepare_db, work_with_db +from lib.DB import fill_bd, prepare_db, work_with_db, read_db class General(commands.Cog): @@ -29,12 +28,12 @@ class General(commands.Cog): @commands.Cog.listener() async def on_member_join(self, member): - await lib.DB.fill_bd(member.name, member.id, member.bot, member.nick, member.guild.id) + await fill_bd(member.name, member.id, member.bot, member.nick, member.guild.id) bot_role = read_json(member.guild.id, 'bot_role') # Get bot role guest_role = read_json(member.guild.id, 'guest_role') # Get guest role - if bot_role and guest_role: + if bot_role or guest_role: if member.bot == 0: role = disnake.utils.get(member.guild.roles, id=guest_role) else: @@ -57,8 +56,8 @@ class General(commands.Cog): ) async def info(self, inter, user=None): user = user or inter.author - user_audio = await lib.DB.read_db(inter.guild.id, user.id, column='usertracks') - default_audio = await lib.DB.read_db(inter.guild.id, user.id, column='defaulttracks') + user_audio = await read_db(inter.guild.id, user.id, column='usertracks') + default_audio = await read_db(inter.guild.id, user.id, column='defaulttracks') rolelist = [r.mention for r in user.roles if r != inter.guild.default_role] if rolelist: roles = "\n".join(rolelist) @@ -100,9 +99,9 @@ class General(commands.Cog): ] ) @commands.has_permissions(administrator=True) - async def set_guest_role(self, ctx, role): - await write_json(ctx.guild.id, "guest_role", role.id) - await ctx.send(f"Setted up dsss bot role to: `{role.name}`", ephemeral=True) + async def set_guest_role(self, inter, role): + await write_json(inter.guild.id, "guest_role", role.id) + await inter.response.send_message(f"Setted up dsss bot role to: `{role.name}`", ephemeral=True) @commands.command(name="set_prefix") @commands.has_permissions(administrator=True) @@ -110,6 +109,7 @@ class General(commands.Cog): await set_prefix(ctx.guild.id, prefix) await ctx.reply(f"Prefix set to: `{prefix}`") + @commands.guild_only() @commands.slash_command( name="set_prefix", description="Setting up bot prefix", @@ -120,12 +120,9 @@ class General(commands.Cog): @commands.has_permissions(administrator=True) async def slash_set_prefix(self, inter, prefix: str): await set_prefix(inter.guild.id, prefix) - await inter.responce.send_message(f"Prefix set to: `{prefix}`", ephemeral=True) - - @slash_set_prefix.error - async def set_prefix_error(self, inter, prefix): - await inter.response.send_message('You don`t have permissions', ephemeral=True) + await inter.response.send_message(f"Prefix set to: `{prefix}`", ephemeral=True) + @commands.guild_only() @commands.slash_command( name="set_trigger_role", description="Setting up role to trigger bot", @@ -145,24 +142,17 @@ class General(commands.Cog): Option("role", "Specify role", OptionType.role, required=True), ] ) + @commands.guild_only() @commands.has_permissions(administrator=True) async def set_bot_role(self, ctx, role): await write_json(ctx.guild.id, "bot_role", role.id) await ctx.send(f"Setted up bot role to: `{role.name}`", ephemeral=True) - @commands.slash_command() - async def help(self, inter): - embed = disnake.Embed( - title='Help', description='', colour=disnake.Colour.blue()) - embed.set_footer(text='Have fun!') - - embed.add_field( - name='Prefix', - value=f'The current prefix for this server is {self.bot.command_prefix}', - inline=True) - - logging.info(f'server prefix {self.bot.command_prefix}') - await inter.response.send_message(embed=embed, ephemeral=True) + @set_bot_role.error + @set_trigger_role.error + @slash_set_prefix.error + async def set_prefix_error(self, inter, prefix): + await inter.response.send_message('You don`t have permissions', ephemeral=True) def setup(bot): # an extension must have a setup function diff --git a/cogs/info.py b/cogs/info.py index c3b38fa..4b33346 100644 --- a/cogs/info.py +++ b/cogs/info.py @@ -5,6 +5,8 @@ import disnake import psutil from disnake.ext import commands +from lib.Comands import determine_prefix + class Bot_info(commands.Cog, name='Bot Info'): def __init__(self, bot): @@ -23,10 +25,10 @@ class Bot_info(commands.Cog, name='Bot Info'): description=f"General information on about bot", ) # emb.set_thumbnail(self.bot.display_avatar) - emb.add_field(name="Bot ping", value=f'Bot ping: {round(self.bot.latency * 1000)}', inline=True) - emb.add_field(name="Memory Usage", value=f"{_process.memory_info()[0]/2**20} Mb", inline=True) - emb.add_field(name="CPU Usage", value=f"{_process.cpu_percent()}%", inline=True) - emb.add_field(name="Prefix", value=f"{self.bot.prefix}") + emb.add_field(name="System info:", value=f"Memory Usage: {round(_process.memory_info().rss / 2 ** 20, 2)} Mb\n" + f"CPU Usage: {_process.cpu_percent()}%\n" + f'Bot ping: {round(self.bot.latency * 1000)}\n' + f'Prefix: `{determine_prefix(self.bot, inter)}`') emb.add_field(name="Bot owner", value=f"<@{self.bot.owner_id}>") emb.set_footer(text="Information requested by: {}".format(inter.author.display_name)) diff --git a/lib/Comands.py b/lib/Comands.py index 43906a6..ce2f4d3 100644 --- a/lib/Comands.py +++ b/lib/Comands.py @@ -1,11 +1,5 @@ import json -from os import walk, path - - -def check_json(): - if not path.isfile('prefix.json'): - with open('prefix.json', 'w+', encoding='utf-8') as f: - f.write("") +from os import walk async def set_prefix(guildid: int, prefix: str) -> None: @@ -25,7 +19,6 @@ async def list_files(fold: str = 'audio'): async def read_json(guild: int, param: str): with open('prefix.json', 'r', encoding='utf-8') as fp: # Open the JSON - parameter = None try: _json = json.load(fp) # Load the custom prefixes except TypeError: @@ -39,6 +32,7 @@ async def read_json(guild: int, param: str): pass except: pass + return parameter @@ -66,7 +60,6 @@ async def determine_prefix(bot, msg): :return: prefix for server, default is $ """ with open('prefix.json', 'r', encoding='utf-8') as fp: # Open the JSON - parameter: str try: from json import load _json = load(fp) # Load the custom prefixes diff --git a/test.py b/test.py index 22e6caa..ea7627c 100644 --- a/test.py +++ b/test.py @@ -1,18 +1,19 @@ import logging import sys +from os import path import disnake from disnake import OptionChoice, OptionType, Option from disnake.ext import commands from lib.CogsPrepare import cog_list, work_with_cogs -from lib.Comands import check_json, determine_prefix +from lib.Comands import determine_prefix -bot_owner = 386629192743256065 -check_json() -intents = disnake.Intents(messages=True, guilds=True, message_content=True) -intents.members = True -intents.voice_states = True +if not path.isfile('prefix.json'): + with open('prefix.json', 'w+', encoding='utf-8') as f: + f.write("") + +intents = disnake.Intents(messages=True, guilds=True, message_content=True, voice_states=True, members=True) bot = commands.Bot(command_prefix=determine_prefix, intents=intents, @@ -62,7 +63,7 @@ async def on_ready(): ] ) async def slash_cogs(inter, what_do): - if inter.author.id == bot_owner: + if inter.author.id == bot.owner_id: await work_with_cogs(what_do, bot) await inter.response.send_message(f'Cogs are {what_do}ed', ephemeral=True)