diff --git a/misskaty/__init__.py b/misskaty/__init__.py
index 032fb16f..8335a406 100644
--- a/misskaty/__init__.py
+++ b/misskaty/__init__.py
@@ -24,7 +24,7 @@ from misskaty.vars import (
basicConfig(
level=INFO,
- format="[%(asctime)s - %(levelname)s] - %(name)s.%(funcName)s - %(message)s",
+ format="[%(levelname)s] - [%(asctime)s - %(name)s - %(message)s] -> [%(module)s:%(lineno)d]",
datefmt="%d-%b-%y %H:%M:%S",
handlers=[
handlers.RotatingFileHandler("MissKatyLogs.txt", mode="w+", maxBytes=1000000),
@@ -41,7 +41,7 @@ MOD_NOLOAD = ["subscene_dl"]
HELPABLE = {}
cleanmode = {}
botStartTime = time.time()
-misskaty_version = "v2.10.13 - Stable"
+misskaty_version = "v2.10.14 - Stable"
# Pyrogram Bot Client
app = Client(
@@ -50,6 +50,10 @@ app = Client(
api_hash=API_HASH,
bot_token=BOT_TOKEN,
mongodb=dict(connection=AsyncClient(DATABASE_URI), remove_peers=False),
+ sleep_threshold=180,
+ app_version="MissKatyPyro Stable",
+ max_concurrent_transmissions=5,
+ workers=50,
)
# Pyrogram UserBot Client
@@ -57,6 +61,7 @@ user = Client(
"YasirUBot",
session_string=USER_SESSION,
mongodb=dict(connection=AsyncClient(DATABASE_URI), remove_peers=False),
+ sleep_threshold=180,
)
jobstores = {
diff --git a/misskaty/plugins/dev.py b/misskaty/plugins/dev.py
index 56478c32..775917f9 100644
--- a/misskaty/plugins/dev.py
+++ b/misskaty/plugins/dev.py
@@ -417,7 +417,7 @@ async def cmd_eval(self: Client, ctx: Message, strings) -> Optional[str]:
"send": send,
"stdout": out_buf,
"traceback": traceback,
- "http": fetch,
+ "fetch": fetch,
"replied": ctx.reply_to_message,
"requests": requests,
"help": _help,
@@ -482,7 +482,7 @@ async def cmd_eval(self: Client, ctx: Message, strings) -> Optional[str]:
else:
await edit_or_reply(
ctx,
- text=final_output,
+ text=f"{final_output}",
parse_mode=enums.ParseMode.HTML,
reply_markup=InlineKeyboardMarkup(
[
diff --git a/misskaty/plugins/genss.py b/misskaty/plugins/genss.py
index 3a153d44..ec240698 100644
--- a/misskaty/plugins/genss.py
+++ b/misskaty/plugins/genss.py
@@ -145,15 +145,15 @@ async def genss(self: Client, ctx: Message, strings):
dc_id = FileId.decode(media.file_id).dc_id
try:
dl = await replied.download(
- file_name="/downloads/",
+ file_name="downloads/",
progress=progress_for_pyrogram,
progress_args=(strings("dl_progress"), process, c_time, dc_id),
)
except FileNotFoundError:
return await process.edit_msg(
- "ERROR: FileNotFound, maybe you're spam bot with same file."
+ "ERROR: FileNotFound."
)
- the_real_download_location = os.path.join("/downloads/", os.path.basename(dl))
+ the_real_download_location = os.path.join("downloads/", os.path.basename(dl))
if the_real_download_location is not None:
try:
await process.edit_msg(
diff --git a/misskaty/plugins/inline_search.py b/misskaty/plugins/inline_search.py
index abb0e1cb..59b56ea8 100644
--- a/misskaty/plugins/inline_search.py
+++ b/misskaty/plugins/inline_search.py
@@ -2,6 +2,7 @@
# * @date 2023-06-21 22:12:27
# * @projectName MissKatyPyro
# * Copyright ©YasirPedia All rights reserved
+import html
import json
import re
import traceback
@@ -228,17 +229,15 @@ async def inline_menu(_, inline_query: InlineQuery):
)
soup = BeautifulSoup(search_results.text, "lxml")
data = []
- for result in soup.find_all("div", class_="kvH3mc BToiNc UK95Uc"):
- link = result.find("div", class_="yuRUbf").find("a").get("href")
- title = result.find("div", class_="yuRUbf").find("h3").get_text()
+ for result in soup.select(".tF2Cxc"):
+ link = result.select_one(".yuRUbf a")["href"]
+ title = result.select_one(".DKV0Md").text
try:
- snippet = result.find(
- "div", class_="VwiC3b yXK7lf MUxGbd yDYNvb lyLwlc lEBKkf"
- ).get_text()
+ snippet = result.select_one("#rso .lyLwlc").text
except:
snippet = "-"
message_text = f"{title}\n"
- message_text += f"Deskription: {snippet}"
+ message_text += f"Deskription: {html.escape(snippet)}"
data.append(
InlineQueryResultArticle(
title=f"{title}",
diff --git a/misskaty/plugins/mediainfo.py b/misskaty/plugins/mediainfo.py
index 3bd6f929..31ff0273 100644
--- a/misskaty/plugins/mediainfo.py
+++ b/misskaty/plugins/mediainfo.py
@@ -46,15 +46,15 @@ async def mediainfo(_, ctx: Message, strings):
dc_id = FileId.decode(file_info.file_id).dc_id
try:
dl = await ctx.reply_to_message.download(
- file_name="/downloads/",
+ file_name="downloads/",
progress=progress_for_pyrogram,
progress_args=(strings("dl_args_text"), process, c_time, dc_id),
)
except FileNotFoundError:
return await process.edit_msg(
- "ERROR: FileNotFound, maybe you're spam bot with same file."
+ "ERROR: FileNotFound."
)
- file_path = path.join("/downloads/", path.basename(dl))
+ file_path = path.join("downloads/", path.basename(dl))
output_ = await runcmd(f'mediainfo "{file_path}"')
out = output_[0] if len(output_) != 0 else None
body_text = f"""
diff --git a/misskaty/plugins/misc_tools.py b/misskaty/plugins/misc_tools.py
index 3fb1b604..88675f82 100644
--- a/misskaty/plugins/misc_tools.py
+++ b/misskaty/plugins/misc_tools.py
@@ -6,6 +6,7 @@
"""
import asyncio
+import html
import httpx
import json
import os
@@ -207,13 +208,11 @@ async def gsearch(_, message):
# collect data
data = []
- for result in soup.find_all("div", class_="kvH3mc BToiNc UK95Uc"):
- link = result.find("div", class_="yuRUbf").find("a").get("href")
- title = result.find("div", class_="yuRUbf").find("h3").get_text()
+ for result in soup.select(".tF2Cxc"):
+ link = result.select_one(".yuRUbf a")["href"]
+ title = result.select_one(".DKV0Md").text
try:
- snippet = result.find(
- "div", class_="VwiC3b yXK7lf MUxGbd yDYNvb lyLwlc lEBKkf"
- ).get_text()
+ snippet = result.select_one("#rso .lyLwlc").text
except:
snippet = "-"
@@ -229,7 +228,7 @@ async def gsearch(_, message):
parse = json.loads(arr)
total = len(parse)
res = "".join(
- f"{i['title']}\n{i['snippet']}\n\n" for i in parse
+ f"{i['title']}\n{html.escape(i['snippet'])}\n\n" for i in parse
)
except Exception:
exc = traceback.format_exc()
diff --git a/misskaty/plugins/ytdl_plugins.py b/misskaty/plugins/ytdl_plugins.py
index 17dc3239..f85e04db 100644
--- a/misskaty/plugins/ytdl_plugins.py
+++ b/misskaty/plugins/ytdl_plugins.py
@@ -218,7 +218,7 @@ async def ytdl_gendl_callback(self: Client, cq: CallbackQuery, strings):
else:
yt_url = True
video_link = f"{YT_VID_URL}{match[1]}"
-
+ LOGGER.info(f"User {cq.from_user.id} using YTDL -> {video_link}")
media_type = "video" if match[3] == "v" else "audio"
uid, _ = ytdl.get_choice_by_id(match[2], media_type, yt_url=yt_url)
key = await ytdl.download(
diff --git a/update.py b/update.py
index 675a317b..dc6a5067 100644
--- a/update.py
+++ b/update.py
@@ -12,7 +12,7 @@ if os.path.exists("MissKatyLogs.txt"):
basicConfig(
level=INFO,
- format="[%(asctime)s - %(levelname)s] - %(name)s.%(funcName)s - %(message)s",
+ format="[%(levelname)s] - [%(asctime)s - %(name)s - %(message)s] -> [%(module)s:%(lineno)d]",
datefmt="%d-%b-%y %H:%M:%S",
handlers=[
handlers.RotatingFileHandler("MissKatyLogs.txt", mode="w+", maxBytes=1000000),