Human readable locks name
BOT_open_sesam/pipeline/head This commit looks good
Details
BOT_open_sesam/pipeline/head This commit looks good
Details
- Теперь названия замков (дверей) на кнопках, отображаемых пользователям, человекочитаемы, все соотношения заполняются в bot_config.json - Поправлен docker-compose.yml, размер логов ограничен тремя файлами по 10M каждыйtest
parent
8582bdca9e
commit
e319ea2e73
|
|
@ -7,5 +7,5 @@
|
||||||
- [x] Создать и парсить json с информацией о пользователях и их номерах
|
- [x] Создать и парсить json с информацией о пользователях и их номерах
|
||||||
~~- [ ] Проверять, является ли пользователь администратором, если является, выводить дополнительную кнопку, предлагающую добавить номер в БД~~
|
~~- [ ] Проверять, является ли пользователь администратором, если является, выводить дополнительную кнопку, предлагающую добавить номер в БД~~
|
||||||
- [x] Изменить json хранящийся локально на запросы к API
|
- [x] Изменить json хранящийся локально на запросы к API
|
||||||
- [ ] Изменить названия комнта в локальном json
|
- [x] Изменить названия комнта в локальном json
|
||||||
- [ ] Ограничить логи внутри докера
|
- [x] Ограничить логи внутри докера
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,22 @@
|
||||||
"bot_token": "",
|
"bot_token": "",
|
||||||
"user_api_url": "https://papi.dataekb.ru/check_access",
|
"user_api_url": "https://papi.dataekb.ru/check_access",
|
||||||
"locks": {
|
"locks": {
|
||||||
"ЦОД418": {
|
"2642686605": {
|
||||||
"ip": "10.9.1.26",
|
"ip": "10.9.1.25",
|
||||||
"pass": "73B15D12"
|
"pass": "F901C40A"
|
||||||
|
},
|
||||||
|
"2642179854": {
|
||||||
|
"ip": "10.9.1.28",
|
||||||
|
"pass": "F901C40A"
|
||||||
},
|
},
|
||||||
"2634952899": {
|
"2634952899": {
|
||||||
"ip": "10.9.1.27",
|
"ip": "10.9.1.27",
|
||||||
"pass": "F901C40A"
|
"pass": "F901C40A"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"locks_map": {
|
||||||
|
"2642686605": "ЦОД3+ЦОД_Т2",
|
||||||
|
"2642179854": "ЭТАЖ_5",
|
||||||
|
"2634952899": "ЭТАЖ_4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,3 +8,8 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./.env:/bot/open_sesam/.env
|
- ./.env:/bot/open_sesam/.env
|
||||||
restart: always
|
restart: always
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,14 @@ from auth import AUTHORIZED_USERS, is_user_auth
|
||||||
from config import config
|
from config import config
|
||||||
|
|
||||||
|
|
||||||
|
def get_lock_code(display_text: str) -> str:
|
||||||
|
locks_map = config.get("locks_map", {})
|
||||||
|
for code, friendly in locks_map.items():
|
||||||
|
if friendly == display_text:
|
||||||
|
return code
|
||||||
|
return display_text
|
||||||
|
|
||||||
|
|
||||||
def register_open_door_handler(dp: Dispatcher):
|
def register_open_door_handler(dp: Dispatcher):
|
||||||
@dp.message()
|
@dp.message()
|
||||||
async def open_door_handler(msg: Message):
|
async def open_door_handler(msg: Message):
|
||||||
|
|
@ -16,14 +24,15 @@ def register_open_door_handler(dp: Dispatcher):
|
||||||
await msg.answer(
|
await msg.answer(
|
||||||
"Доступ запрщен. Необходимо предоставить свой номер телефона."
|
"Доступ запрщен. Необходимо предоставить свой номер телефона."
|
||||||
)
|
)
|
||||||
|
return
|
||||||
|
|
||||||
user_data = AUTHORIZED_USERS.get(user_id)
|
user_data = AUTHORIZED_USERS.get(user_id)
|
||||||
if not user_data:
|
if not user_data:
|
||||||
await msg.answer("Ошибка авторизации пользователя.")
|
await msg.answer("Ошибка авторизации пользователя.")
|
||||||
return
|
return
|
||||||
|
|
||||||
lock_key = msg.text
|
lock_code = get_lock_code(msg.text)
|
||||||
lock_conf = config.get("locks", {}).get(msg.text)
|
lock_conf = config.get("locks", {}).get(lock_code)
|
||||||
if not lock_conf:
|
if not lock_conf:
|
||||||
await msg.answer("Информации по замку не найдено")
|
await msg.answer("Информации по замку не найдено")
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
from aiogram.utils.keyboard import ReplyKeyboardBuilder
|
||||||
from aiogram.types import KeyboardButton
|
from aiogram.types import KeyboardButton
|
||||||
|
from config import config
|
||||||
|
|
||||||
|
|
||||||
def get_locks_keyboard(allowed_locks: list):
|
def get_locks_keyboard(allowed_locks: list):
|
||||||
kb = ReplyKeyboardBuilder()
|
kb = ReplyKeyboardBuilder()
|
||||||
|
locks_map = config.get("locks_map", {})
|
||||||
for lock in allowed_locks:
|
for lock in allowed_locks:
|
||||||
kb.button(text=lock)
|
display_text = locks_map.get(lock, lock)
|
||||||
|
kb.button(text=display_text)
|
||||||
return kb.as_markup(resize_keyboard=True)
|
return kb.as_markup(resize_keyboard=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue