Optimized code
This commit is contained in:
@@ -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
|
||||
|
||||
35
cogs/task.py
35
cogs/task.py
@@ -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):
|
||||
|
||||
10
function.py
10
function.py
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
"prefix": "?",
|
||||
"activity":[
|
||||
{"type": "listen", "name": "/help", "status": "online"}
|
||||
{"type": "listening", "name": "/help", "status": "online"}
|
||||
],
|
||||
"logging": {
|
||||
"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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user