diff --git a/misskaty/plugins/imdb_search.py b/misskaty/plugins/imdb_search.py
index 74acf02e..9633c2b5 100644
--- a/misskaty/plugins/imdb_search.py
+++ b/misskaty/plugins/imdb_search.py
@@ -262,7 +262,13 @@ async def imdbcari(self: Client, query: CallbackQuery):
)
)
buttons.add(*BTN)
- await query.message.edit_caption(msg, reply_markup=buttons)
+ msg = await query.message.edit_caption(msg, reply_markup=buttons)
+ await msg.wait_for_click(
+ from_user_id=int(uid),
+ timeout=30
+ )
+ except ListenerTimeout:
+ await msg.edit_caption("πΆβπ«οΈ Waktu Habis. Task Telah Dibatalkan!")
except Exception as err:
await query.message.edit_caption(f"Ooppss, gagal mendapatkan daftar judul di IMDb. Mungkin terkena rate limit atau down.\n\nERROR: {err}")
else:
@@ -301,7 +307,13 @@ async def imdbcari(self: Client, query: CallbackQuery):
)
)
buttons.add(*BTN)
- await query.message.edit_caption(msg, reply_markup=buttons)
+ msg = await query.message.edit_caption(msg, reply_markup=buttons)
+ await msg.wait_for_click(
+ from_user_id=int(uid),
+ timeout=30
+ )
+ except ListenerTimeout:
+ await msg.edit_caption("πΆβπ«οΈ Timeout. Task Has Been Cancelled!")
except Exception as err:
await query.message.edit_caption(f"Failed when requesting movies title. Maybe got rate limit or down.\n\nERROR: {err}")
diff --git a/misskaty/plugins/ytdl_plugins.py b/misskaty/plugins/ytdl_plugins.py
index e9018318..21432d86 100644
--- a/misskaty/plugins/ytdl_plugins.py
+++ b/misskaty/plugins/ytdl_plugins.py
@@ -2,12 +2,15 @@ from logging import getLogger
from re import compile as recompile
from uuid import uuid4
-from iytdl import iYTDL, main
+from iytdl import iYTDL, main, Process
+from iytdl.exceptions import DownloadFailedError
+from iytdl.constants import YT_VID_URL
from pyrogram import filters, Client
from pyrogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup, InputMediaPhoto, Message
from misskaty import app
from misskaty.core.decorator.errors import capture_err
+from misskaty.core.misskaty_patch.listen.listen import ListenerTimeout
from misskaty.core.decorator.ratelimiter import ratelimiter
from misskaty.helper.http import http
from misskaty.helper.localization import use_chat_lang
@@ -69,13 +72,19 @@ async def ytdownv2(self: Client, ctx: Message, strings):
url = ctx.input
async with iYTDL(log_group_id=0, cache_path="cache", ffmpeg_location="/usr/bin/mediaextract") as ytdl:
try:
- x = await ytdl.parse(url)
+ x = await ytdl.parse(url, extract=True)
if x is None:
return await ctx.reply_msg(strings("err_parse"))
- img = await get_ytthumb(x.key)
caption = x.caption
markup = x.buttons
- await ctx.reply_photo(img, caption=caption, reply_markup=markup, quote=True)
+ photo = x.image_url
+ msg = await ctx.reply_photo(photo, caption=caption, reply_markup=markup, quote=True)
+ await msg.wait_for_click(
+ from_user_id=ctx.from_user.id,
+ timeout=30
+ )
+ except ListenerTimeout:
+ await msg.edit_caption("πΆβπ«οΈ Timeout. Task has been cancelled!")
except Exception as err:
await ctx.reply_msg(f"Opps, ERROR: {str(err)}")