requests modul was removed
BOT_open_sesam/pipeline/head This commit looks good
Details
BOT_open_sesam/pipeline/head This commit looks good
Details
Удален модуль requests, обновлен READMEtest
parent
3b5ac43c30
commit
65e95b8eb2
11
README.md
11
README.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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:
|
||||
await msg.answer("Открыто")
|
||||
else:
|
||||
await msg.answer(
|
||||
f"Ошибка при открытии замка. Код ошибки: {response.status_code}"
|
||||
)
|
||||
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}"
|
||||
)
|
||||
except Exception as e:
|
||||
await msg.answer(f"Исключение: {str(e)}")
|
||||
|
|
|
|||
|
|
@ -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)}")
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue