From d00cc0022f71f5eaf88640478fa5654c4968ddd7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 1 Feb 2023 20:30:16 +0000
Subject: [PATCH 1/2] Update dependency sqlalchemy to v2
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 220d6b13..38cbe654 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17,7 +17,7 @@ lxml
textblob==0.17.1
beautifulsoup4
requests
-sqlalchemy==1.3.23
+sqlalchemy==2.0.1
telethon==1.24.0
python-telegram-bot==13.13
pyrogram==2.0.40
From 2c4862efa2b789d8609f0194d7142996c55b3f45 Mon Sep 17 00:00:00 2001
From: Prince <90893568+Awesome-Prince@users.noreply.github.com>
Date: Wed, 1 Feb 2023 20:30:41 +0000
Subject: [PATCH 2/2] Auto Code Formatting
---
NekoRobot/__main__.py | 3 +-
NekoRobot/modules/anime.py | 1 -
NekoRobot/modules/announcements.py | 1 -
NekoRobot/modules/backups.py | 1 -
NekoRobot/modules/blacklistusers.py | 1 -
NekoRobot/modules/connection.py | 7 --
NekoRobot/modules/crypto.py | 1 -
NekoRobot/modules/dbcleanup.py | 1 -
NekoRobot/modules/debug.py | 1 -
NekoRobot/modules/global_bans.py | 2 -
NekoRobot/modules/guess.py | 1 -
NekoRobot/modules/helper_funcs/handlers.py | 1 -
NekoRobot/modules/helper_funcs/miku_misc.py | 1 -
NekoRobot/modules/helper_funcs/msg_types.py | 1 -
.../helper_funcs/telethn/chatstatus.py | 1 -
NekoRobot/modules/imdb.py | 2 -
NekoRobot/modules/inline.py | 1 -
NekoRobot/modules/meme.py | 1 -
NekoRobot/modules/ping.py | 1 -
NekoRobot/modules/reporting.py | 1 -
NekoRobot/modules/sql/cleaner_sql.py | 2 -
NekoRobot/modules/userinfo.py | 4 -
NekoRobot/modules/welcome.py | 3 -
NekoRobot/modules/wish.py | 1 -
NekoRobot/modules/zombie.py | 2 +-
NekoRobot/services/sections.py | 1 -
NekoRobot/services/tasks.py | 1 -
NekoRobot/utils/errors.py | 11 --
NekoRobot/utils/pluginhelpers.py | 116 ------------------
29 files changed, 2 insertions(+), 169 deletions(-)
diff --git a/NekoRobot/__main__.py b/NekoRobot/__main__.py
index b077fbae..1222e64c 100644
--- a/NekoRobot/__main__.py
+++ b/NekoRobot/__main__.py
@@ -346,7 +346,7 @@ def error_handler(update: Update, context: CallbackContext):
def error_callback(_, context: CallbackContext):
try:
raise context.error
- except (BadRequest):
+ except BadRequest:
pass
# remove update.message.chat_id from conversation list
except TimedOut:
@@ -465,7 +465,6 @@ def get_help(update: Update, context: CallbackContext) -> None:
# ONLY send help in PM
if chat.type != chat.PRIVATE:
-
update.effective_message.reply_photo(
HELP_IMG,
HELP_MSG,
diff --git a/NekoRobot/modules/anime.py b/NekoRobot/modules/anime.py
index 29af53a1..dd2c1396 100644
--- a/NekoRobot/modules/anime.py
+++ b/NekoRobot/modules/anime.py
@@ -526,7 +526,6 @@ def site_search(update: Update, context: CallbackContext, site: str):
result = f"Search results for {html.escape(search_query)}
on AnimeKayo
: \n"
for entry in search_result:
-
if entry.text.strip() == "Nothing Found":
result = f"No result found for {html.escape(search_query)}
on AnimeKayo
"
more_results = False
diff --git a/NekoRobot/modules/announcements.py b/NekoRobot/modules/announcements.py
index d52378aa..9edc758f 100644
--- a/NekoRobot/modules/announcements.py
+++ b/NekoRobot/modules/announcements.py
@@ -48,7 +48,6 @@ def chatmemberupdates(update: Update, context: CallbackContext) -> Optional[str]
cause_name = update.chat_member.from_user.mention_html()
member_name = update.chat_member.new_chat_member.user.mention_html()
if oldtitle != newtitle:
-
if str(update.chat_member.from_user.id) == str(bot.id):
return "" # we handle these in their respective modules
if oldtitle is None:
diff --git a/NekoRobot/modules/backups.py b/NekoRobot/modules/backups.py
index db55aec6..44b4287d 100644
--- a/NekoRobot/modules/backups.py
+++ b/NekoRobot/modules/backups.py
@@ -135,7 +135,6 @@ def import_data(update, context):
# TODO: some of that link logic
# NOTE: consider default permissions stuff?
if conn:
-
text = f"Backup fully restored on *{chat_name}*."
else:
text = "Backup fully restored"
diff --git a/NekoRobot/modules/blacklistusers.py b/NekoRobot/modules/blacklistusers.py
index ce5a28c5..87028364 100644
--- a/NekoRobot/modules/blacklistusers.py
+++ b/NekoRobot/modules/blacklistusers.py
@@ -85,7 +85,6 @@ def unbl_user(update: Update, context: CallbackContext) -> str:
message.reply_text("I can't seem to find this user.")
return ""
if sql.is_user_blacklisted(user_id):
-
sql.unblacklist_user(user_id)
message.reply_text("*notices user*")
return f"#UNBLACKLIST\nAdmin: {mention_html(user.id, html.escape(user.first_name))}\nUser: {mention_html(target_user.id, html.escape(target_user.first_name))}"
diff --git a/NekoRobot/modules/connection.py b/NekoRobot/modules/connection.py
index 68c4db39..f47038e6 100644
--- a/NekoRobot/modules/connection.py
+++ b/NekoRobot/modules/connection.py
@@ -41,7 +41,6 @@
@user_admin
@typing_action
def allow_connections(update, context) -> str:
-
chat = update.effective_chat
args = context.args
@@ -87,7 +86,6 @@ def allow_connections(update, context) -> str:
@typing_action
def connection_chat(update, context):
-
chat = update.effective_chat
user = update.effective_user
@@ -111,7 +109,6 @@ def connection_chat(update, context):
@typing_action
def connect_chat(update, context):
-
chat = update.effective_chat
user = update.effective_user
if update.effective_chat.type == "private":
@@ -273,7 +270,6 @@ def connect_chat(update, context):
def disconnect_chat(update, context):
-
if update.effective_chat.type == "private":
if disconnection_status := sql.disconnect(
update.effective_message.from_user.id
@@ -292,7 +288,6 @@ def connected(bot: Bot, update: Update, chat, user_id, need_admin=True):
user = update.effective_user
if chat.type == chat.PRIVATE and sql.get_connected_chat(user_id):
-
conn_id = sql.get_connected_chat(user_id).chat_id
getstatusadmin = bot.get_chat_member(
conn_id,
@@ -353,7 +348,6 @@ def connected(bot: Bot, update: Update, chat, user_id, need_admin=True):
def help_connect_chat(update, context):
-
context.args
if update.effective_message.chat.type != "private":
@@ -363,7 +357,6 @@ def help_connect_chat(update, context):
def connect_button(update, context):
-
query = update.callback_query
chat = update.effective_chat
user = update.effective_user
diff --git a/NekoRobot/modules/crypto.py b/NekoRobot/modules/crypto.py
index ff795764..67244f12 100644
--- a/NekoRobot/modules/crypto.py
+++ b/NekoRobot/modules/crypto.py
@@ -28,7 +28,6 @@ def section(
indent: int = 2,
underline: bool = False,
) -> str:
-
text = (bold_ul(title) + n) if underline else bold(title) + n
for key, value in body.items():
diff --git a/NekoRobot/modules/dbcleanup.py b/NekoRobot/modules/dbcleanup.py
index 56726e81..389f8b92 100644
--- a/NekoRobot/modules/dbcleanup.py
+++ b/NekoRobot/modules/dbcleanup.py
@@ -19,7 +19,6 @@ def get_invalid_chats(update: Update, context: CallbackContext, remove: bool = F
progress_message = None
for chat in chats:
-
if ((100 * chats.index(chat)) / len(chats)) > progress:
progress_bar = f"{progress}% completed in getting invalid chats."
if progress_message:
diff --git a/NekoRobot/modules/debug.py b/NekoRobot/modules/debug.py
index 5845e97c..49c7daa8 100644
--- a/NekoRobot/modules/debug.py
+++ b/NekoRobot/modules/debug.py
@@ -59,7 +59,6 @@ def logs(update: Update, context: CallbackContext):
return
user = update.effective_user
with open("log.txt", "rb") as f:
-
context.bot.send_document(document=f, filename=f.name, chat_id=user.id)
diff --git a/NekoRobot/modules/global_bans.py b/NekoRobot/modules/global_bans.py
index 180ba26c..2d313d94 100644
--- a/NekoRobot/modules/global_bans.py
+++ b/NekoRobot/modules/global_bans.py
@@ -129,7 +129,6 @@ def gban(update: Update, context: CallbackContext):
return
if sql.is_user_gbanned(user_id):
-
if not reason:
message.reply_text(
"This user is already gbanned; I'd change the reason, but you haven't given me one..."
@@ -394,7 +393,6 @@ def gbanlist(update: Update, context: CallbackContext):
def check_and_ban(update, user_id, should_message=True):
-
chat = update.effective_chat # type: Optional[Chat]
try:
sw_ban = sw.get_ban(int(user_id))
diff --git a/NekoRobot/modules/guess.py b/NekoRobot/modules/guess.py
index 73cdb8d7..c7aa5bb9 100644
--- a/NekoRobot/modules/guess.py
+++ b/NekoRobot/modules/guess.py
@@ -7,7 +7,6 @@
@neko.on(events.NewMessage(pattern="/guess ?(.*)"))
async def wish(e):
-
if e.is_reply:
mm = random.randint(1, 100)
lol = await e.get_reply_message()
diff --git a/NekoRobot/modules/helper_funcs/handlers.py b/NekoRobot/modules/helper_funcs/handlers.py
index 62aae50d..09974d6b 100644
--- a/NekoRobot/modules/helper_funcs/handlers.py
+++ b/NekoRobot/modules/helper_funcs/handlers.py
@@ -81,7 +81,6 @@ def check_update(self, update):
if len(fst_word) > 1 and any(
fst_word.startswith(start) for start in CMD_STARTERS
):
-
args = message.text.split()[1:]
command = fst_word[1:].split("@")
command.append(message.bot.username)
diff --git a/NekoRobot/modules/helper_funcs/miku_misc.py b/NekoRobot/modules/helper_funcs/miku_misc.py
index 5a08396b..9568eb28 100644
--- a/NekoRobot/modules/helper_funcs/miku_misc.py
+++ b/NekoRobot/modules/helper_funcs/miku_misc.py
@@ -102,7 +102,6 @@ def article(
reply_markup: InlineKeyboardMarkup = None,
disable_web_page_preview: bool = False,
) -> InlineQueryResultArticle:
-
return InlineQueryResultArticle(
id=uuid4(),
title=title,
diff --git a/NekoRobot/modules/helper_funcs/msg_types.py b/NekoRobot/modules/helper_funcs/msg_types.py
index 59abfb18..6e59fbb1 100644
--- a/NekoRobot/modules/helper_funcs/msg_types.py
+++ b/NekoRobot/modules/helper_funcs/msg_types.py
@@ -166,7 +166,6 @@ def get_welcome_type(msg: Message):
def get_filter_type(msg: Message):
-
if not msg.reply_to_message and msg.text and len(msg.text.split()) >= 3:
content = None
text = msg.text.split(None, 2)[2]
diff --git a/NekoRobot/modules/helper_funcs/telethn/chatstatus.py b/NekoRobot/modules/helper_funcs/telethn/chatstatus.py
index 2aa563f3..2150613f 100644
--- a/NekoRobot/modules/helper_funcs/telethn/chatstatus.py
+++ b/NekoRobot/modules/helper_funcs/telethn/chatstatus.py
@@ -118,7 +118,6 @@ async def can_add_admins(message):
async def can_delete_messages(message):
-
if message.is_private:
return True
if message.chat.admin_rights:
diff --git a/NekoRobot/modules/imdb.py b/NekoRobot/modules/imdb.py
index 89e596b9..6402bb92 100644
--- a/NekoRobot/modules/imdb.py
+++ b/NekoRobot/modules/imdb.py
@@ -13,7 +13,6 @@
async def is_register_admin(chat, user):
if isinstance(chat, (types.InputPeerChannel, types.InputChannel)):
-
return isinstance(
(
await tbot(functions.channels.GetParticipantRequest(chat, user))
@@ -21,7 +20,6 @@ async def is_register_admin(chat, user):
(types.ChannelParticipantAdmin, types.ChannelParticipantCreator),
)
if isinstance(chat, types.InputPeerChat):
-
ui = await tbot.get_peer_id(user)
ps = (
await tbot(functions.messages.GetFullChatRequest(chat.chat_id))
diff --git a/NekoRobot/modules/inline.py b/NekoRobot/modules/inline.py
index 6342e29a..3ab03c53 100644
--- a/NekoRobot/modules/inline.py
+++ b/NekoRobot/modules/inline.py
@@ -472,7 +472,6 @@ def media_query(query: str, update: Update, context: CallbackContext) -> None:
)
)
except Exception as e:
-
kb = InlineKeyboardMarkup(
[
[
diff --git a/NekoRobot/modules/meme.py b/NekoRobot/modules/meme.py
index 920f1a70..57f94163 100644
--- a/NekoRobot/modules/meme.py
+++ b/NekoRobot/modules/meme.py
@@ -162,7 +162,6 @@ def slap(update: Update, context: CallbackContext):
return
if user_id:
-
slapped_user = bot.get_chat(user_id)
user1 = curr_user
user2 = html.escape(slapped_user.first_name)
diff --git a/NekoRobot/modules/ping.py b/NekoRobot/modules/ping.py
index 8c653b8f..6f6c23c3 100644
--- a/NekoRobot/modules/ping.py
+++ b/NekoRobot/modules/ping.py
@@ -71,7 +71,6 @@ def ping_func(to_ping: List[str]) -> List[str]:
ping_result = []
for each_ping in to_ping:
-
start_time = time.time()
site_to_ping = sites_list[each_ping]
r = requests.get(site_to_ping)
diff --git a/NekoRobot/modules/reporting.py b/NekoRobot/modules/reporting.py
index 95bd687b..4902172f 100644
--- a/NekoRobot/modules/reporting.py
+++ b/NekoRobot/modules/reporting.py
@@ -121,7 +121,6 @@ def report(update: Update, context: CallbackContext) -> str:
return ""
if chat.username and chat.type == Chat.SUPERGROUP:
-
reported = f"{mention_html(user.id, user.first_name)} reported {mention_html(reported_user.id, reported_user.first_name)} to the admins!"
msg = (
diff --git a/NekoRobot/modules/sql/cleaner_sql.py b/NekoRobot/modules/sql/cleaner_sql.py
index 235e515a..e913ae72 100644
--- a/NekoRobot/modules/sql/cleaner_sql.py
+++ b/NekoRobot/modules/sql/cleaner_sql.py
@@ -99,7 +99,6 @@ def chat_ignore_command(chat_id, ignore):
ignored = SESSION.query(CleanerBlueTextChat).get((str(chat_id), ignore))
if not ignored:
-
if str(chat_id) not in CLEANER_CHATS:
CLEANER_CHATS.setdefault(
str(chat_id), {"setting": False, "commands": set()}
@@ -121,7 +120,6 @@ def chat_unignore_command(chat_id, unignore):
unignored = SESSION.query(CleanerBlueTextChat).get((str(chat_id), unignore))
if unignored:
-
if str(chat_id) not in CLEANER_CHATS:
CLEANER_CHATS.setdefault(
str(chat_id), {"setting": False, "commands": set()}
diff --git a/NekoRobot/modules/userinfo.py b/NekoRobot/modules/userinfo.py
index d03148f4..4b8a20aa 100644
--- a/NekoRobot/modules/userinfo.py
+++ b/NekoRobot/modules/userinfo.py
@@ -97,7 +97,6 @@ def hpmanager(user):
total_hp = (get_user_num_chats(user.id) + 10) * 10
if not is_user_gbanned(user.id):
-
# Assign new var `new_hp` since we need `total_hp` in
# end to calculate percentage.
new_hp = total_hp
@@ -150,9 +149,7 @@ def get_id(update: Update, context: CallbackContext):
user_id = extract_user(msg, args)
if user_id:
-
if msg.reply_to_message and msg.reply_to_message.forward_from:
-
user1 = message.reply_to_message.from_user
user2 = message.reply_to_message.forward_from
@@ -164,7 +161,6 @@ def get_id(update: Update, context: CallbackContext):
)
else:
-
user = bot.get_chat(user_id)
msg.reply_text(
f"{html.escape(user.first_name)}'s id is {user.id}
.",
diff --git a/NekoRobot/modules/welcome.py b/NekoRobot/modules/welcome.py
index 4adc1875..73087fe7 100644
--- a/NekoRobot/modules/welcome.py
+++ b/NekoRobot/modules/welcome.py
@@ -160,7 +160,6 @@ def new_member(update: Update, context: CallbackContext):
new_members = update.effective_message.new_chat_members
for new_mem in new_members:
-
welcome_log = None
res = None
sent = None
@@ -174,7 +173,6 @@ def new_member(update: Update, context: CallbackContext):
return
if should_welc:
-
reply = update.message.message_id
cleanserv = sql.clean_service(chat.id)
# Clean service welcome
@@ -502,7 +500,6 @@ def left_member(update: Update, context: CallbackContext):
left_mem = update.effective_message.left_chat_member
if left_mem:
-
# Thingy for spamwatched users
if sw is not None:
sw_ban = sw.get_ban(left_mem.id)
diff --git a/NekoRobot/modules/wish.py b/NekoRobot/modules/wish.py
index 53715ac4..c32d89ca 100644
--- a/NekoRobot/modules/wish.py
+++ b/NekoRobot/modules/wish.py
@@ -7,7 +7,6 @@
@neko.on(events.NewMessage(pattern="/wish ?(.*)"))
async def wish(e):
-
if e.is_reply:
mm = random.randint(1, 100)
lol = await e.get_reply_message()
diff --git a/NekoRobot/modules/zombie.py b/NekoRobot/modules/zombie.py
index 2e13be22..c2ba4ab7 100644
--- a/NekoRobot/modules/zombie.py
+++ b/NekoRobot/modules/zombie.py
@@ -60,6 +60,7 @@
OFFICERS = [OWNER_ID] + DEV_USERS + DRAGONS + DEMONS
+
# Check if user has admin rights
async def is_administrator(user_id: int, message):
admin = False
@@ -83,7 +84,6 @@ async def zombies(event):
if con != "clean":
find_zombies = await event.respond("Searching For Zombies...")
async for user in event.client.iter_participants(event.chat_id):
-
if user.deleted:
del_u += 1
await sleep(1)
diff --git a/NekoRobot/services/sections.py b/NekoRobot/services/sections.py
index e19293a9..730f364a 100644
--- a/NekoRobot/services/sections.py
+++ b/NekoRobot/services/sections.py
@@ -14,7 +14,6 @@ def section(
indent: int = 2,
underline: bool = False,
) -> str:
-
text = (bold_ul(title) + n) if underline else bold(title) + n
for key, value in body.items():
diff --git a/NekoRobot/services/tasks.py b/NekoRobot/services/tasks.py
index 8873fc61..0c19f280 100644
--- a/NekoRobot/services/tasks.py
+++ b/NekoRobot/services/tasks.py
@@ -18,7 +18,6 @@ async def add_task(
*args,
**kwargs,
):
-
async with TASKS_LOCK:
global tasks
diff --git a/NekoRobot/utils/errors.py b/NekoRobot/utils/errors.py
index a8e8bbec..98bdeb1a 100644
--- a/NekoRobot/utils/errors.py
+++ b/NekoRobot/utils/errors.py
@@ -35,9 +35,7 @@
def split_limits(text):
-
if len(text) < 2048:
-
return [text]
lines = text.splitlines(True)
@@ -47,19 +45,15 @@ def split_limits(text):
result = []
for line in lines:
-
if len(small_msg) + len(line) < 2048:
-
small_msg += line
else:
-
result.append(small_msg)
small_msg = line
else:
-
result.append(small_msg)
return result
@@ -68,19 +62,15 @@ def split_limits(text):
def capture_err(func):
@wraps(func)
async def capture(client, message, *args, **kwargs):
-
try:
-
return await func(client, message, *args, **kwargs)
except ChatWriteForbidden:
-
await app.leave_chat(message.chat.id)
return
except Exception as err:
-
exc_type, exc_obj, exc_tb = sys.exc_info()
errors = traceback.format_exception(
@@ -99,7 +89,6 @@ async def capture(client, message, *args, **kwargs):
)
for x in error_feedback:
-
await app.send_message(LOG_GROUP_ID, x)
raise err
diff --git a/NekoRobot/utils/pluginhelpers.py b/NekoRobot/utils/pluginhelpers.py
index 30f5c3b3..64e322fd 100644
--- a/NekoRobot/utils/pluginhelpers.py
+++ b/NekoRobot/utils/pluginhelpers.py
@@ -43,7 +43,6 @@
def get_user(message: Message, text: str) -> [int, str, None]:
-
asplit = None if text is None else text.split(" ", 1)
user_s = None
@@ -51,43 +50,35 @@ def get_user(message: Message, text: str) -> [int, str, None]:
reason_ = None
if message.reply_to_message:
-
user_s = message.reply_to_message.from_user.id
reason_ = text or None
elif asplit is None:
-
return None, None
elif len(asplit[0]) > 0:
-
user_s = int(asplit[0]) if asplit[0].isdigit() else asplit[0]
if len(asplit) == 2:
-
reason_ = asplit[1]
return user_s, reason_
async def is_admin(event, user):
-
try:
-
sed = await event.client.get_permissions(event.chat_id, user)
is_mod = bool(sed.is_admin)
except:
-
is_mod = False
return is_mod
def get_readable_time(seconds: int) -> int:
-
count = 0
ping_time = ""
@@ -97,13 +88,11 @@ def get_readable_time(seconds: int) -> int:
time_suffix_list = ["s", "m", "h", "days"]
while count < 4:
-
count += 1
remainder, result = divmod(seconds, 60) if count < 3 else divmod(seconds, 24)
if seconds == 0 and remainder == 0:
-
break
time_list.append(int(result))
@@ -111,11 +100,9 @@ def get_readable_time(seconds: int) -> int:
seconds = int(remainder)
for x in range(len(time_list)):
-
time_list[x] = str(time_list[x]) + time_suffix_list[x]
if len(time_list) == 4:
-
ping_time += time_list.pop() + ", "
time_list.reverse()
@@ -126,7 +113,6 @@ def get_readable_time(seconds: int) -> int:
def time_formatter(milliseconds: int) -> str:
-
seconds, milliseconds = divmod(int(milliseconds), 1000)
minutes, seconds = divmod(seconds, 60)
@@ -147,18 +133,14 @@ def time_formatter(milliseconds: int) -> str:
async def delete_or_pass(message):
-
if message.from_user.id == 1141839926:
-
return message
return await message.delete()
def humanbytes(size):
-
if not size:
-
return ""
power = 2**10
@@ -168,7 +150,6 @@ def humanbytes(size):
dict_power_n = {0: "", 1: "Ki", 2: "Mi", 3: "Gi", 4: "Ti"}
while size > power:
-
size /= power
raised_to_pow += 1
@@ -177,13 +158,11 @@ def humanbytes(size):
async def progress(current, total, message, start, type_of_ps, file_name=None):
-
now = time.time()
diff = now - start
if round(diff % 10.00) == 0 or current == total:
-
percentage = current * 100 / total
speed = current / diff
@@ -191,7 +170,6 @@ async def progress(current, total, message, start, type_of_ps, file_name=None):
elapsed_time = round(diff) * 1000
if elapsed_time == 0:
-
return
time_to_completion = round((total - current) / speed) * 1000
@@ -209,76 +187,58 @@ async def progress(current, total, message, start, type_of_ps, file_name=None):
)
if file_name:
-
try:
-
await message.edit(
"{}\n**File Name:** `{}`\n{}".format(type_of_ps, file_name, tmp)
)
except FloodWait as e:
-
await asyncio.sleep(e.x)
except MessageNotModified:
-
pass
else:
-
try:
-
await message.edit("{}\n{}".format(type_of_ps, tmp))
except FloodWait as e:
-
await asyncio.sleep(e.x)
except MessageNotModified:
-
pass
def get_text(message: Message) -> [None, str]:
-
text_to_return = message.text
if message.text is None:
-
return None
if " " not in text_to_return:
-
return None
try:
-
return message.text.split(None, 1)[1]
except IndexError:
-
return None
async def iter_chats(client):
-
chats = []
async for dialog in client.iter_dialogs():
-
if dialog.chat.type in ["supergroup", "channel"]:
-
chats.append(dialog.chat.id)
return chats
async def fetch_audio(client, message):
-
time.time()
if not message.reply_to_message:
-
await message.reply("`Reply To A Video / Audio.`")
return
@@ -286,13 +246,11 @@ async def fetch_audio(client, message):
warner_stark = message.reply_to_message
if warner_stark.audio is None and warner_stark.video is None:
-
await message.reply("`Format Not Supported`")
return
if warner_stark.video:
-
lel = await message.reply("`Video Detected, Converting To Audio !`")
warner_bros = await message.reply_to_message.download()
@@ -304,7 +262,6 @@ async def fetch_audio(client, message):
final_warner = "friday.mp3"
elif warner_stark.audio:
-
lel = await edit_or_reply(message, "`Download Started !`")
final_warner = await message.reply_to_message.download()
@@ -317,11 +274,8 @@ async def fetch_audio(client, message):
async def edit_or_reply(message, text, parse_mode="md"):
-
if message.from_user.id:
-
if message.reply_to_message:
-
kk = message.reply_to_message.message_id
return await message.reply_text(
@@ -334,7 +288,6 @@ async def edit_or_reply(message, text, parse_mode="md"):
async def runcmd(cmd: str) -> Tuple[str, str, int, int]:
-
"""run command in terminal"""
args = shlex.split(cmd)
@@ -354,7 +307,6 @@ async def runcmd(cmd: str) -> Tuple[str, str, int, int]:
async def convert_to_image(message, client) -> [None, str]:
-
"""Convert Most Media Formats To Raw Image"""
final_path = None
@@ -366,17 +318,13 @@ async def convert_to_image(message, client) -> [None, str]:
or message.reply_to_message.animation
or message.reply_to_message.audio
):
-
return None
if message.reply_to_message.photo:
-
final_path = await message.reply_to_message.download()
elif message.reply_to_message.sticker:
-
if message.reply_to_message.sticker.mime_type == "image/webp":
-
final_path = "webp_to_png_s_proton.png"
path_s = await message.reply_to_message.download()
@@ -386,7 +334,6 @@ async def convert_to_image(message, client) -> [None, str]:
im.save(final_path, "PNG")
else:
-
path_s = await client.download_media(message.reply_to_message)
final_path = "lottie_proton.png"
@@ -398,13 +345,11 @@ async def convert_to_image(message, client) -> [None, str]:
await runcmd(cmd)
elif message.reply_to_message.audio:
-
thumb = message.reply_to_message.audio.thumbs[0].file_id
final_path = await client.download_media(thumb)
elif message.reply_to_message.video or message.reply_to_message.animation:
-
final_path = "fetched_thumb.png"
vid_path = await client.download_media(message.reply_to_message)
@@ -415,25 +360,20 @@ async def convert_to_image(message, client) -> [None, str]:
def get_text(message: Message) -> [None, str]:
-
"""Extract Text From Commands"""
text_to_return = message.text
if message.text is None:
-
return None
if " " not in text_to_return:
-
return None
try:
-
return message.text.split(None, 1)[1]
except IndexError:
-
return None
@@ -443,33 +383,26 @@ def get_text(message: Message) -> [None, str]:
def set(chat_id: Union[str, int], admins_: List[User]):
-
if isinstance(chat_id, int):
-
chat_id = str(chat_id)
admins[chat_id] = admins_
def get(chat_id: Union[str, int]) -> Union[List[User], bool]:
-
if isinstance(chat_id, int):
-
chat_id = str(chat_id)
if chat_id in admins:
-
return admins[chat_id]
return False
async def get_administrators(chat: Chat) -> List[User]:
-
_get = get(chat.id)
if _get:
-
return _get
set(
@@ -482,17 +415,13 @@ async def get_administrators(chat: Chat) -> List[User]:
def admins_only(func: Callable) -> Coroutine:
async def wrapper(client: Client, message: Message):
-
if message.from_user.id == OWNER_ID:
-
return await func(client, message)
admins = await get_administrators(message.chat)
for admin in admins:
-
if admin.id == message.from_user.id:
-
return await func(client, message)
return wrapper
@@ -504,13 +433,10 @@ async def wrapper(client: Client, message: Message):
def capture_err(func):
@wraps(func)
async def capture(client, message, *args, **kwargs):
-
try:
-
return await func(client, message, *args, **kwargs)
except Exception as err:
-
exc_type, exc_obj, exc_tb = sys.exc_info()
errors = traceback.format_exception(
@@ -529,7 +455,6 @@ async def capture(client, message, *args, **kwargs):
)
for x in error_feedback:
-
await pgram.send_message(SUPPORT_CHAT, x)
raise err
@@ -541,94 +466,73 @@ async def capture(client, message, *args, **kwargs):
async def member_permissions(chat_id, user_id):
-
perms = []
member = await pgram.get_chat_member(chat_id, user_id)
if member.can_post_messages:
-
perms.append("can_post_messages")
if member.can_edit_messages:
-
perms.append("can_edit_messages")
if member.can_delete_messages:
-
perms.append("can_delete_messages")
if member.can_restrict_members:
-
perms.append("can_restrict_members")
if member.can_promote_members:
-
perms.append("can_promote_members")
if member.can_change_info:
-
perms.append("can_change_info")
if member.can_invite_users:
-
perms.append("can_invite_users")
if member.can_pin_messages:
-
perms.append("can_pin_messages")
return perms
async def current_chat_permissions(chat_id):
-
perms = []
perm = (await pgram.get_chat(chat_id)).permissions
if perm.can_send_messages:
-
perms.append("can_send_messages")
if perm.can_send_media_messages:
-
perms.append("can_send_media_messages")
if perm.can_send_stickers:
-
perms.append("can_send_stickers")
if perm.can_send_animations:
-
perms.append("can_send_animations")
if perm.can_send_games:
-
perms.append("can_send_games")
if perm.can_use_inline_bots:
-
perms.append("can_use_inline_bots")
if perm.can_add_web_page_previews:
-
perms.append("can_add_web_page_previews")
if perm.can_send_polls:
-
perms.append("can_send_polls")
if perm.can_change_info:
-
perms.append("can_change_info")
if perm.can_invite_users:
-
perms.append("can_invite_users")
if perm.can_pin_messages:
-
perms.append("can_pin_messages")
return perms
@@ -638,11 +542,9 @@ async def current_chat_permissions(chat_id):
def get_url(message_1: Message) -> Union[str, None]:
-
messages = [message_1]
if message_1.reply_to_message:
-
messages.append(message_1.reply_to_message)
text = ""
@@ -652,17 +554,12 @@ def get_url(message_1: Message) -> Union[str, None]:
length = None
for message in messages:
-
if offset:
-
break
if message.entities:
-
for entity in message.entities:
-
if entity.type == "url":
-
text = message.text or message.caption
offset, length = entity.offset, entity.length
@@ -670,29 +567,23 @@ def get_url(message_1: Message) -> Union[str, None]:
break
if offset in (None,):
-
return None
return text[offset : offset + length]
async def fetch(url):
-
async with aiohttp.ClientSession() as session, session.get(url) as resp:
-
try:
-
data = await resp.json()
except Exception:
-
data = await resp.text()
return data
async def convert_seconds_to_minutes(seconds: int):
-
seconds = int(seconds)
seconds %= 24 * 3600
@@ -707,7 +598,6 @@ async def convert_seconds_to_minutes(seconds: int):
async def json_object_prettify(objecc):
-
dicc = objecc.__dict__
return "".join(
@@ -718,21 +608,15 @@ async def json_object_prettify(objecc):
async def json_prettify(data):
-
output = ""
try:
-
for key, value in data.items():
-
output += f"**{key}:** `{value}`\n"
except Exception:
-
for datas in data:
-
for key, value in datas.items():
-
output += f"**{key}:** `{value}`\n"
output += "------------------------\n"