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
|
# TODO
|
||||||
|
|
||||||
- [x] Написать базовый функционал
|
- [x] Написать базовый функционал
|
||||||
|
|
@ -10,3 +20,4 @@
|
||||||
- [x] Изменить названия комнта в локальном json
|
- [x] Изменить названия комнта в локальном json
|
||||||
- [x] Ограничить логи внутри докера
|
- [x] Ограничить логи внутри докера
|
||||||
- [x] Избавиться от json файла, переместить токен в .env файл, информацию от замков получать через запрос по API
|
- [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 aiohttp
|
||||||
import requests
|
|
||||||
|
|
||||||
from aiogram import Dispatcher
|
from aiogram import Dispatcher
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
|
|
||||||
|
|
@ -27,24 +25,20 @@ def register_open_door_handler(dp: Dispatcher):
|
||||||
return
|
return
|
||||||
|
|
||||||
url = f"http://{lock_info['ip']}/cgi-bin/ext"
|
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"
|
payload = f"CARD={user_data['card']}&DIR=0"
|
||||||
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = await asyncio.to_thread(
|
async with aiohttp.ClientSession() as session:
|
||||||
requests.post,
|
async with session.post(
|
||||||
url,
|
url, auth=auth_info, data=payload, headers=headers, timeout=5
|
||||||
auth=auth_info,
|
) as response:
|
||||||
data=payload,
|
if response.status == 200:
|
||||||
headers=headers,
|
await msg.answer("Открыто")
|
||||||
timeout=5,
|
else:
|
||||||
)
|
await msg.answer(
|
||||||
if response.status_code == 200:
|
f"Ошибка при открытии замка. Код ошибки: {response.status}"
|
||||||
await msg.answer("Открыто")
|
)
|
||||||
else:
|
|
||||||
await msg.answer(
|
|
||||||
f"Ошибка при открытии замка. Код ошибки: {response.status_code}"
|
|
||||||
)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await msg.answer(f"Исключение: {str(e)}")
|
await msg.answer(f"Исключение: {str(e)}")
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ async def fetch_locks() -> dict:
|
||||||
if not data or not isinstance(data, list):
|
if not data or not isinstance(data, list):
|
||||||
print("Неверный формат данных о замках, ожидался список.")
|
print("Неверный формат данных о замках, ожидался список.")
|
||||||
return {}
|
return {}
|
||||||
locks_dict = data[0] # предполагается, что список содержит один словарь
|
locks_dict = data[0]
|
||||||
return locks_dict
|
return locks_dict
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Ошибка при разборе данных замков: {str(e)}")
|
print(f"Ошибка при разборе данных замков: {str(e)}")
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ multidict==6.4.3
|
||||||
propcache==0.3.1
|
propcache==0.3.1
|
||||||
pydantic==2.11.3
|
pydantic==2.11.3
|
||||||
pydantic_core==2.33.1
|
pydantic_core==2.33.1
|
||||||
requests==2.32.3
|
|
||||||
typing-inspection==0.4.0
|
typing-inspection==0.4.0
|
||||||
typing_extensions==4.13.2
|
typing_extensions==4.13.2
|
||||||
urllib3==2.4.0
|
urllib3==2.4.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue