mirror of
https://github.com/TeamPGM/PagerMaid-Pyro.git
synced 2024-11-21 23:08:02 +00:00
🔖 Update to v1.0.2
This commit is contained in:
parent
7767845b64
commit
fade059e80
@ -9,7 +9,7 @@ import pyromod.listen
|
||||
from pyrogram import Client
|
||||
import sys
|
||||
|
||||
pgm_version = "1.0.1"
|
||||
pgm_version = "1.0.2"
|
||||
CMD_LIST = {}
|
||||
module_dir = __path__[0]
|
||||
working_dir = getcwd()
|
||||
@ -17,9 +17,8 @@ working_dir = getcwd()
|
||||
read_context = {}
|
||||
help_messages = {}
|
||||
all_permissions = []
|
||||
scheduler = AsyncIOScheduler()
|
||||
scheduler = AsyncIOScheduler(timezone="Asia/ShangHai")
|
||||
if not scheduler.running:
|
||||
scheduler.configure(timezone="Asia/ShangHai")
|
||||
scheduler.start()
|
||||
logs = getLogger(__name__)
|
||||
logging_format = "%(levelname)s [%(asctime)s] [%(name)s] %(message)s"
|
||||
@ -40,7 +39,12 @@ elif not Config.API_HASH:
|
||||
sys.exit(1)
|
||||
|
||||
start_time = datetime.utcnow()
|
||||
bot = Client("pagermaid", api_id=Config.API_ID, api_hash=Config.API_HASH, ipv6=Config.IPV6, proxy=Config.PROXY)
|
||||
bot = Client("pagermaid",
|
||||
session_string=Config.STRING_SESSION,
|
||||
api_id=Config.API_ID,
|
||||
api_hash=Config.API_HASH,
|
||||
ipv6=Config.IPV6,
|
||||
proxy=Config.PROXY)
|
||||
|
||||
|
||||
async def log(message):
|
||||
|
@ -38,8 +38,6 @@ def listener(**args):
|
||||
is_plugin = args.get('is_plugin', True)
|
||||
incoming = args.get('incoming', False)
|
||||
outgoing = args.get('outgoing', True)
|
||||
owners_only = args.get("owners_only", False)
|
||||
admins_only = args.get("admins_only", False)
|
||||
groups_only = args.get("groups_only", False)
|
||||
privates_only = args.get("privates_only", False)
|
||||
|
||||
|
@ -87,27 +87,12 @@ async def profile(client: Client, message: Message):
|
||||
parameters="(username/uid/reply)")
|
||||
async def block_user(client: Client, message: Message):
|
||||
""" Block a user. """
|
||||
current_chat = message.chat
|
||||
if len(message.parameter) > 1:
|
||||
await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
return
|
||||
if not Config.SILENT:
|
||||
await message.edit(lang('block_process'))
|
||||
user = None
|
||||
# Priority: reply > argument > current_chat
|
||||
if message.reply_to_message: # Reply to a user
|
||||
user = message.reply_to_message.from_user
|
||||
if user:
|
||||
user = user.id
|
||||
if not user and len(message.parameter) == 1: # Argument provided
|
||||
(raw_user,) = message.parameter
|
||||
if raw_user.isnumeric():
|
||||
user = int(raw_user)
|
||||
elif message.entities is not None:
|
||||
if message.entities[0].type == "text_mention":
|
||||
user = message.entities[0].user.id
|
||||
if not user and current_chat.type == "private": # Current chat
|
||||
user = current_chat.id
|
||||
user = message.obtain_user()
|
||||
if not user:
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
try:
|
||||
@ -129,20 +114,7 @@ async def unblock_user(client: Client, message: Message):
|
||||
return
|
||||
if not Config.SILENT:
|
||||
await message.edit(lang('unblock_process'))
|
||||
user = None
|
||||
if message.reply_to_message: # Reply to a user
|
||||
user = message.reply_to_message.from_user
|
||||
if user:
|
||||
user = user.id
|
||||
if not user and len(message.parameter) == 1: # Argument provided
|
||||
(raw_user,) = message.parameter
|
||||
if raw_user.isnumeric():
|
||||
user = int(raw_user)
|
||||
elif message.entities is not None:
|
||||
if message.entities[0].type == "text_mention":
|
||||
user = message.entities[0].user.id
|
||||
if not user and message.chat.type == "private": # Current chat
|
||||
user = message.chat.id
|
||||
user = message.obtain_user()
|
||||
if not user:
|
||||
return await message.edit(f"{lang('error_prefix')}{lang('arg_error')}")
|
||||
try:
|
||||
|
@ -1,6 +1,6 @@
|
||||
from os import sep, remove, mkdir
|
||||
from os.path import exists
|
||||
from typing import List
|
||||
from typing import List, Optional
|
||||
from pyrogram.types import Message
|
||||
from sqlitedict import SqliteDict
|
||||
|
||||
@ -29,12 +29,13 @@ class Message(Message): # noqa
|
||||
arguments: str
|
||||
parameter: List
|
||||
|
||||
async def safe_delete(self, revoke: bool = True):
|
||||
try:
|
||||
return await self._client.delete_messages(
|
||||
chat_id=self.chat.id,
|
||||
message_ids=self.id,
|
||||
revoke=revoke
|
||||
)
|
||||
except Exception as e: # noqa
|
||||
return False
|
||||
def obtain_message(self) -> Optional[str]:
|
||||
""" Obtains a message from either the reply message or command arguments. """
|
||||
return
|
||||
|
||||
def obtain_user(self) -> Optional[int]:
|
||||
""" Obtains a user from either the reply message or command arguments. """
|
||||
return
|
||||
|
||||
async def safe_delete(self, revoke: bool = True) -> None:
|
||||
return
|
||||
|
@ -18,4 +18,4 @@ You should have received a copy of the GNU General Public License
|
||||
along with pyromod. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
from .listen import Client, MessageHandler, Chat, User
|
||||
from .listen import Client, MessageHandler, Chat, User
|
||||
|
@ -160,6 +160,31 @@ class Message(pyrogram.types.Message):
|
||||
except Exception as e: # noqa
|
||||
return False
|
||||
|
||||
@patchable
|
||||
def obtain_message(self) -> Optional[str]:
|
||||
""" Obtains a message from either the reply message or command arguments. """
|
||||
return self.arguments if self.arguments else (self.reply_to_message.text if self.reply_to_message else None)
|
||||
|
||||
@patchable
|
||||
def obtain_user(self) -> Optional[int]:
|
||||
""" Obtains a user from either the reply message or command arguments. """
|
||||
user = None
|
||||
# Priority: reply > argument > current_chat
|
||||
if self.reply_to_message: # Reply to a user
|
||||
user = self.reply_to_message.from_user
|
||||
if user:
|
||||
user = user.id
|
||||
if not user and len(self.parameter) == 1: # Argument provided
|
||||
(raw_user,) = self.parameter
|
||||
if raw_user.isnumeric():
|
||||
user = int(raw_user)
|
||||
elif self.entities is not None:
|
||||
if self.entities[0].type == pyrogram.enums.MessageEntityType.TEXT_MENTION:
|
||||
user = self.entities[0].user.id
|
||||
if not user and self.chat.type == pyrogram.enums.ChatType.PRIVATE: # Current chat
|
||||
user = self.chat.id
|
||||
return user
|
||||
|
||||
@patchable
|
||||
async def edit_text(
|
||||
self,
|
||||
|
50
utils/gensession.py
Normal file
50
utils/gensession.py
Normal file
@ -0,0 +1,50 @@
|
||||
import asyncio
|
||||
import os
|
||||
from sys import executable, exit
|
||||
|
||||
try:
|
||||
from pyrogram.errors import ApiIdInvalid, PhoneNumberInvalid
|
||||
from pyrogram import Client
|
||||
print("Found an existing installation of Pyrogram...\nSuccessfully Imported.")
|
||||
except ImportError:
|
||||
print("Installing Pyrogram...")
|
||||
os.system(f"{executable} -m pip install pyrogram")
|
||||
print("Done. Installed and imported pyrogram.")
|
||||
from pyrogram.errors import ApiIdInvalid, PhoneNumberInvalid
|
||||
from pyrogram import Client
|
||||
|
||||
|
||||
async def main():
|
||||
API_ID = 0
|
||||
try:
|
||||
API_ID = int(input("Please enter your API ID: "))
|
||||
except ValueError:
|
||||
print("APP ID must be an integer.\nQuitting...")
|
||||
exit(0)
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
API_HASH = input("Please enter your API HASH: ")
|
||||
try:
|
||||
async with Client("pagermaid", API_ID, API_HASH) as bot:
|
||||
print("Generating a user session...")
|
||||
await bot.send_message(
|
||||
"me",
|
||||
f"**PagerMaid** `String SESSION`:\n\n`{await bot.export_session_string()}`",
|
||||
)
|
||||
print("Your SESSION has been generated. Check your telegram saved messages!")
|
||||
exit(0)
|
||||
except ApiIdInvalid:
|
||||
print("Your API ID/API HASH combination is invalid. Kindly recheck.\nQuitting...")
|
||||
exit(0)
|
||||
except ValueError:
|
||||
print("API HASH must not be empty!\nQuitting...")
|
||||
exit(0)
|
||||
except PhoneNumberInvalid:
|
||||
print("The phone number is invalid!\nQuitting...")
|
||||
exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(main())
|
@ -252,7 +252,7 @@ debian_require_install() {
|
||||
download_repo() {
|
||||
echo "下载 repository 中 . . ."
|
||||
rm -rf /var/lib/pagermaid >>/dev/null 2>&1
|
||||
git clone https://gitlab.com/Xtao-Labs/pagermaid-modify.git /var/lib/pagermaid >>/dev/null 2>&1
|
||||
git clone https://github.com/TeamPGM/PagerMaid-Pyro.git /var/lib/pagermaid >>/dev/null 2>&1
|
||||
cd /var/lib/pagermaid >>/dev/null 2>&1
|
||||
echo "Hello World!" >/var/lib/pagermaid/public.lock
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user