mirror of
https://github.com/TeamPGM/PagerMaid-Pyro.git
synced 2024-11-16 14:21:11 +00:00
🔖 Update to v1.2.9
This commit is contained in:
parent
5ab4f0a54c
commit
d47f117be3
@ -13,7 +13,7 @@ from pagermaid.scheduler import scheduler
|
||||
import pyromod.listen
|
||||
from pyrogram import Client
|
||||
|
||||
pgm_version = "1.2.8"
|
||||
pgm_version = "1.2.9"
|
||||
CMD_LIST = {}
|
||||
module_dir = __path__[0]
|
||||
working_dir = getcwd()
|
||||
|
@ -119,9 +119,6 @@ def listener(**args):
|
||||
def decorator(function):
|
||||
|
||||
async def handler(client: Client, message: Message):
|
||||
message.bot = client
|
||||
message.request = httpx_client
|
||||
|
||||
try:
|
||||
try:
|
||||
parameter = message.matches[0].group(2).split(" ")
|
||||
@ -235,9 +232,6 @@ def raw_listener(filter_s):
|
||||
|
||||
def decorator(function):
|
||||
async def handler(client, message):
|
||||
message.bot = client
|
||||
message.request = httpx_client
|
||||
|
||||
try:
|
||||
if function.__code__.co_argcount == 1:
|
||||
await function(message)
|
||||
|
@ -5,7 +5,8 @@ from pyrogram.types import User
|
||||
|
||||
from pagermaid import Config
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import lang, Message
|
||||
from pagermaid.enums import Message, Client
|
||||
from pagermaid.utils import lang
|
||||
|
||||
import contextlib
|
||||
|
||||
@ -13,7 +14,7 @@ import contextlib
|
||||
@listener(is_plugin=False, command="profile",
|
||||
description=lang('profile_des'),
|
||||
parameters="<username>")
|
||||
async def profile(message: Message):
|
||||
async def profile(client: Client, message: Message):
|
||||
""" Queries profile of a user. """
|
||||
if len(message.parameter) > 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
@ -30,7 +31,7 @@ async def profile(message: Message):
|
||||
if user.isdigit():
|
||||
user = int(user)
|
||||
else:
|
||||
user = await message.bot.get_me()
|
||||
user = await client.get_me()
|
||||
if message.entities is not None:
|
||||
if message.entities[0].type == "text_mention":
|
||||
user = message.entities[0].user
|
||||
@ -40,7 +41,7 @@ async def profile(message: Message):
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
if not isinstance(user, User):
|
||||
try:
|
||||
user = await message.bot.get_users(user)
|
||||
user = await client.get_users(user)
|
||||
except PeerIdInvalid:
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('profile_e_nof')}")
|
||||
except UsernameNotOccupied:
|
||||
@ -67,10 +68,10 @@ async def profile(message: Message):
|
||||
f"{lang('profile_restricted')}: {restricted} \n" \
|
||||
f"{lang('profile_type')}: {user_type} \n" \
|
||||
f"[{first_name}](tg://user?id={user.id})"
|
||||
photo = await message.bot.download_media(user.photo.big_file_id)
|
||||
photo = await client.download_media(user.photo.big_file_id)
|
||||
reply_to = message.reply_to_message
|
||||
try:
|
||||
await message.bot.send_photo(
|
||||
await client.send_photo(
|
||||
message.chat.id,
|
||||
photo,
|
||||
caption=caption,
|
||||
@ -86,7 +87,7 @@ async def profile(message: Message):
|
||||
need_admin=True,
|
||||
description=lang('block_des'),
|
||||
parameters="(username/uid/reply)")
|
||||
async def block_user(message: Message):
|
||||
async def block_user(client: Client, message: Message):
|
||||
""" Block a user. """
|
||||
if len(message.parameter) > 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
@ -97,7 +98,7 @@ async def block_user(message: Message):
|
||||
if not user:
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
with contextlib.suppress(Exception):
|
||||
if await message.bot.block_user(user):
|
||||
if await client.block_user(user):
|
||||
return await message.edit(f"{lang('block_success')} `{user}`")
|
||||
await message.edit(f"`{user}` {lang('block_exist')}")
|
||||
|
||||
@ -106,7 +107,7 @@ async def block_user(message: Message):
|
||||
need_admin=True,
|
||||
description=lang('unblock_des'),
|
||||
parameters="<username/uid/reply>")
|
||||
async def unblock_user(message: Message):
|
||||
async def unblock_user(client: Client, message: Message):
|
||||
""" Unblock a user. """
|
||||
if len(message.parameter) > 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
@ -117,6 +118,6 @@ async def unblock_user(message: Message):
|
||||
if not user:
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
with contextlib.suppress(Exception):
|
||||
if await message.bot.unblock_user(user):
|
||||
if await client.unblock_user(user):
|
||||
return await message.edit(f"{lang('unblock_success')} `{user}`")
|
||||
await message.edit(f"`{user}` {lang('unblock_exist')}")
|
||||
|
@ -2,19 +2,20 @@
|
||||
|
||||
from pagermaid import log
|
||||
from pagermaid.single_utils import sqlite
|
||||
from pagermaid.utils import lang, Message
|
||||
from pagermaid.utils import lang
|
||||
from pagermaid.enums import Client, Message
|
||||
from pagermaid.listener import listener
|
||||
|
||||
|
||||
@listener(is_plugin=False, outgoing=True, command="ghost",
|
||||
description=lang('ghost_des'),
|
||||
parameters="<true|false|status>")
|
||||
async def ghost(message: Message):
|
||||
async def ghost(client: Client, message: Message):
|
||||
""" Toggles ghosting of a user. """
|
||||
if len(message.parameter) != 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
return
|
||||
myself = await message.bot.get_me()
|
||||
myself = await client.get_me()
|
||||
self_user_id = myself.id
|
||||
if message.parameter[0] == "true":
|
||||
if message.chat.id == self_user_id:
|
||||
@ -45,12 +46,12 @@ async def ghost(message: Message):
|
||||
need_admin=True,
|
||||
description=lang('deny_des'),
|
||||
parameters="<true|false|status>")
|
||||
async def deny(message: Message):
|
||||
async def deny(client: Client, message: Message):
|
||||
""" Toggles denying of a user. """
|
||||
if len(message.parameter) != 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
return
|
||||
myself = await message.bot.get_me()
|
||||
myself = await client.get_me()
|
||||
self_user_id = myself.id
|
||||
if message.parameter[0] == "true":
|
||||
if message.chat.id == self_user_id:
|
||||
@ -78,10 +79,10 @@ async def deny(message: Message):
|
||||
|
||||
|
||||
@listener(is_plugin=False, incoming=True, outgoing=False, ignore_edited=True)
|
||||
async def set_read_acknowledgement(message: Message):
|
||||
async def set_read_acknowledgement(client: Client, message: Message):
|
||||
""" Event handler to infinitely read ghosted messages. """
|
||||
if sqlite.get(f"ghosted.chat_id.{str(message.chat.id)}", None):
|
||||
await message.bot.read_chat_history(message.chat.id)
|
||||
await client.read_chat_history(message.chat.id)
|
||||
|
||||
|
||||
@listener(is_plugin=False, incoming=True, outgoing=False, ignore_edited=True)
|
||||
|
@ -13,7 +13,7 @@ import contextlib
|
||||
@listener(is_plugin=False, outgoing=True, command="prune",
|
||||
need_admin=True,
|
||||
description=lang('prune_des'))
|
||||
async def prune(message: Message):
|
||||
async def prune(client: Client, message: Message):
|
||||
""" Purge every single message after the message you replied to. """
|
||||
if not message.reply_to_message:
|
||||
await message.edit(lang('not_reply'))
|
||||
@ -21,7 +21,8 @@ async def prune(message: Message):
|
||||
input_chat = message.chat.id
|
||||
messages = []
|
||||
count = 0
|
||||
async for msg in message.bot.get_chat_history(input_chat,
|
||||
async for msg in client.get_chat_history(
|
||||
input_chat,
|
||||
limit=message.id - message.reply_to_message.id + 1):
|
||||
if msg.id < message.reply_to_message.id:
|
||||
break
|
||||
@ -30,13 +31,13 @@ async def prune(message: Message):
|
||||
if msg.reply_to_message:
|
||||
messages.append(msg.reply_to_message.id)
|
||||
if len(messages) == 100:
|
||||
await message.bot.delete_messages(input_chat, messages)
|
||||
await client.delete_messages(input_chat, messages)
|
||||
messages = []
|
||||
|
||||
if messages:
|
||||
await message.bot.delete_messages(input_chat, messages)
|
||||
await client.delete_messages(input_chat, messages)
|
||||
await log(f"{lang('prune_hint1')} {str(count)} {lang('prune_hint2')}")
|
||||
notification = await send_prune_notify(message, count, count)
|
||||
notification = await send_prune_notify(client, message, count, count)
|
||||
await sleep(1)
|
||||
await notification.delete()
|
||||
|
||||
@ -67,7 +68,7 @@ async def self_prune(bot: Client, message: Message):
|
||||
msgs.append(msg.id)
|
||||
count_buffer += 1
|
||||
if len(msgs) == 100:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
msgs = []
|
||||
async for msg in bot.search_messages(message.chat.id, from_user="me", offset=offset):
|
||||
if count_buffer == count:
|
||||
@ -75,16 +76,16 @@ async def self_prune(bot: Client, message: Message):
|
||||
msgs.append(msg.id)
|
||||
count_buffer += 1
|
||||
if len(msgs) == 100:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
msgs = []
|
||||
if msgs:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
await log(
|
||||
f"{lang('prune_hint1')}{lang('sp_hint')} {str(count_buffer)} / {count} {lang('prune_hint2')}"
|
||||
)
|
||||
|
||||
with contextlib.suppress(ValueError):
|
||||
notification = await send_prune_notify(message, count_buffer, count)
|
||||
notification = await send_prune_notify(bot, message, count_buffer, count)
|
||||
await sleep(1)
|
||||
await notification.delete()
|
||||
|
||||
@ -119,7 +120,7 @@ async def your_prune(bot: Client, message: Message):
|
||||
msgs.append(msg.id)
|
||||
count_buffer += 1
|
||||
if len(msgs) == 100:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
msgs = []
|
||||
async for msg in bot.search_messages(message.chat.id, from_user=target.from_user.id):
|
||||
if count_buffer == count:
|
||||
@ -127,16 +128,16 @@ async def your_prune(bot: Client, message: Message):
|
||||
count_buffer += 1
|
||||
msgs.append(msg.id)
|
||||
if len(msgs) == 100:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
msgs = []
|
||||
if msgs:
|
||||
await message.bot.delete_messages(message.chat.id, msgs)
|
||||
await bot.delete_messages(message.chat.id, msgs)
|
||||
await log(
|
||||
f"{lang('prune_hint1')}{lang('yp_hint')} {str(count_buffer)} / {count} {lang('prune_hint2')}"
|
||||
)
|
||||
|
||||
with contextlib.suppress(ValueError):
|
||||
notification = await send_prune_notify(message, count_buffer, count)
|
||||
notification = await send_prune_notify(bot, message, count_buffer, count)
|
||||
await sleep(1)
|
||||
await notification.delete()
|
||||
|
||||
@ -155,8 +156,8 @@ async def delete(message: Message):
|
||||
await message.delete()
|
||||
|
||||
|
||||
async def send_prune_notify(message: Message, count_buffer, count):
|
||||
return await message.bot.send_message(
|
||||
async def send_prune_notify(bot: Client, message: Message, count_buffer, count):
|
||||
return await bot.send_message(
|
||||
message.chat.id,
|
||||
f"{lang('spn_deleted')} {str(count_buffer)} / {str(count)} {lang('prune_hint2')}",
|
||||
)
|
||||
|
@ -19,8 +19,9 @@ from shutil import disk_usage
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
from pagermaid import start_time, Config, pgm_version
|
||||
from pagermaid.enums import Client, Message
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import lang, Message, execute
|
||||
from pagermaid.utils import lang, execute
|
||||
|
||||
DCs = {
|
||||
1: "149.154.175.50",
|
||||
@ -84,10 +85,10 @@ async def status(message: Message):
|
||||
|
||||
@listener(is_plugin=False, command="stats",
|
||||
description=lang("stats_des"))
|
||||
async def stats(message: Message):
|
||||
async def stats(client: Client, message: Message):
|
||||
msg = await message.edit(lang("stats_loading"))
|
||||
a, u, g, s, c, b = 0, 0, 0, 0, 0, 0
|
||||
async for dialog in message.bot.get_dialogs():
|
||||
async for dialog in client.get_dialogs():
|
||||
chat_type = dialog.chat.type
|
||||
if chat_type == ChatType.BOT:
|
||||
b += 1
|
||||
@ -141,10 +142,10 @@ async def ping_dc(message: Message):
|
||||
|
||||
@listener(is_plugin=False, command="ping",
|
||||
description=lang("ping_des"))
|
||||
async def ping(message: Message):
|
||||
async def ping(client: Client, message: Message):
|
||||
""" Calculates latency between PagerMaid and Telegram. """
|
||||
start = datetime.now()
|
||||
await message.bot.invoke(Ping(ping_id=0))
|
||||
await client.invoke(Ping(ping_id=0))
|
||||
end = datetime.now()
|
||||
ping_duration = (end - start).microseconds / 1000
|
||||
start = datetime.now()
|
||||
|
@ -3,7 +3,8 @@ from pagermaid.listener import listener
|
||||
from pagermaid.group_manager import add_permission_for_group, Permission, remove_permission_for_group, \
|
||||
add_user_to_group, remove_user_from_group, add_permission_for_user, remove_permission_for_user, \
|
||||
permissions
|
||||
from pagermaid.utils import lang, Message, edit_delete, _status_sudo
|
||||
from pagermaid.enums import Client, Message
|
||||
from pagermaid.utils import lang, edit_delete, _status_sudo
|
||||
from pagermaid.single_utils import get_sudo_list
|
||||
|
||||
|
||||
@ -18,7 +19,7 @@ def from_msg_get_sudo_id(message: Message) -> int:
|
||||
need_admin=True,
|
||||
parameters="{on|off|add|remove|gaddp|gaddu|gdelp|gdelu|glist|uaddp|udelp|list}",
|
||||
description=lang('sudo_des'))
|
||||
async def sudo_change(message: Message):
|
||||
async def sudo_change(client: Client, message: Message):
|
||||
""" To enable or disable sudo of your userbot. """
|
||||
input_str = message.arguments
|
||||
sudo = get_sudo_list()
|
||||
@ -76,10 +77,10 @@ async def sudo_change(message: Message):
|
||||
for i in sudo:
|
||||
try:
|
||||
if i > 0:
|
||||
user = await message.bot.get_users(i)
|
||||
user = await client.get_users(i)
|
||||
text += f"• {user.mention()} - {' '.join(permissions.get_roles_for_user(str(i)))}\n"
|
||||
else:
|
||||
chat = await message.bot.get_chat(i)
|
||||
chat = await client.get_chat(i)
|
||||
text += f"• {chat.title} - {' '.join(permissions.get_roles_for_user(str(i)))}\n"
|
||||
for j in permissions.get_permissions_for_user(str(i)):
|
||||
text += f" • {'-' if j[2] == 'ejection' else ''}{j[1]}\n"
|
||||
|
@ -58,8 +58,6 @@ class Client(Client): # noqa
|
||||
class Message(Message): # noqa
|
||||
arguments: str
|
||||
parameter: List
|
||||
bot: Client
|
||||
request: Optional[AsyncClient] = None
|
||||
|
||||
def obtain_message(self) -> Optional[str]:
|
||||
""" Obtains a message from either the reply message or command arguments. """
|
||||
|
Loading…
Reference in New Issue
Block a user