added some error handling and overall cleanup
This commit is contained in:
parent
21407d247b
commit
022d9afbee
1 changed files with 25 additions and 8 deletions
|
|
@ -14,13 +14,14 @@ class InkyScreen(commands.Cog):
|
||||||
self.old_message = None
|
self.old_message = None
|
||||||
self.display = self.setup()
|
self.display = self.setup()
|
||||||
self.start_time = time.time()
|
self.start_time = time.time()
|
||||||
|
self.admin_ids = [242018983241318410]
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
display = inky.auto()
|
display = inky.auto()
|
||||||
display.set_border(inky.BLACK)
|
display.set_border(inky.BLACK)
|
||||||
return display
|
return display
|
||||||
|
|
||||||
def write_to_image(self, text: list):
|
def write_to_display(self, text: list):
|
||||||
if text is not self.old_message:
|
if text is not self.old_message:
|
||||||
image = Image.new("P", (self.display.WIDTH, self.display.HEIGHT))
|
image = Image.new("P", (self.display.WIDTH, self.display.HEIGHT))
|
||||||
draw = ImageDraw.Draw(image)
|
draw = ImageDraw.Draw(image)
|
||||||
|
|
@ -52,21 +53,37 @@ class InkyScreen(commands.Cog):
|
||||||
sparky_uptime = time.time() - self.start_time
|
sparky_uptime = time.time() - self.start_time
|
||||||
return str(datetime.timedelta(seconds=sparky_uptime))
|
return str(datetime.timedelta(seconds=sparky_uptime))
|
||||||
|
|
||||||
@tasks.loop(minutes=10)
|
def generate_message(self):
|
||||||
async def update_screen(self):
|
|
||||||
message_list = []
|
message_list = []
|
||||||
if self.enabled:
|
try:
|
||||||
message_list.append(f"IP: {self.get_ip_address()}")
|
message_list.append(f"IP: {self.get_ip_address()}")
|
||||||
message_list.append(f"Time: {time.strftime('%H:%M:%S')}")
|
message_list.append(f"Time: {time.strftime('%H:%M:%S')}")
|
||||||
message_list.append(f"Uptime: {self.get_uptime()}")
|
message_list.append(f"Uptime: {self.get_uptime()}")
|
||||||
message_list.append(f"Servers: {len(self.bot.guilds)}")
|
message_list.append(f"Servers: {len(self.bot.guilds)}")
|
||||||
cpu_percent = psutil.cpu_percent()
|
cpu_percent = psutil.cpu_percent()
|
||||||
memory_info = psutil.virtual_memory()
|
memory_info = psutil.virtual_memory()
|
||||||
message_list.append(f"CPU: {cpu_percent}%")
|
message_list.append(f"CPU: {cpu_percent}%")
|
||||||
message_list.append(f"Memory: {memory_info.used}/{memory_info.total}")
|
message_list.append(f"Memory: {memory_info.used}/{memory_info.total}")
|
||||||
|
except Exception as e:
|
||||||
|
self.bot.logger.error(f"Error generating InkyScreen message: {e}")
|
||||||
|
|
||||||
|
return message_list
|
||||||
|
|
||||||
|
|
||||||
|
@commands.command()
|
||||||
|
async def inkyscreen_update(self, ctx):
|
||||||
|
if ctx.author.id in self.admin_ids:
|
||||||
|
message = self.generate_message()
|
||||||
|
self.write_to_display(message)
|
||||||
|
await ctx.send("InkyScreen updated.")
|
||||||
|
else:
|
||||||
|
await ctx.send("You do not have permission to use this command.")
|
||||||
|
|
||||||
|
@tasks.loop(minutes=10)
|
||||||
|
async def generate_message(self):
|
||||||
|
if self.enabled:
|
||||||
|
message = self.generate_message()
|
||||||
|
self.write_to_display(message)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue