Optimized code

This commit is contained in:
Choco
2024-04-12 19:36:35 +08:00
parent 61b633f643
commit 88a879f98a
7 changed files with 54 additions and 37 deletions

View File

@@ -26,7 +26,6 @@ import voicelink
import psutil
import function as func
from typing import Tuple
from discord import app_commands
from discord.ext import commands
from function import (
@@ -39,15 +38,19 @@ from function import (
get_aliases,
cooldown_check
)
from views import DebugView, HelpView, EmbedBuilderView
def formatBytes(bytes: int, unit: bool = False):
def format_bytes(bytes: int, unit: bool = False):
if bytes <= 1_000_000_000:
return f"{bytes / (1024 ** 2):.1f}" + ("MB" if unit else "")
else:
return f"{bytes / (1024 ** 3):.1f}" + ("GB" if unit else "")
def status_icon(status: bool) -> str:
return "" if status else ""
class Settings(commands.Cog, name="settings"):
def __init__(self, bot) -> None:
self.bot: commands.Bot = bot
@@ -162,10 +165,12 @@ class Settings(commands.Cog, name="settings"):
perms = ctx.guild.me.guild_permissions
embed.add_field(name=texts[5], value=texts[6].format(
'<a:Check:941206936651706378>' if perms.administrator else '<a:Cross:941206918255497237>',
'<a:Check:941206936651706378>' if perms.manage_guild else '<a:Cross:941206918255497237>',
'<a:Check:941206936651706378>' if perms.manage_channels else '<a:Cross:941206918255497237>',
'<a:Check:941206936651706378>' if perms.manage_messages else '<a:Cross:941206918255497237>'), inline=False
status_icon(perms.administrator),
status_icon(perms.manage_guild),
status_icon(perms.manage_channels),
status_icon(perms.manage_messages)
),
inline=False
)
await ctx.send(embed=embed)
@@ -242,15 +247,15 @@ class Settings(commands.Cog, name="settings"):
return await interaction.response.send_message("You are not able to use this command!")
memory = psutil.virtual_memory()
disk = psutil.disk_usage('/')
disk = psutil.disk_usage(func.ROOT_DIR)
available_memory, total_memory = memory.available, memory.total
used_disk_space, total_disk_space = disk.used, disk.total
embed = discord.Embed(title="📄 Debug Panel", color=func.settings.embed_color)
embed.description = "```== System Info ==\n" \
f"• CPU: {psutil.cpu_freq().current}Mhz ({psutil.cpu_percent()}%)\n" \
f"• RAM: {formatBytes(total_memory - available_memory)}/{formatBytes(total_memory, True)} ({memory.percent}%)\n" \
f"• DISK: {formatBytes(total_disk_space - used_disk_space)}/{formatBytes(total_disk_space, True)} ({disk.percent}%)```"
f"• RAM: {format_bytes(total_memory - available_memory)}/{format_bytes(total_memory, True)} ({memory.percent}%)\n" \
f"• DISK: {format_bytes(total_disk_space - used_disk_space)}/{format_bytes(total_disk_space, True)} ({disk.percent}%)```"
embed.add_field(
name="🤖 Bot Information",
@@ -269,7 +274,7 @@ class Settings(commands.Cog, name="settings"):
value=f"```• ADDRESS: {node._host}:{node._port}\n" \
f"• PLAYERS: {len(node._players)}\n" \
f"• CPU: {node.stats.cpu_process_load:.1f}%\n" \
f"• RAM: {formatBytes(node.stats.free)}/{formatBytes(total_memory, True)} ({(node.stats.free/total_memory) * 100:.1f}%)\n"
f"• RAM: {format_bytes(node.stats.free)}/{format_bytes(total_memory, True)} ({(node.stats.free/total_memory) * 100:.1f}%)\n"
f"• LATENCY: {node.latency:.2f}ms\n" \
f"• UPTIME: {func.time(node.stats.uptime)}```",
inline=True

View File

@@ -86,29 +86,30 @@ class Task(commands.Cog):
await player.teardown()
continue
members = player.channel.members
if (not player.is_playing and player.queue.is_empty) or not any(False if member.bot or member.voice.self_deaf else True for member in members):
if not player.settings.get('24/7', False):
await player.teardown()
continue
else:
if not player.is_paused:
await player.set_pause(True)
else:
if not player.guild.me:
await player.teardown()
continue
elif not player.guild.me.voice:
await player.connect(timeout=0.0, reconnect=True)
try:
members = player.channel.members
if (not player.is_playing and player.queue.is_empty) or not any(False if member.bot or member.voice.self_deaf else True for member in members):
if not player.settings.get('24/7', False):
await player.teardown()
continue
else:
if not player.is_paused:
await player.set_pause(True)
else:
if not player.guild.me:
await player.teardown()
continue
elif not player.guild.me.voice:
await player.connect(timeout=0.0, reconnect=True)
if player.dj not in members:
for m in members:
if not m.bot:
player.dj = m
break
except:
pass
except Exception as e:
func.logger.error("Error occurred while checking the player!", exc_info=e)
@tasks.loop(hours=12.0)
async def cache_cleaner(self):

View File

@@ -147,7 +147,15 @@ async def send(ctx: Union[commands.Context, discord.Interaction], key: str, *par
text = await get_lang(ctx.guild.id, key)
text = text.format(*params)
send_func = ctx.send if isinstance(ctx, commands.Context) else (ctx.followup.send if ctx.response.is_done() else ctx.response.send_message)
if isinstance(ctx, commands.Context):
send_func = ctx.send
else:
if not ctx.response.is_done():
send_func = ctx.response.send_message
else:
return await ctx.followup.send(text, ephemeral=ephemeral, allowed_mentions=ALLOWED_MENTIONS)
return await send_func(text, delete_after=delete_after, ephemeral=ephemeral, allowed_mentions=ALLOWED_MENTIONS)
async def update_db(db: AsyncIOMotorCollection, tempStore: dict, filter: dict, data: dict) -> bool:

View File

@@ -4,9 +4,5 @@ dnspython==2.2.1
tldextract==3.2.1
validators==0.18.2
humanize==4.0.0
python-dotenv==0.20.0
beautifulsoup4==4.11.1
websockets==10.4
Flask==2.2.3
Flask-SocketIO==5.3.2
psutil==5.9.5

View File

@@ -10,7 +10,7 @@
},
"prefix": "?",
"activity":[
{"type": "listen", "name": "/help", "status": "online"}
{"type": "listening", "name": "/help", "status": "online"}
],
"logging": {
"file": {

View File

@@ -390,7 +390,10 @@ class Player(VoiceProtocol):
self.controller = await self.context.channel.send(embed=embed, view=view)
elif not await self.is_position_fresh():
await self.controller.delete()
try:
await self.controller.delete()
except:
pass
self.controller = await self.context.channel.send(embed=embed, view=view)
else:
@@ -466,8 +469,9 @@ class Player(VoiceProtocol):
self._node._players[self.guild.id] = self
self._is_connected = True
self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) has been connected to {self.channel.name}({self.channel.id}).")
if self.channel:
self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) has been connected to {self.channel.name}({self.channel.id}).")
async def stop(self):
"""Stops the currently playing track."""
self._current = None

View File

@@ -611,7 +611,10 @@ class NodePool:
"""
if identifier in cls._nodes.keys():
raise NodeCreationError(f"A node with identifier '{identifier}' already exists.")
if not logger:
logger = logging.getLogger("voicelink")
node = Node(
pool=cls, bot=bot, host=host, port=port, password=password,
identifier=identifier, secure=secure, heartbeat=heartbeat, spotify_client_id=spotify_client_id,