Optimized code
This commit is contained in:
@@ -26,7 +26,6 @@ import voicelink
|
|||||||
import psutil
|
import psutil
|
||||||
import function as func
|
import function as func
|
||||||
|
|
||||||
from typing import Tuple
|
|
||||||
from discord import app_commands
|
from discord import app_commands
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from function import (
|
from function import (
|
||||||
@@ -39,15 +38,19 @@ from function import (
|
|||||||
get_aliases,
|
get_aliases,
|
||||||
cooldown_check
|
cooldown_check
|
||||||
)
|
)
|
||||||
|
|
||||||
from views import DebugView, HelpView, EmbedBuilderView
|
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:
|
if bytes <= 1_000_000_000:
|
||||||
return f"{bytes / (1024 ** 2):.1f}" + ("MB" if unit else "")
|
return f"{bytes / (1024 ** 2):.1f}" + ("MB" if unit else "")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return f"{bytes / (1024 ** 3):.1f}" + ("GB" if unit 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"):
|
class Settings(commands.Cog, name="settings"):
|
||||||
def __init__(self, bot) -> None:
|
def __init__(self, bot) -> None:
|
||||||
self.bot: commands.Bot = bot
|
self.bot: commands.Bot = bot
|
||||||
@@ -162,10 +165,12 @@ class Settings(commands.Cog, name="settings"):
|
|||||||
|
|
||||||
perms = ctx.guild.me.guild_permissions
|
perms = ctx.guild.me.guild_permissions
|
||||||
embed.add_field(name=texts[5], value=texts[6].format(
|
embed.add_field(name=texts[5], value=texts[6].format(
|
||||||
'<a:Check:941206936651706378>' if perms.administrator else '<a:Cross:941206918255497237>',
|
status_icon(perms.administrator),
|
||||||
'<a:Check:941206936651706378>' if perms.manage_guild else '<a:Cross:941206918255497237>',
|
status_icon(perms.manage_guild),
|
||||||
'<a:Check:941206936651706378>' if perms.manage_channels else '<a:Cross:941206918255497237>',
|
status_icon(perms.manage_channels),
|
||||||
'<a:Check:941206936651706378>' if perms.manage_messages else '<a:Cross:941206918255497237>'), inline=False
|
status_icon(perms.manage_messages)
|
||||||
|
),
|
||||||
|
inline=False
|
||||||
)
|
)
|
||||||
await ctx.send(embed=embed)
|
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!")
|
return await interaction.response.send_message("You are not able to use this command!")
|
||||||
|
|
||||||
memory = psutil.virtual_memory()
|
memory = psutil.virtual_memory()
|
||||||
disk = psutil.disk_usage('/')
|
disk = psutil.disk_usage(func.ROOT_DIR)
|
||||||
|
|
||||||
available_memory, total_memory = memory.available, memory.total
|
available_memory, total_memory = memory.available, memory.total
|
||||||
used_disk_space, total_disk_space = disk.used, disk.total
|
used_disk_space, total_disk_space = disk.used, disk.total
|
||||||
embed = discord.Embed(title="📄 Debug Panel", color=func.settings.embed_color)
|
embed = discord.Embed(title="📄 Debug Panel", color=func.settings.embed_color)
|
||||||
embed.description = "```== System Info ==\n" \
|
embed.description = "```== System Info ==\n" \
|
||||||
f"• CPU: {psutil.cpu_freq().current}Mhz ({psutil.cpu_percent()}%)\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"• RAM: {format_bytes(total_memory - available_memory)}/{format_bytes(total_memory, True)} ({memory.percent}%)\n" \
|
||||||
f"• DISK: {formatBytes(total_disk_space - used_disk_space)}/{formatBytes(total_disk_space, True)} ({disk.percent}%)```"
|
f"• DISK: {format_bytes(total_disk_space - used_disk_space)}/{format_bytes(total_disk_space, True)} ({disk.percent}%)```"
|
||||||
|
|
||||||
embed.add_field(
|
embed.add_field(
|
||||||
name="🤖 Bot Information",
|
name="🤖 Bot Information",
|
||||||
@@ -269,7 +274,7 @@ class Settings(commands.Cog, name="settings"):
|
|||||||
value=f"```• ADDRESS: {node._host}:{node._port}\n" \
|
value=f"```• ADDRESS: {node._host}:{node._port}\n" \
|
||||||
f"• PLAYERS: {len(node._players)}\n" \
|
f"• PLAYERS: {len(node._players)}\n" \
|
||||||
f"• CPU: {node.stats.cpu_process_load:.1f}%\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"• LATENCY: {node.latency:.2f}ms\n" \
|
||||||
f"• UPTIME: {func.time(node.stats.uptime)}```",
|
f"• UPTIME: {func.time(node.stats.uptime)}```",
|
||||||
inline=True
|
inline=True
|
||||||
|
|||||||
35
cogs/task.py
35
cogs/task.py
@@ -86,29 +86,30 @@ class Task(commands.Cog):
|
|||||||
await player.teardown()
|
await player.teardown()
|
||||||
continue
|
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:
|
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:
|
if player.dj not in members:
|
||||||
for m in members:
|
for m in members:
|
||||||
if not m.bot:
|
if not m.bot:
|
||||||
player.dj = m
|
player.dj = m
|
||||||
break
|
break
|
||||||
except:
|
|
||||||
pass
|
except Exception as e:
|
||||||
|
func.logger.error("Error occurred while checking the player!", exc_info=e)
|
||||||
|
|
||||||
@tasks.loop(hours=12.0)
|
@tasks.loop(hours=12.0)
|
||||||
async def cache_cleaner(self):
|
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 = await get_lang(ctx.guild.id, key)
|
||||||
text = text.format(*params)
|
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)
|
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:
|
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
|
tldextract==3.2.1
|
||||||
validators==0.18.2
|
validators==0.18.2
|
||||||
humanize==4.0.0
|
humanize==4.0.0
|
||||||
python-dotenv==0.20.0
|
|
||||||
beautifulsoup4==4.11.1
|
beautifulsoup4==4.11.1
|
||||||
websockets==10.4
|
|
||||||
Flask==2.2.3
|
|
||||||
Flask-SocketIO==5.3.2
|
|
||||||
psutil==5.9.5
|
psutil==5.9.5
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
},
|
},
|
||||||
"prefix": "?",
|
"prefix": "?",
|
||||||
"activity":[
|
"activity":[
|
||||||
{"type": "listen", "name": "/help", "status": "online"}
|
{"type": "listening", "name": "/help", "status": "online"}
|
||||||
],
|
],
|
||||||
"logging": {
|
"logging": {
|
||||||
"file": {
|
"file": {
|
||||||
|
|||||||
@@ -390,7 +390,10 @@ class Player(VoiceProtocol):
|
|||||||
self.controller = await self.context.channel.send(embed=embed, view=view)
|
self.controller = await self.context.channel.send(embed=embed, view=view)
|
||||||
|
|
||||||
elif not await self.is_position_fresh():
|
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)
|
self.controller = await self.context.channel.send(embed=embed, view=view)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -466,8 +469,9 @@ class Player(VoiceProtocol):
|
|||||||
self._node._players[self.guild.id] = self
|
self._node._players[self.guild.id] = self
|
||||||
self._is_connected = True
|
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):
|
async def stop(self):
|
||||||
"""Stops the currently playing track."""
|
"""Stops the currently playing track."""
|
||||||
self._current = None
|
self._current = None
|
||||||
|
|||||||
@@ -611,7 +611,10 @@ class NodePool:
|
|||||||
"""
|
"""
|
||||||
if identifier in cls._nodes.keys():
|
if identifier in cls._nodes.keys():
|
||||||
raise NodeCreationError(f"A node with identifier '{identifier}' already exists.")
|
raise NodeCreationError(f"A node with identifier '{identifier}' already exists.")
|
||||||
|
|
||||||
|
if not logger:
|
||||||
|
logger = logging.getLogger("voicelink")
|
||||||
|
|
||||||
node = Node(
|
node = Node(
|
||||||
pool=cls, bot=bot, host=host, port=port, password=password,
|
pool=cls, bot=bot, host=host, port=port, password=password,
|
||||||
identifier=identifier, secure=secure, heartbeat=heartbeat, spotify_client_id=spotify_client_id,
|
identifier=identifier, secure=secure, heartbeat=heartbeat, spotify_client_id=spotify_client_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user