Remove task timeout since it make bot slow, i will try find solution later

This commit is contained in:
yasirarism 2023-08-12 22:11:47 +07:00 committed by GitHub
parent 174a8e1ac8
commit de72f6077a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 26 additions and 78 deletions

View file

@ -63,7 +63,12 @@ async def anonymous_admin_verification(
cb = ANON.pop( cb = ANON.pop(
int(f"{CallbackQuery.message.chat.id}{CallbackQuery.data.split('.')[1]}") int(f"{CallbackQuery.message.chat.id}{CallbackQuery.data.split('.')[1]}")
) )
member = await CallbackQuery.message.chat.get_member(CallbackQuery.from_user.id) try:
member = await CallbackQuery.message.chat.get_member(CallbackQuery.from_user.id)
except pyrogram.errors.exceptions.forbidden_403.ChatAdminRequired:
return await CallbackQuery.message.edit_text(
"I must be admin to execute this task, or i will leave from this group.",
)
if member.status not in ( if member.status not in (
pyrogram.enums.ChatMemberStatus.OWNER, pyrogram.enums.ChatMemberStatus.OWNER,
pyrogram.enums.ChatMemberStatus.ADMINISTRATOR, pyrogram.enums.ChatMemberStatus.ADMINISTRATOR,
@ -99,7 +104,7 @@ async def anonymous_admin_verification(
await cb[1](self, cb[0]) await cb[1](self, cb[0])
except pyrogram.errors.exceptions.forbidden_403.ChatAdminRequired: except pyrogram.errors.exceptions.forbidden_403.ChatAdminRequired:
return await CallbackQuery.message.edit_text( return await CallbackQuery.message.edit_text(
"I must be admin to execute this Command", "I must be admin to execute this task, or i will leave from this group.",
) )
except BaseException as e: except BaseException as e:
return await handle_error(e, CallbackQuery) return await handle_error(e, CallbackQuery)

View file

@ -21,10 +21,10 @@ class RateLimiter:
self.second_rate = RequestRate(1, Duration.SECOND) self.second_rate = RequestRate(1, Duration.SECOND)
# 15 requests per minute. # 15 requests per minute.
self.minute_rate = RequestRate(15, Duration.MINUTE) self.minute_rate = RequestRate(60, Duration.MINUTE)
# 100 requests per hour # 100 requests per hour
self.hourly_rate = RequestRate(100, Duration.HOUR) self.hourly_rate = RequestRate(300, Duration.HOUR)
# 500 requests per day # 500 requests per day
self.daily_rate = RequestRate(500, Duration.DAY) self.daily_rate = RequestRate(500, Duration.DAY)

View file

@ -31,7 +31,6 @@ from pyrogram.types import (
from database.imdb_db import add_imdbset, is_imdbset, remove_imdbset from database.imdb_db import add_imdbset, is_imdbset, remove_imdbset
from misskaty import app from misskaty import app
from misskaty.core.decorator.ratelimiter import ratelimiter from misskaty.core.decorator.ratelimiter import ratelimiter
from misskaty.core.misskaty_patch.listen.listen import ListenerTimeout
from misskaty.helper import GENRES_EMOJI, Cache, get_random_string, http, search_jw from misskaty.helper import GENRES_EMOJI, Cache, get_random_string, http, search_jw
from utils import demoji from utils import demoji
@ -64,29 +63,19 @@ async def imdb_choose(_, ctx: Message):
return await imdb_search_id(kuery, ctx) return await imdb_search_id(kuery, ctx)
buttons = InlineKeyboard() buttons = InlineKeyboard()
ranval = get_random_string(4) ranval = get_random_string(4)
LIST_CARI.add(ranval, kuery, timeout=180) LIST_CARI.add(ranval, kuery, timeout=30)
buttons.row( buttons.row(
InlineButton("🇺🇸 English", f"imdbcari#eng#{ranval}#{ctx.from_user.id}"), InlineButton("🇺🇸 English", f"imdbcari#eng#{ranval}#{ctx.from_user.id}"),
InlineButton("🇮🇩 Indonesia", f"imdbcari#ind#{ranval}#{ctx.from_user.id}"), InlineButton("🇮🇩 Indonesia", f"imdbcari#ind#{ranval}#{ctx.from_user.id}"),
) )
buttons.row(InlineButton("🚩 Set Default Language", f"imdbset#{ctx.from_user.id}")) buttons.row(InlineButton("🚩 Set Default Language", f"imdbset#{ctx.from_user.id}"))
buttons.row(InlineButton("❌ Close", f"close#{ctx.from_user.id}")) buttons.row(InlineButton("❌ Close", f"close#{ctx.from_user.id}"))
msg = await ctx.reply_photo( await ctx.reply_photo(
"https://telegra.ph/file/270955ef0d1a8a16831a9.jpg", "https://telegra.ph/file/270955ef0d1a8a16831a9.jpg",
caption=f"Hi {ctx.from_user.mention}, Please select the language you want to use on IMDB Search. If you want use default lang for every user, click third button. So no need click select lang if use CMD.", caption=f"Hi {ctx.from_user.mention}, Please select the language you want to use on IMDB Search. If you want use default lang for every user, click third button. So no need click select lang if use CMD.",
reply_markup=buttons, reply_markup=buttons,
quote=True, quote=True,
) )
try:
await msg.wait_for_click(from_user_id=ctx.from_user.id, timeout=30)
except ListenerTimeout:
del LIST_CARI[ranval]
try:
await msg.edit_caption(
"😶‍🌫️ Callback Query Timeout. Task Has Been Canceled!"
)
except MessageIdInvalid:
pass
@app.on_cb("imdbset") @app.on_cb("imdbset")
@ -106,18 +95,9 @@ async def imdblangset(_, query: CallbackQuery):
InlineButton("🗑 Remove UserSetting", f"setimdb#rm#{query.from_user.id}") InlineButton("🗑 Remove UserSetting", f"setimdb#rm#{query.from_user.id}")
) )
buttons.row(InlineButton("❌ Close", f"close#{query.from_user.id}")) buttons.row(InlineButton("❌ Close", f"close#{query.from_user.id}"))
msg = await query.message.edit_caption( await query.message.edit_caption(
"<i>Please select available language below..</i>", reply_markup=buttons "<i>Please select available language below..</i>", reply_markup=buttons
) )
try:
await msg.wait_for_click(from_user_id=int(uid), timeout=30)
except ListenerTimeout:
try:
await msg.edit_caption(
"😶‍🌫️ Callback Query Timeout. Task Has Been Canceled!"
)
except MessageIdInvalid:
pass
@app.on_cb("setimdb") @app.on_cb("setimdb")
@ -196,14 +176,7 @@ async def imdb_search_id(kueri, message):
) )
) )
buttons.add(*BTN) buttons.add(*BTN)
msg = await k.edit_caption(msg, reply_markup=buttons) await k.edit_caption(msg, reply_markup=buttons)
try:
await msg.wait_for_click(from_user_id=message.from_user.id, timeout=30)
except ListenerTimeout:
try:
await msg.edit_caption("😶‍🌫️ Waktu Habis. Task Telah Dibatalkan!")
except MessageIdInvalid:
pass
except Exception as err: except Exception as err:
await k.edit_caption( await k.edit_caption(
f"Ooppss, gagal mendapatkan daftar judul di IMDb. Mungkin terkena rate limit atau down.\n\n<b>ERROR:</b> <code>{err}</code>" f"Ooppss, gagal mendapatkan daftar judul di IMDb. Mungkin terkena rate limit atau down.\n\n<b>ERROR:</b> <code>{err}</code>"
@ -260,14 +233,7 @@ async def imdb_search_en(kueri, message):
) )
) )
buttons.add(*BTN) buttons.add(*BTN)
msg = await k.edit_caption(msg, reply_markup=buttons) await k.edit_caption(msg, reply_markup=buttons)
try:
await msg.wait_for_click(from_user_id=message.from_user.id, timeout=30)
except ListenerTimeout:
try:
await msg.edit_caption("😶‍🌫️ Timeout. Task Has Been Cancelled!")
except MessageIdInvalid:
pass
except Exception as err: except Exception as err:
await k.edit_caption( await k.edit_caption(
f"Failed when requesting movies title. Maybe got rate limit or down.\n\n<b>ERROR:</b> <code>{err}</code>" f"Failed when requesting movies title. Maybe got rate limit or down.\n\n<b>ERROR:</b> <code>{err}</code>"
@ -326,16 +292,7 @@ async def imdbcari(_, query: CallbackQuery):
) )
) )
buttons.add(*BTN) buttons.add(*BTN)
try: 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:
try:
await msg.edit_caption("😶‍🌫️ Waktu Habis. Task Telah Dibatalkan!")
except MessageIdInvalid:
await msg.reply("😶‍🌫️ Waktu Habis. Task Telah Dibatalkan!")
except MessageIdInvalid:
pass
except Exception as err: except Exception as err:
await query.message.edit_caption( await query.message.edit_caption(
f"Ooppss, gagal mendapatkan daftar judul di IMDb. Mungkin terkena rate limit atau down.\n\n<b>ERROR:</b> <code>{err}</code>" f"Ooppss, gagal mendapatkan daftar judul di IMDb. Mungkin terkena rate limit atau down.\n\n<b>ERROR:</b> <code>{err}</code>"
@ -387,16 +344,7 @@ async def imdbcari(_, query: CallbackQuery):
) )
) )
buttons.add(*BTN) buttons.add(*BTN)
try: 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:
try:
await msg.edit_caption("😶‍🌫️ Timeout. Task Has Been Cancelled!")
except MessageIdInvalid:
await msg.reply("😶‍🌫️ Timeout. Task Has Been Cancelled!")
except MessageIdInvalid:
pass
except Exception as err: except Exception as err:
await query.message.edit_caption( await query.message.edit_caption(
f"Failed when requesting movies title. Maybe got rate limit or down.\n\n<b>ERROR:</b> <code>{err}</code>" f"Failed when requesting movies title. Maybe got rate limit or down.\n\n<b>ERROR:</b> <code>{err}</code>"

View file

@ -178,7 +178,7 @@ async def locktypes(_, message):
@app.on_message(filters.text & ~filters.private, group=69) @app.on_message(filters.text & ~filters.private, group=69)
async def url_detector(_, message): async def url_detector(_, message):
user = message.from_user user = message.from_user or message.sender_chat
chat_id = message.chat.id chat_id = message.chat.id
text = message.text.lower().strip() text = message.text.lower().strip()

View file

@ -335,26 +335,21 @@ async def getDataSavefilm21(msg, kueri, CurrentPage, user, strings):
async def getDataLendrive(msg, kueri, CurrentPage, user, strings): async def getDataLendrive(msg, kueri, CurrentPage, user, strings):
if not SCRAP_DICT.get(msg.id): if not SCRAP_DICT.get(msg.id):
try: try:
data = await http.get( if query:
f"{web['lendrive']}/?s={kueri}", headers=headers, follow_redirects=True data = await http.get(f"{web['lendrive']}/?s={query}", headers=headers, follow_redirects=True)
) else:
data = await http.get(web["lendrive"], headers=headers, follow_redirects=True)
except Exception as err: except Exception as err:
await msg.edit_msg(strings("err_getweb").format(err=err)) await msg.edit_msg(strings("err_getweb").format(err=err))
return None, None return None, None
soup = BeautifulSoup(data, "lxml") res = BeautifulSoup(data, "lxml")
lenddata = [] lenddata = []
for o in soup.find_all(class_="bsx"): for o in res.find_all(class_="bsx"):
title = o.find("a")["title"] title = o.find("a")["title"]
link = o.find("a")["href"] link = o.find("a")["href"]
status = o.find(class_="epx").text status = o.find(class_="epx").text if o.find(class_="epx") else "Not Provided by BOT"
kualitas = ( kualitas = o.find(class_="typez TV").text if o.find(class_="typez TV") else o.find(class_="typez BD")
o.find(class_="typez TV").text lenddata.append({"judul": title, "link": link, "quality": kualitas, "status": status})
if o.find(class_="typez TV")
else o.find(class_="typez BD")
)
lenddata.append(
{"judul": title, "link": link, "quality": kualitas, "status": status}
)
if not lenddata: if not lenddata:
await msg.edit_msg(strings("no_result"), del_in=5) await msg.edit_msg(strings("no_result"), del_in=5)
return None, 0, None return None, 0, None