37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from discord import Embed, Colour, File
|
|
|
|
from modules.Classes.Config import Config
|
|
from modules.Tools.logger import error
|
|
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 occurred",
|
|
description=str(message),
|
|
colour=Colour.red(),
|
|
)
|
|
file = File("screenshot.png")
|
|
embed.set_image(url="attachment://screenshot.png")
|
|
embed.set_footer(text=self.config.UserCredentials.get_mail() + " - " + self.config.WebDriver.current_driver())
|
|
|
|
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)
|