requests modul was removed
BOT_open_sesam/pipeline/head This commit looks good Details

Удален модуль requests, обновлен README
test
dl 2025-05-29 17:54:23 +05:00
parent 3b5ac43c30
commit 65e95b8eb2
5 changed files with 24 additions and 43 deletions

View File

@ -1,3 +1,13 @@
# USAGE
Для развертывания бота необходимо внести свой токен в файл
.env, запись должна иметь вид: BOT_TOKEN=your_token.
Для того чтобы пользователь мог пользоваться ботом, ему
необходимо поделиться номером телефона нажав на соответствующую
кнопку (номер не будет виден другим пользователям, используется
отправляется единожды для сверки с данными в БД).
# TODO
- [x] Написать базовый функционал
@ -10,3 +20,4 @@
- [x] Изменить названия комнта в локальном json
- [x] Ограничить логи внутри докера
- [x] Избавиться от json файла, переместить токен в .env файл, информацию от замков получать через запрос по API
- [x] Избавиться от модуля requests

View File

@ -1,23 +0,0 @@
{
"bot_token": "",
"user_api_url": "https://papi.dataekb.ru/check_access",
"locks": {
"2642686605": {
"ip": "10.9.1.25",
"pass": "F901C40A"
},
"2642179854": {
"ip": "10.9.1.28",
"pass": "F901C40A"
},
"2634952899": {
"ip": "10.9.1.27",
"pass": "F901C40A"
}
},
"locks_map": {
"2642686605": ОД3+ЦОД_Т2",
"2642179854": ТАЖ_5",
"2634952899": ТАЖ_4"
}
}

View File

@ -1,6 +1,4 @@
import asyncio
import requests
import aiohttp
from aiogram import Dispatcher
from aiogram.types import Message
@ -27,24 +25,20 @@ def register_open_door_handler(dp: Dispatcher):
return
url = f"http://{lock_info['ip']}/cgi-bin/ext"
auth_info = ("ext", lock_info["code"])
auth_info = aiohttp.BasicAuth(login="ext", password=lock_info["code"])
payload = f"CARD={user_data['card']}&DIR=0"
headers = {"Content-Type": "application/x-www-form-urlencoded"}
try:
response = await asyncio.to_thread(
requests.post,
url,
auth=auth_info,
data=payload,
headers=headers,
timeout=5,
)
if response.status_code == 200:
async with aiohttp.ClientSession() as session:
async with session.post(
url, auth=auth_info, data=payload, headers=headers, timeout=5
) as response:
if response.status == 200:
await msg.answer("Открыто")
else:
await msg.answer(
f"Ошибка при открытии замка. Код ошибки: {response.status_code}"
f"Ошибка при открытии замка. Код ошибки: {response.status}"
)
except Exception as e:
await msg.answer(f"Исключение: {str(e)}")

View File

@ -20,7 +20,7 @@ async def fetch_locks() -> dict:
if not data or not isinstance(data, list):
print("Неверный формат данных о замках, ожидался список.")
return {}
locks_dict = data[0] # предполагается, что список содержит один словарь
locks_dict = data[0]
return locks_dict
except Exception as e:
print(f"Ошибка при разборе данных замков: {str(e)}")

View File

@ -14,7 +14,6 @@ multidict==6.4.3
propcache==0.3.1
pydantic==2.11.3
pydantic_core==2.33.1
requests==2.32.3
typing-inspection==0.4.0
typing_extensions==4.13.2
urllib3==2.4.0