parent
4239cfb5e4
commit
621ffca6b5
@ -62,14 +62,10 @@ mtp_secret: ""
|
||||
|
||||
# Apt Git source
|
||||
git_source: "https://raw.githubusercontent.com/Xtao-Labs/PagerMaid_Plugins/master/"
|
||||
git_api: "https://api.github.com/repos/Xtao-Labs/PagerMaid-Modify/commits/master"
|
||||
git_ssh: "https://github.com/Xtao-Labs/PagerMaid-Modify.git"
|
||||
|
||||
# Update Notice
|
||||
update_check: "True"
|
||||
update_time: "86400"
|
||||
update_username: "PagerMaid_Modify_bot"
|
||||
update_delete: "True"
|
||||
|
||||
# ipv6
|
||||
ipv6: "False"
|
||||
|
@ -34,7 +34,6 @@ from requests.exceptions import ChunkedEncodingError
|
||||
from requests.exceptions import ConnectionError as ConnectedError
|
||||
from asyncio import CancelledError as CancelError
|
||||
from asyncio import TimeoutError as AsyncTimeoutError
|
||||
from aiohttp.client_exceptions import ServerDisconnectedError
|
||||
from sqlite3 import OperationalError
|
||||
from http.client import RemoteDisconnected
|
||||
from urllib.error import URLError
|
||||
@ -282,7 +281,7 @@ def before_send(event, hint):
|
||||
OSError, AuthKeyDuplicatedError, ResponseError, SlowModeWaitError,
|
||||
PeerFloodError, MessageEditTimeExpiredError, PeerIdInvalidError,
|
||||
AuthKeyUnregisteredError, UserBannedInChannelError, AuthKeyError,
|
||||
CancelError, AsyncTimeoutError, ServerDisconnectedError)):
|
||||
CancelError, AsyncTimeoutError)):
|
||||
return
|
||||
elif exc_info and isinstance(exc_info[1], UserDeactivatedBanError):
|
||||
# The user has been deleted/deactivated
|
||||
|
@ -62,14 +62,10 @@ mtp_secret: ""
|
||||
|
||||
# Apt Git source
|
||||
git_source: "https://raw.githubusercontent.com/Xtao-Labs/PagerMaid_Plugins/master/"
|
||||
git_api: "https://api.github.com/repos/Xtao-Labs/PagerMaid-Modify/commits/master"
|
||||
git_ssh: "https://github.com/Xtao-Labs/PagerMaid-Modify.git"
|
||||
|
||||
# Update Notice
|
||||
update_check: "True"
|
||||
update_time: "86400"
|
||||
update_username: "PagerMaid_Modify_bot"
|
||||
update_delete: "True"
|
||||
|
||||
# ipv6
|
||||
ipv6: "False"
|
||||
@ -91,3 +87,6 @@ start_form: "%m/%d %H:%M"
|
||||
bot_admins:
|
||||
- example1
|
||||
- example2
|
||||
|
||||
# Silent to reduce editing times
|
||||
silent: "True"
|
||||
|
@ -10,7 +10,7 @@ from telethon.tl.types import ChannelForbidden
|
||||
|
||||
from pagermaid import bot, log, config
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import lang, alias_command, get
|
||||
from pagermaid.utils import lang, alias_command, client
|
||||
|
||||
|
||||
def isfloat(value):
|
||||
@ -247,12 +247,12 @@ async def hitokoto(context):
|
||||
hitokoto_while = 1
|
||||
hitokoto_json = None
|
||||
try:
|
||||
hitokoto_json = (await get("https://v1.hitokoto.cn/?charset=utf-8")).json()
|
||||
hitokoto_json = (await client.get("https://v1.hitokoto.cn/?charset=utf-8")).json()
|
||||
except ValueError:
|
||||
while hitokoto_while < 10:
|
||||
hitokoto_while += 1
|
||||
try:
|
||||
hitokoto_json = (await get("https://v1.hitokoto.cn/?charset=utf-8")).json()
|
||||
hitokoto_json = (await client.get("https://v1.hitokoto.cn/?charset=utf-8")).json()
|
||||
break
|
||||
except:
|
||||
continue
|
||||
|
@ -8,7 +8,7 @@ from shutil import copyfile, move
|
||||
from glob import glob
|
||||
from pagermaid import log, working_dir, config
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import upload_attachment, lang, alias_command, get
|
||||
from pagermaid.utils import upload_attachment, lang, alias_command, client
|
||||
from pagermaid.modules import plugin_list as active_plugins, __list_plugins
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ def remove_plugin(name):
|
||||
|
||||
|
||||
async def download(name):
|
||||
html = await get(f'{git_source}{name}.py')
|
||||
html = await client.get(f'{git_source}{name}.py')
|
||||
with open(f'plugins/{name}.py', mode='wb') as f:
|
||||
f.write(html.text.encode('utf-8'))
|
||||
return f'plugins/{name}.py'
|
||||
@ -94,7 +94,7 @@ async def plugin(context):
|
||||
success_list = []
|
||||
failed_list = []
|
||||
noneed_list = []
|
||||
plugin_list = await get(f"{git_source}list.json")
|
||||
plugin_list = await client.get(f"{git_source}list.json")
|
||||
plugin_list = plugin_list.json()['list']
|
||||
for i in process_list:
|
||||
if exists(f"{plugin_directory}version.json"):
|
||||
@ -260,7 +260,7 @@ async def plugin(context):
|
||||
return
|
||||
with open(f"{plugin_directory}version.json", 'r', encoding="utf-8") as f:
|
||||
version_json = json.load(f)
|
||||
plugin_list = await get(f"{git_source}list.json")
|
||||
plugin_list = await client.get(f"{git_source}list.json")
|
||||
plugin_online = plugin_list.json()['list']
|
||||
for key, value in version_json.items():
|
||||
if value == "0.0":
|
||||
@ -304,7 +304,7 @@ async def plugin(context):
|
||||
elif len(context.parameter) == 2:
|
||||
search_result = []
|
||||
plugin_name = context.parameter[1]
|
||||
plugin_list = await get(f"{git_source}list.json")
|
||||
plugin_list = await client.get(f"{git_source}list.json")
|
||||
plugin_online = plugin_list.json()['list']
|
||||
for i in plugin_online:
|
||||
if search(plugin_name, i['name'], I):
|
||||
@ -321,7 +321,7 @@ async def plugin(context):
|
||||
elif len(context.parameter) == 2:
|
||||
search_result = ''
|
||||
plugin_name = context.parameter[1]
|
||||
plugin_list = await get(f"{git_source}list.json")
|
||||
plugin_list = await client.get(f"{git_source}list.json")
|
||||
plugin_online = plugin_list.json()['list']
|
||||
for i in plugin_online:
|
||||
if plugin_name == i['name']:
|
||||
@ -350,7 +350,7 @@ async def plugin(context):
|
||||
list_plugin = []
|
||||
with open(f"{plugin_directory}version.json", 'r', encoding="utf-8") as f:
|
||||
version_json = json.load(f)
|
||||
plugin_list = await get(f"{git_source}list.json")
|
||||
plugin_list = await client.get(f"{git_source}list.json")
|
||||
plugin_online = plugin_list.json()['list']
|
||||
for key, value in version_json.items():
|
||||
if value == "0.0":
|
||||
|
@ -16,9 +16,9 @@ from re import sub, findall
|
||||
from requests import get
|
||||
from pathlib import Path
|
||||
from pagermaid import log, config, redis_status, start_time, silent
|
||||
from pagermaid.utils import execute, upload_attachment
|
||||
from pagermaid.utils import execute, upload_attachment, lang, alias_command
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import lang, alias_command
|
||||
|
||||
|
||||
DCs = {
|
||||
1: "149.154.175.50",
|
||||
|
@ -12,7 +12,7 @@ from PIL import Image, ImageOps
|
||||
from math import floor
|
||||
from pagermaid import bot, redis, redis_status, silent
|
||||
from pagermaid.listener import listener
|
||||
from pagermaid.utils import lang, alias_command, get
|
||||
from pagermaid.utils import lang, alias_command, client
|
||||
from pagermaid import log
|
||||
|
||||
|
||||
@ -337,12 +337,12 @@ async def single_sticker(animated, context, custom_emoji, emoji, message, pic_ro
|
||||
command = '/newanimated'
|
||||
|
||||
try:
|
||||
response = await get(f'https://t.me/addstickers/{pack_name}')
|
||||
response = await client.get(f'https://t.me/addstickers/{pack_name}')
|
||||
except UnicodeEncodeError:
|
||||
pack_name = 's' + hex(context.sender_id)[2:]
|
||||
if animated:
|
||||
pack_name = 's' + hex(context.sender_id)[2:] + '_animated'
|
||||
response = await get(f'https://t.me/addstickers/{pack_name}')
|
||||
response = await client.get(f'https://t.me/addstickers/{pack_name}')
|
||||
if not response.status_code == 200:
|
||||
try:
|
||||
await context.edit(lang('sticker_telegram_server_error'))
|
||||
@ -608,7 +608,7 @@ async def sticker_search(context):
|
||||
await context.edit(lang('google_processing'))
|
||||
query = context.parameter[0]
|
||||
try:
|
||||
html = (await get("https://combot.org/telegram/stickers?q=" + query)).text
|
||||
html = (await client.get("https://combot.org/telegram/stickers?q=" + query)).text
|
||||
except:
|
||||
return await context.edit(lang('sticker_telegram_server_error'))
|
||||
xml = BeautifulSoup(html, "lxml")
|
||||
|
@ -1,5 +1,5 @@
|
||||
""" Libraries for python modules. """
|
||||
import aiohttp
|
||||
import httpx
|
||||
import subprocess
|
||||
|
||||
from importlib.util import find_spec
|
||||
@ -7,13 +7,11 @@ from sys import executable
|
||||
|
||||
from os import remove
|
||||
from os.path import exists
|
||||
from typing import Any, Optional
|
||||
from typing import Optional
|
||||
|
||||
from emoji import get_emoji_regexp
|
||||
from random import choice
|
||||
from json import load as load_json
|
||||
from json import loads as loads_json
|
||||
from json import dumps as dumps_json
|
||||
from re import sub, IGNORECASE
|
||||
from asyncio import create_subprocess_shell
|
||||
from asyncio.subprocess import PIPE
|
||||
@ -25,25 +23,6 @@ from pagermaid import module_dir, bot, lang_dict, alias_dict, user_bot, config,
|
||||
http_port
|
||||
|
||||
|
||||
class AiohttpResp:
|
||||
"""
|
||||
重写返回类型。
|
||||
"""
|
||||
def __init__(self, text: Any, content: bytes, status_code: int):
|
||||
"""
|
||||
Args:
|
||||
text (Any): 网页内容
|
||||
content (bytes): 文件内容
|
||||
status_code (int): 网页状态码
|
||||
"""
|
||||
self.text = text
|
||||
self.content = content
|
||||
self.status_code = status_code
|
||||
|
||||
def json(self):
|
||||
return loads_json(self.text)
|
||||
|
||||
|
||||
def lang(text: str) -> str:
|
||||
""" i18n """
|
||||
result = lang_dict.get(text, text)
|
||||
@ -250,97 +229,15 @@ async def admin_check(event):
|
||||
return False
|
||||
|
||||
|
||||
async def request(method: str,
|
||||
url: str,
|
||||
params: dict = None,
|
||||
data: Any = None,
|
||||
json_body: bool = False,
|
||||
timeout: int = 10,
|
||||
**kwargs) -> AiohttpResp:
|
||||
"""
|
||||
原始网络请求封装。
|
||||
Args:
|
||||
method (str) : 请求方法。
|
||||
url (str) : 请求 URL。
|
||||
params (dict, optional) : 请求参数。
|
||||
data (Any, optional) : 请求载荷。
|
||||
json_body (bool, optional) : 载荷是否为 JSON
|
||||
timeout (int, optional) : 超时时间
|
||||
Returns:
|
||||
返回 aiohttp 请求对象
|
||||
"""
|
||||
method = method.upper()
|
||||
|
||||
# 使用自定义 UA
|
||||
DEFAULT_HEADERS = {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
|
||||
}
|
||||
headers = DEFAULT_HEADERS
|
||||
|
||||
if params is None:
|
||||
params = {}
|
||||
|
||||
# 合并参数
|
||||
config_ = {
|
||||
"method": method,
|
||||
"url": url,
|
||||
"params": params,
|
||||
"data": data,
|
||||
"headers": headers,
|
||||
}
|
||||
# 支持自定义参数
|
||||
config_.update(kwargs)
|
||||
|
||||
if json_body:
|
||||
config_["headers"]["Content-Type"] = "application/json"
|
||||
config_["data"] = dumps_json(config_["data"])
|
||||
# 如果用户提供代理则设置代理
|
||||
if not proxy_addr == '' and not proxy_port == '':
|
||||
config_["proxy"] = f"socks5://{proxy_addr}:{proxy_port}"
|
||||
elif not http_addr == '' and not http_port == '':
|
||||
config_["proxy"] = f"http://{http_addr}:{http_port}"
|
||||
session = aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=timeout))
|
||||
resp = await session.request(**config_)
|
||||
await session.close()
|
||||
# 返回请求
|
||||
try:
|
||||
resp_data = await resp.text()
|
||||
except UnicodeDecodeError:
|
||||
resp_data = await resp.read()
|
||||
content = await resp.content.read()
|
||||
status_code = resp.status
|
||||
return AiohttpResp(resp_data, content, status_code)
|
||||
|
||||
|
||||
async def get(url: str, timeout: int = 10, **kwargs) -> AiohttpResp:
|
||||
"""
|
||||
GET 请求封装
|
||||
Args:
|
||||
url (str) : 请求 URL。
|
||||
timeout (int, optional) : 超时时间
|
||||
Returns:
|
||||
返回 aiohttp 请求对象
|
||||
:rtype :aiohttp.client_reqrep.ClientResponse
|
||||
"""
|
||||
return await request("GET", url, timeout=timeout, **kwargs)
|
||||
|
||||
|
||||
async def post(url: str,
|
||||
params: dict = None,
|
||||
data: Any = None,
|
||||
json_body: bool = False,
|
||||
timeout: int = 10,
|
||||
**kwargs) -> AiohttpResp:
|
||||
"""
|
||||
POST 请求封装
|
||||
Args:
|
||||
url (str) : 请求 URL。
|
||||
params (dict, optional) : 请求参数。
|
||||
data (Any, optional) : 请求载荷。
|
||||
json_body (bool, optional) : 载荷是否为 JSON
|
||||
timeout (int, optional) : 超时时间
|
||||
Returns:
|
||||
返回 aiohttp 请求对象
|
||||
:rtype :aiohttp.client_reqrep.ClientResponse
|
||||
"""
|
||||
return await request("POST", url, params, data, json_body, timeout, **kwargs)
|
||||
""" Init httpx client """
|
||||
# 使用自定义 UA
|
||||
headers = {
|
||||
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
|
||||
}
|
||||
# 如果用户提供代理则设置代理
|
||||
proxies = None
|
||||
if not proxy_addr == '' and not proxy_port == '':
|
||||
proxies = f"socks5://{proxy_addr}:{proxy_port}"
|
||||
elif not http_addr == '' and not http_port == '':
|
||||
proxies = f"http://{http_addr}:{http_port}"
|
||||
client = httpx.AsyncClient(proxies=proxies, timeout=10.0, headers=headers)
|
||||
|
@ -9,7 +9,7 @@ PyYAML>=5.4.1
|
||||
redis>=3.5.3
|
||||
coloredlogs>=15.0.1
|
||||
requests[socks]>=2.25.1
|
||||
aiohttp>=3.8.1
|
||||
httpx[socks]>=0.21.3
|
||||
pytz>=2021.1
|
||||
cowpy>=1.1.0
|
||||
googletrans>=4.0.0-rc1
|
||||
|
Loading…
Reference in New Issue
Block a user