All checks were successful
Build and Push Docker Images / build (push) Successful in 1m28s
- Рефакторинг Telegram бота на модульную структуру для удобства поддержки и расширения - Создан общий RabbitMQ клиент для Flask и Telegram компонентов - Подготовлена базовая архитектура для будущего масштабирования и новых функций Signed-off-by: UdoChudo <stream@udochudo.ru>
31 lines
1.3 KiB
Python
31 lines
1.3 KiB
Python
# app/bot/utils/regions.py
|
|
from typing import List, Dict
|
|
|
|
from app.models import Regions
|
|
|
|
def get_sorted_regions():
|
|
"""
|
|
Получить отсортированный список регионов (из базы, например).
|
|
"""
|
|
# Здесь предполагается, что вызывающий код находится в контексте Flask (app.app_context())
|
|
return Regions.query.filter(Regions.active == True).order_by(Regions.region_id).all()
|
|
|
|
def get_sorted_regions_plain() -> List[Dict[str, str]]:
|
|
regions = Regions.query.filter(Regions.active == True).order_by(Regions.region_id).all()
|
|
return [{"id": r.region_id, "name": r.region_name} for r in regions]
|
|
|
|
def format_regions_list(regions):
|
|
"""
|
|
Форматировать список регионов в удобочитаемый текст
|
|
"""
|
|
lines = []
|
|
for region in regions:
|
|
lines.append(f"✅ {region.region_id}: {region.region_name}")
|
|
return "\n".join(lines)
|
|
|
|
def format_regions_list_marked(regions, subscribed_region_ids):
|
|
lines = []
|
|
for region in regions:
|
|
mark = "✅" if region.region_id in subscribed_region_ids else "❌"
|
|
lines.append(f"{mark} {region.region_id}: {region.region_name}")
|
|
return "\n".join(lines) |