Skip to content

Commit 051ded2

Browse files
committed
Async cpu percent + small changes
1 parent a96c307 commit 051ded2

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/bot/__init__.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import asyncio
2+
import os
3+
4+
import psutil
25
from apscheduler.schedulers.asyncio import AsyncIOScheduler
36
import tzlocal
47

@@ -31,19 +34,22 @@ def __init__(self, version: str):
3134
self.db.build()
3235
self.cache: dict = dict()
3336
self.tasks = AsyncIOScheduler(timezone=str(tzlocal.get_localzone()))
37+
self.ready = False
3438
self.urban: UrbanDictionary = UrbanDictionary()
3539
self.VERSION = version
3640
super().__init__(
3741
owner_id="507214515641778187",
3842
shards=5000,
3943
intents=discord.Intents.all(),
44+
debug_guilds=["1064582321728143421"],
4045
description="Misc Bot used for advanced moderation and guild customization")
4146
self.tasks.add_job(self.db.commit, trigger='interval', minutes=30)
4247

4348
async def on_connect(self):
4449
self.tasks.start()
4550
await self.sync_commands()
4651
print(f"Signed into {self.user.display_name}#{self.user.discriminator}\n")
52+
self.ready = True
4753

4854
async def on_shard_ready(self, shard_id):
4955
await self.change_presence(activity=discord.Activity(type=discord.ActivityType.watching,
@@ -87,10 +93,11 @@ def get_name(self, data: Any, groups: list[str]):
8793
return self.get_name(data.get('options'), [*groups, data.get('name')])
8894

8995
async def on_interaction(self, interaction: discord.Interaction):
96+
if not self.ready: return
9097
if interaction.is_command():
9198
name_list, options = self.get_name(interaction.data, [])
9299
name = " ".join(name_list)
93-
# self.db.execute(f"""INSERT INTO commands VALUES (?,?,?,?,?)""", name, interaction.guild_id, interaction.user.id, json.dumps(options), datetime.now().timestamp())
100+
self.db.execute(f"""INSERT INTO commands VALUES (?,?,?,?,?)""", name, interaction.guild_id, interaction.user.id, json.dumps(options), datetime.now().timestamp())
94101
return await super().on_interaction(interaction=interaction)
95102

96103
async def on_application_command_error(self, ctx: CustomContext, exc) -> None:
@@ -126,3 +133,11 @@ async def on_application_command_error(self, ctx: CustomContext, exc) -> None:
126133

127134
else:
128135
raise exc
136+
137+
async def cpu_percent(self, interval = None, *args, **kwargs):
138+
python_process = psutil.Process(os.getpid())
139+
if interval is not None and interval > 0.0:
140+
python_process.cpu_percent(*args, **kwargs)
141+
await asyncio.sleep(interval)
142+
return psutil.cpu_percent(*args, **kwargs)
143+

0 commit comments

Comments
 (0)