aiohttp, уведомления, правки
This commit is contained in:
@@ -1,36 +1,39 @@
|
||||
import json
|
||||
|
||||
import requests
|
||||
import aiohttp
|
||||
|
||||
from config import SERVERS
|
||||
|
||||
session = None
|
||||
|
||||
def login_with_credentials(server_id: str, username: str, password: str):
|
||||
async def login_with_credentials(server_id: str, username: str, password: str):
|
||||
global session
|
||||
session = requests.Session()
|
||||
session = aiohttp.ClientSession()
|
||||
api_url = SERVERS[server_id]['API_URL']
|
||||
auth_url = f"{api_url}/login/"
|
||||
|
||||
data = {
|
||||
"username": username,
|
||||
"password": password
|
||||
}
|
||||
response = requests.post(auth_url, json=data)
|
||||
if response.status_code == 200:
|
||||
session.cookies.update(response.cookies)
|
||||
return session
|
||||
else:
|
||||
raise Exception(f"Ошибка авторизации: {response.status_code}, {response.text}")
|
||||
|
||||
async with session.post(auth_url, json=data) as response:
|
||||
if response.status == 200:
|
||||
session.cookie_jar.update_cookies(response.cookies)
|
||||
return session
|
||||
else:
|
||||
raise Exception(f"Ошибка авторизации: {response.status}, {await response.text()}")
|
||||
|
||||
def get_clients(session, server_id):
|
||||
|
||||
async def get_clients(session, server_id):
|
||||
api_url = SERVERS[server_id]['API_URL']
|
||||
response = session.get(f'{api_url}/panel/api/inbounds/list/')
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
raise Exception(f"Ошибка при получении клиентов: {response.status_code}, {response.text}")
|
||||
async with session.get(f'{api_url}/panel/api/inbounds/list/') as response:
|
||||
if response.status == 200:
|
||||
return await response.json()
|
||||
else:
|
||||
raise Exception(f"Ошибка при получении клиентов: {response.status}, {await response.text()}")
|
||||
|
||||
def link(session, server_id: str, client_id: str, email: str):
|
||||
|
||||
async def link(session, server_id: str, client_id: str, email: str):
|
||||
"""
|
||||
Получение ссылки для подключения по ID клиента.
|
||||
:param server_id: str - идентификатор сервера
|
||||
@@ -38,7 +41,7 @@ def link(session, server_id: str, client_id: str, email: str):
|
||||
:param email: str - электронная почта клиента
|
||||
:return: str - ссылка для подключения
|
||||
"""
|
||||
response = get_clients(session, server_id)
|
||||
response = await get_clients(session, server_id)
|
||||
|
||||
if 'obj' not in response or len(response['obj']) == 0:
|
||||
raise Exception("Не удалось получить данные клиентов.")
|
||||
@@ -51,5 +54,8 @@ def link(session, server_id: str, client_id: str, email: str):
|
||||
reality = stream_settings.get('security', 'reality')
|
||||
flow = stream_settings.get('flow', 'xtls-rprx-vision')
|
||||
|
||||
val = f"vless://{client_id}@{SERVERS[server_id]['DOMEN']}?type={tcp}&security={reality}&pbk={SERVERS[server_id]['PBK']}&fp=chrome&sni={SERVERS[server_id]['SNI']}&sid={SERVERS[server_id]['SID']}=%2F&flow={flow}#{SERVERS[server_id]['PREFIX']}-{email}"
|
||||
val = (
|
||||
f"vless://{client_id}@{SERVERS[server_id]['DOMEN']}?type={tcp}&security={reality}&pbk={SERVERS[server_id]['PBK']}"
|
||||
f"&fp=chrome&sni={SERVERS[server_id]['SNI']}&sid={SERVERS[server_id]['SID']}=%2F&flow={flow}#{SERVERS[server_id]['PREFIX']}-{email}"
|
||||
)
|
||||
return val
|
||||
|
||||
Reference in New Issue
Block a user