Added iter for DB
This commit is contained in:
@@ -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
4
bot.py
@@ -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(
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user