Added iter for DB

This commit is contained in:
2022-09-02 09:47:18 +03:00
parent 646008e4d8
commit 99bf0769e5
7 changed files with 46 additions and 26 deletions

View File

@@ -1,4 +1,4 @@
__version__ = '1.0.1'
__version__ = '1.0.2'
__title__ = "Pisya_bot"
__author__ = "beaconborn"
@@ -13,4 +13,4 @@ class VersionInfo(NamedTuple):
serial: int
version_info: VersionInfo = VersionInfo(major=1, minor=0, micro=1, releaselevel="alpha", serial=0)
version_info: VersionInfo = VersionInfo(major=1, minor=0, micro=5, releaselevel="alpha", serial=0)

4
bot.py
View File

@@ -32,13 +32,9 @@ asyncio.run(work_with_cogs('load', bot))
@bot.event
async def on_ready():
slash_commands = '\n\t* '.join(f'{r.name}: {r.description}' for r in bot.slash_commands)
_commands = '\n\t* '.join(f'{r.name}: {r.description}' for r in bot.commands)
logger.info(f'Bot started')
logger.info('We have logged in as {0.user}'.format(bot))
logger.info('Version of bot is - v{0.major}.{0.minor}.{0.micro}-{0.releaselevel}'.format(version_info))
logger.info(f'list of all slash commands: \n\t* {slash_commands}')
logger.info(f'list of all commands: \n\t* {_commands}')
@bot.slash_command(

View File

@@ -3,7 +3,7 @@ import disnake
from disnake import Option, OptionType, Colour
from disnake.ext import commands
from lib import read_db
from lib import DB_Reader
from lib import logger
@@ -23,15 +23,20 @@ class General(commands.Cog):
]
)
async def info(self, inter, user=None):
user_audio = None
default_audio = None
user = user or inter.author
user_audio = await read_db(inter.guild.id, user.id, column='usertracks')
default_audio = await read_db(inter.guild.id, user.id, column='defaulttracks')
_user = DB_Reader(inter.guild.id)
for r in _user:
if r.userid == user.id:
user_audio = r.usertracks
default_audio = r.defaulttracks
rolelist = [r.mention for r in user.roles if r != inter.guild.default_role]
if rolelist:
roles = "\n".join(rolelist)
else:
roles = "Not added any role"
if user_audio:
audios = "" + "\n".join(sorted(user_audio.split(", ")))
else:

View File

@@ -4,6 +4,7 @@ import disnake
import psutil
from disnake.ext import commands
from __init__ import version_info as _ve
from lib import determine_prefix, determine_time
from lib import logger
@@ -15,7 +16,6 @@ class Bot_info(commands.Cog, name='Bot Info'):
@commands.Cog.listener() # this is a decorator for events/listeners
async def on_ready(self):
logger.info(f'Cog {__name__.split(".")[1]} is ready!.')
logger.info(f'{[names.name for names in self.bot.users]}')
@commands.slash_command(name="info_bot",
description='Shows general info about bot') # this is for making a command
@@ -32,7 +32,8 @@ class Bot_info(commands.Cog, name='Bot Info'):
f'Prefix: `{determine_prefix(self.bot, inter)}\n`'
f"Max audio duration: {determine_time(inter)} sec\n"
)
emb.add_field(name="Bot owner", value=f"<@{self.bot.owner_id}>")
emb.add_field(name="Bot info:", value=f"Bot owner: <@{self.bot.owner_id}>\n"
f"Bot version: {_ve.major}.{_ve.minor}.{_ve.micro}-{_ve.releaselevel}")
emb.set_footer(text="Information requested by: {}".format(inter.author.display_name))
await inter.response.send_message(embed=emb, ephemeral=True)

View File

@@ -1,6 +1,5 @@
import sqlite3
import disnake
from lib import logger
@@ -8,12 +7,12 @@ from lib import logger
class DB_Reader:
def __init__(self, guildid: int = None):
self.guildid = guildid
self.list = self._read_db(self.guildid)
self._guildid = guildid
self.list = self._read_db(self._guildid)
self._current_index = 0
def __str__(self) -> str:
return str(self.guildid)
return str(self._guildid)
@classmethod
def _read_db(cls, guildid: int) -> list:
@@ -32,12 +31,12 @@ class DB_Reader:
class _DBAttrs:
def __init__(self,
userid,
username,
nick,
isbot,
defaulttracks,
usertracks):
userid: int,
username: str,
nick: str,
isbot: bool,
defaulttracks: None or list,
usertracks: None or list):
self.userid = userid
self.username = username
self.nick = nick
@@ -68,7 +67,7 @@ class _ListGenerationIter:
_userid = self._list[self._current_index][0]
_username = self._list[self._current_index][1]
_nick = self._list[self._current_index][2]
_isbot = self._list[self._current_index][3]
_isbot = bool(self._list[self._current_index][3])
_defaulttracks = self._list[self._current_index][4]
_usertracks = self._list[self._current_index][5]

View File

@@ -2,13 +2,12 @@ import logging
class _CustomFormatter(logging.Formatter):
grey = "\x1b[38;20m"
yellow = "\x1b[33;20m"
red = "\x1b[31;20m"
bold_red = "\x1b[31;1m"
reset = "\x1b[0m"
format = "%(asctime)s - %(levelname)s - %(module)s \t- %(message)s"
format = f"%(asctime)s - [%(levelname)s] -%(module)s- %(message)s"
FORMATS = {
logging.DEBUG: grey + format + reset,
@@ -18,9 +17,28 @@ class _CustomFormatter(logging.Formatter):
logging.CRITICAL: bold_red + format + reset
}
old_factory = logging.getLogRecordFactory()
def _record_factory(*args, **kwargs):
record = _CustomFormatter.old_factory(*args, **kwargs)
_module = record.module
_levelname = record.levelname
if len(record.module) % 2 == 0 and len(record.module) < 12:
_module = ' ' * ((12 - len(record.module)) // 2) + record.module + ' ' * ((12 - len(record.module)) // 2)
elif len(record.module) % 2 == 1 and len(record.module) <12:
_module = ' ' * ((12 - len(record.module)) // 2) + record.module + ' ' * ((12 - len(record.module)) // 2 + 1)
if len(record.levelname) % 2 == 0 and len(record.levelname) < 8:
_levelname = ' ' * ((8 - len(record.levelname)) // 2) + record.levelname + ' ' * ((8 - len(record.levelname)) // 2)
elif len(record.levelname) % 2 == 1 and len(record.module) < 8:
_levelname = ' ' * ((8 - len(record.levelname)) // 2) + record.levelname + ' ' * ((8 - len(record.levelname)) // 2 + 1)
record.module = _module
record.levelname = _levelname
return record
logging.setLogRecordFactory(_record_factory)
def format(self, record):
log_fmt = self.FORMATS.get(record.levelno)
formatter = logging.Formatter(log_fmt)
formatter = logging.Formatter(log_fmt, "%d-%m-%Y %H:%M:%S")
return formatter.format(record)

View File

@@ -4,3 +4,4 @@ psutil~=5.9.1
pymediainfo~=5.1.0
pyNaCl~=1.5.0
python-dotenv~=0.20.0
ffmpeg-python~=0.2.0