39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
|
from discord import Embed, Colour, File
|
||
|
|
||
|
from modules.Classes.Config import Config
|
||
|
from modules.Classes.UserCredentials import UserCredentials
|
||
|
from modules.Tools.logger import info, warning, error, critical
|
||
|
from modules.Tools.tools import format_error
|
||
|
|
||
|
|
||
|
class DiscordLogger:
|
||
|
def __init__(self, config: Config):
|
||
|
self.config = config
|
||
|
|
||
|
def send(self, message: str):
|
||
|
driver = self.config.WebDriver.driver
|
||
|
if type(message) is not str:
|
||
|
message = format_error(message)
|
||
|
error(message)
|
||
|
with open("page.html", "w") as f:
|
||
|
try:
|
||
|
f.write(driver.page_source)
|
||
|
except Exception as e:
|
||
|
error(e)
|
||
|
f.write("the driver has closed or crashed. Can't access page content")
|
||
|
img = self.config.display.waitgrab()
|
||
|
img.save("screenshot.png")
|
||
|
|
||
|
embed = Embed(
|
||
|
title="An Error has occured",
|
||
|
description=str(message),
|
||
|
colour=Colour.red(),
|
||
|
)
|
||
|
file = File("screenshot.png")
|
||
|
embed.set_image(url="attachment://screenshot.png")
|
||
|
embed.set_footer(text=self.config.UserCredentials.creds.get_mail())
|
||
|
|
||
|
self.config.discord.wh.send(embed=embed, username="error", file=file, avatar_url=self.config.discord.avatar_url)
|
||
|
self.config.discord.wh.send(username="error", file=File("page.html"), avatar_url=self.config.discord.avatar_url)
|
||
|
|