mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
Refined debuginfo (#5156)
* Oh my gosh Kowlin is finishing work!? * fix style * use f-strings * moar f-strings actually * Fix style... * I did a poor job of find-replacing things * Improve code readability per previous Kowlin's style * And reformat it in such a way that get jack through the day * Okay maybe some whitespace * Update core_commands.py * Update core_commands.py Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
This commit is contained in:
parent
0fb7c8bdba
commit
3b7f9e24b4
@ -12,10 +12,12 @@ import os
|
|||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import platform
|
import platform
|
||||||
|
import psutil
|
||||||
import getpass
|
import getpass
|
||||||
import pip
|
import pip
|
||||||
import traceback
|
import traceback
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from redbot.core import data_manager
|
||||||
from redbot.core.utils.menus import menu, DEFAULT_CONTROLS
|
from redbot.core.utils.menus import menu, DEFAULT_CONTROLS
|
||||||
from redbot.core.commands import GuildConverter
|
from redbot.core.commands import GuildConverter
|
||||||
from string import ascii_letters, digits
|
from string import ascii_letters, digits
|
||||||
@ -25,7 +27,6 @@ import aiohttp
|
|||||||
import discord
|
import discord
|
||||||
from babel import Locale as BabelLocale, UnknownLocaleError
|
from babel import Locale as BabelLocale, UnknownLocaleError
|
||||||
from redbot.core.data_manager import storage_type
|
from redbot.core.data_manager import storage_type
|
||||||
from redbot.core.utils.chat_formatting import box, pagify
|
|
||||||
|
|
||||||
from . import (
|
from . import (
|
||||||
__version__,
|
__version__,
|
||||||
@ -3558,19 +3559,20 @@ class Core(commands.commands._RuleDropper, commands.Cog, CoreLogic):
|
|||||||
IS_MAC = sys.platform == "darwin"
|
IS_MAC = sys.platform == "darwin"
|
||||||
IS_LINUX = sys.platform == "linux"
|
IS_LINUX = sys.platform == "linux"
|
||||||
|
|
||||||
pyver = "{}.{}.{} ({})".format(*sys.version_info[:3], platform.architecture()[0])
|
python_version = ".".join(map(str, sys.version_info[:3]))
|
||||||
|
pyver = f"{python_version} ({platform.architecture()[0]})"
|
||||||
pipver = pip.__version__
|
pipver = pip.__version__
|
||||||
redver = red_version_info
|
redver = red_version_info
|
||||||
dpy_version = discord.__version__
|
dpy_version = discord.__version__
|
||||||
if IS_WINDOWS:
|
if IS_WINDOWS:
|
||||||
os_info = platform.uname()
|
os_info = platform.uname()
|
||||||
osver = "{} {} (version {})".format(os_info.system, os_info.release, os_info.version)
|
osver = f"{os_info.system} {os_info.release} (version {os_info.version})"
|
||||||
elif IS_MAC:
|
elif IS_MAC:
|
||||||
os_info = platform.mac_ver()
|
os_info = platform.mac_ver()
|
||||||
osver = "Mac OSX {} {}".format(os_info[0], os_info[2])
|
osver = f"Mac OSX {os_info[0]} {os_info[2]}"
|
||||||
elif IS_LINUX:
|
elif IS_LINUX:
|
||||||
os_info = distro.linux_distribution()
|
os_info = distro.linux_distribution()
|
||||||
osver = "{} {}".format(os_info[0], os_info[1]).strip()
|
osver = f"{os_info[0]} {os_info[1]}".strip()
|
||||||
else:
|
else:
|
||||||
osver = "Could not parse OS, report this on Github."
|
osver = "Could not parse OS, report this on Github."
|
||||||
user_who_ran = getpass.getuser()
|
user_who_ran = getpass.getuser()
|
||||||
@ -3587,51 +3589,69 @@ class Core(commands.commands._RuleDropper, commands.Cog, CoreLogic):
|
|||||||
)
|
)
|
||||||
or "None"
|
or "None"
|
||||||
)
|
)
|
||||||
if await ctx.embed_requested():
|
|
||||||
e = discord.Embed(color=await ctx.embed_colour())
|
def _datasize(num: int):
|
||||||
e.title = "Debug Info for Red"
|
for unit in ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB"]:
|
||||||
e.add_field(name="Red version", value=redver, inline=True)
|
if abs(num) < 1024.0:
|
||||||
e.add_field(name="Python version", value=pyver, inline=True)
|
return "{0:.1f}{1}".format(num, unit)
|
||||||
e.add_field(name="Discord.py version", value=dpy_version, inline=True)
|
num /= 1024.0
|
||||||
e.add_field(name="Pip version", value=pipver, inline=True)
|
return "{0:.1f}{1}".format(num, "YB")
|
||||||
e.add_field(name="System arch", value=platform.machine(), inline=True)
|
|
||||||
e.add_field(name="User", value=user_who_ran, inline=True)
|
memory_ram = psutil.virtual_memory()
|
||||||
e.add_field(name="Storage type", value=driver, inline=True)
|
ram_string = "{used}/{total} ({percent}%)".format(
|
||||||
e.add_field(name="Disabled intents", value=disabled_intents, inline=True)
|
used=_datasize(memory_ram.used),
|
||||||
e.add_field(name="OS version", value=osver, inline=False)
|
total=_datasize(memory_ram.total),
|
||||||
e.add_field(
|
percent=memory_ram.percent,
|
||||||
name="Python executable",
|
|
||||||
value=escape(sys.executable, formatting=True),
|
|
||||||
inline=False,
|
|
||||||
)
|
)
|
||||||
e.add_field(
|
|
||||||
name="Data path",
|
owners = []
|
||||||
value=escape(str(data_path), formatting=True),
|
for uid in self.bot.owner_ids:
|
||||||
inline=False,
|
try:
|
||||||
|
u = await self.bot.get_or_fetch_user(uid)
|
||||||
|
owners.append(f"{u.id} ({u})")
|
||||||
|
except discord.HTTPException:
|
||||||
|
owners.append(f"{uid} (Unresolvable)")
|
||||||
|
owners_string = ", ".join(owners) or "None"
|
||||||
|
|
||||||
|
resp_intro = "# Debug Info for Red:"
|
||||||
|
resp_system_intro = "## System Metadata:"
|
||||||
|
resp_system = (
|
||||||
|
f"CPU Cores: {psutil.cpu_count()} ({platform.machine()})\nRAM: {ram_string}\n"
|
||||||
)
|
)
|
||||||
e.add_field(
|
resp_os_intro = "## OS Variables:"
|
||||||
name="Metadata file",
|
resp_os = f"OS version: {osver}\nUser: {user_who_ran}\n" # Ran where off to?!
|
||||||
value=escape(str(config_file), formatting=True),
|
resp_py_metadata = (
|
||||||
inline=False,
|
f"Python executable: {sys.executable}\n"
|
||||||
|
f"Python version: {pyver}\n"
|
||||||
|
f"Pip version: {pipver}\n"
|
||||||
)
|
)
|
||||||
await ctx.send(embed=e)
|
resp_red_metadata = f"Red version: {redver}\nDiscord.py version: {dpy_version}\n"
|
||||||
else:
|
resp_red_vars_intro = "## Red variables:"
|
||||||
info = (
|
resp_red_vars = (
|
||||||
"Debug Info for Red\n\n"
|
f"Instance name: {data_manager.instance_name}\n"
|
||||||
+ "Red version: {}\n".format(redver)
|
f"Owner(s): {owners_string}\n"
|
||||||
+ "Python version: {}\n".format(pyver)
|
f"Storage type: {driver}\n"
|
||||||
+ "Discord.py version: {}\n".format(dpy_version)
|
f"Disabled intents: {disabled_intents}\n"
|
||||||
+ "Pip version: {}\n".format(pipver)
|
f"Data path: {data_path}\n"
|
||||||
+ "System arch: {}\n".format(platform.machine())
|
f"Metadata file: {config_file}"
|
||||||
+ "User: {}\n".format(user_who_ran)
|
|
||||||
+ "OS version: {}\n".format(osver)
|
|
||||||
+ "Storage type: {}\n".format(driver)
|
|
||||||
+ "Disabled intents: {}\n".format(disabled_intents)
|
|
||||||
+ "Python executable: {}\n".format(sys.executable)
|
|
||||||
+ "Data path: {}\n".format(data_path)
|
|
||||||
+ "Metadata file: {}\n".format(config_file)
|
|
||||||
)
|
)
|
||||||
await ctx.send(box(info))
|
|
||||||
|
response = (
|
||||||
|
box(resp_intro, lang="md"),
|
||||||
|
"\n",
|
||||||
|
box(resp_system_intro, lang="md"),
|
||||||
|
box(resp_system),
|
||||||
|
"\n",
|
||||||
|
box(resp_os_intro, lang="md"),
|
||||||
|
box(resp_os),
|
||||||
|
box(resp_py_metadata),
|
||||||
|
box(resp_red_metadata),
|
||||||
|
"\n",
|
||||||
|
box(resp_red_vars_intro, lang="md"),
|
||||||
|
box(resp_red_vars),
|
||||||
|
)
|
||||||
|
|
||||||
|
await ctx.send("".join(response))
|
||||||
|
|
||||||
@commands.group(aliases=["whitelist"])
|
@commands.group(aliases=["whitelist"])
|
||||||
@checks.is_owner()
|
@checks.is_owner()
|
||||||
|
|||||||
@ -55,6 +55,7 @@ install_requires =
|
|||||||
idna==2.10
|
idna==2.10
|
||||||
Markdown==3.3.3
|
Markdown==3.3.3
|
||||||
multidict==5.1.0
|
multidict==5.1.0
|
||||||
|
psutil==5.8.0
|
||||||
PyNaCl==1.3.0
|
PyNaCl==1.3.0
|
||||||
Pygments==2.7.4
|
Pygments==2.7.4
|
||||||
python-dateutil==2.8.1
|
python-dateutil==2.8.1
|
||||||
|
|||||||
@ -18,6 +18,7 @@ install_requires =
|
|||||||
distro; sys_platform == "linux"
|
distro; sys_platform == "linux"
|
||||||
fuzzywuzzy
|
fuzzywuzzy
|
||||||
markdown
|
markdown
|
||||||
|
psutil
|
||||||
python-dateutil
|
python-dateutil
|
||||||
python-Levenshtein-wheels
|
python-Levenshtein-wheels
|
||||||
PyYAML
|
PyYAML
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user