From 4fa1e9e3b3841ceda808f52c35da0d2423e5ba04 Mon Sep 17 00:00:00 2001 From: eek7574 <53234499+EEKIM10@users.noreply.github.com> Date: Thu, 2 Feb 2023 12:16:02 +0000 Subject: [PATCH] Add separate load timeout --- cogs/other.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cogs/other.py b/cogs/other.py index b8a0605..5144ba5 100644 --- a/cogs/other.py +++ b/cogs/other.py @@ -61,6 +61,7 @@ class OtherCog(commands.Cog): website: str, driver: Literal["chrome", "firefox"], render_time: int = 10, + load_timeout: int = 30, window_height: int = 1920, window_width: int = 1080, full_screenshot: bool = False, @@ -147,8 +148,9 @@ class OtherCog(commands.Cog): def _edit(content: str): self.bot.loop.create_task(ctx.interaction.edit_original_response(content=content)) - _edit(content=f"Screenshotting <{friendly_url}>... (49%, loading webpage)") - await _blocking(driver.set_page_load_timeout, render_time) + expires = round(time() + load_timeout) + _edit(content=f"Screenshotting <{friendly_url}>... (49%, loading webpage, aborts )") + await _blocking(driver.set_page_load_timeout, load_timeout) start = time() await _blocking(driver.get, website) end = time() @@ -592,8 +594,9 @@ class OtherCog(commands.Cog): self, ctx: discord.ApplicationContext, url: str, - browser: discord.Option(str, description="Browser to use", choices=["chrome", "firefox"], default="firefox"), - render_timeout: discord.Option(int, name="render-timeout", description="Timeout for rendering", default=10), + browser: discord.Option(str, description="Browser to use", choices=["chrome", "firefox"], default="chrome"), + render_timeout: discord.Option(int, name="render-timeout", description="Timeout for rendering", default=3), + load_timeout: discord.Option(int, name="load-timeout", description="Timeout for page load", default=60), window_height: discord.Option( int, name="window-height", description="the height of the window in pixels", default=1920 ), @@ -679,7 +682,7 @@ class OtherCog(commands.Cog): try: async with self.lock: screenshot, driver, fetch_time, screenshot_time = await self.screenshot_website( - ctx, url.geturl(), browser, render_timeout, window_height, window_width, capture_whole_page + ctx, url.geturl(), browser, render_timeout, load_timeout, window_height, window_width, capture_whole_page ) except TimeoutError: return await ctx.edit(content="Rendering screenshot timed out. Try using a smaller resolution.")