settings application
.env db params+global settings in admin model ECVI plugin module
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import geoip2.database
|
||||
from user_agents import parse
|
||||
from django.db.models import Count
|
||||
from users.models import UserActivityLog
|
||||
from antifroud.models import UserActivityLog
|
||||
|
||||
# Геолокация по IP
|
||||
def get_geolocation(ip):
|
||||
|
||||
@@ -6,7 +6,7 @@ from django.core.management.base import BaseCommand
|
||||
from telegram.ext import Application
|
||||
from bot.utils.bot_setup import setup_bot
|
||||
from scheduler.tasks import load_tasks_to_scheduler
|
||||
|
||||
from settings.models import TelegramSettings
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Запуск Telegram бота и планировщика"
|
||||
@@ -32,12 +32,13 @@ class Command(BaseCommand):
|
||||
return
|
||||
|
||||
# Настройка Telegram бота
|
||||
bot_token = os.getenv("TELEGRAM_BOT_TOKEN")
|
||||
# bot_token = os.getenv("TELEGRAM_BOT_TOKEN")
|
||||
bot_token = TelegramSettings.objects.first().bot_token
|
||||
|
||||
if not bot_token:
|
||||
raise ValueError("Токен бота не найден в переменных окружения.")
|
||||
application = Application.builder().token(bot_token).build()
|
||||
setup_bot(application)
|
||||
|
||||
# Основная асинхронная функция
|
||||
async def main():
|
||||
await application.initialize()
|
||||
|
||||
@@ -75,98 +75,6 @@ async def delete_hotel(update: Update, context):
|
||||
await query.edit_message_text("Отель не найден.")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# async def check_pms(update, context):
|
||||
# query = update.callback_query
|
||||
|
||||
# try:
|
||||
# # Получение hotel_id из callback_data
|
||||
# hotel_id = query.data.split("_")[2]
|
||||
# print(f"Selected hotel id: {hotel_id}")
|
||||
# context.user_data["selected_hotel"] = hotel_id
|
||||
|
||||
# # Инициализация менеджера PMS
|
||||
# pms_manager = PMSIntegrationManager(hotel_id=hotel_id)
|
||||
# print(f"Инициализация PMS менеджера для отеля ID: {hotel_id}")
|
||||
|
||||
# # Загрузка данных отеля
|
||||
# await pms_manager.load_hotel()
|
||||
# print(f"Данные отеля загружены: {pms_manager.hotel}")
|
||||
|
||||
# # Загрузка плагина
|
||||
# pms_manager.load_plugin()
|
||||
# print(f"Плагин загружен: {pms_manager.plugin}")
|
||||
|
||||
# # Получение данных из PMS
|
||||
# data = pms_manager.fetch_data()
|
||||
# print(f"Данные получены из PMS: {len(data)} записей")
|
||||
# # print(f"Полные данные: {data}\n\n\n")
|
||||
|
||||
# # Сохранение лога успешной интеграции
|
||||
# await pms_manager.save_log("success", f"Успешная интеграция с PMS {pms_manager.pms_config.name}.")
|
||||
|
||||
# # Ответ пользователю
|
||||
# await query.edit_message_text(f"Интеграция успешна! Получено {len(data)} записей.")
|
||||
|
||||
# # Обработка данных и запись в БД
|
||||
# await pms_manager.plugin._save_to_db(data, hotel_id=int(hotel_id))
|
||||
# print(f"Данные успешно сохранены в базу данных.")
|
||||
|
||||
# except Exception as e:
|
||||
# # Логирование ошибки
|
||||
# print(f"Ошибка при выполнении check_pms: {e}")
|
||||
# if 'pms_manager' in locals() and pms_manager.hotel:
|
||||
# await pms_manager.save_log("error", str(e))
|
||||
# await query.edit_message_text(f"❌ Ошибка: {e}")
|
||||
|
||||
# async def check_pms(update, context):
|
||||
# query = update.callback_query
|
||||
|
||||
# try:
|
||||
# # Получение ID отеля из callback_data
|
||||
# hotel_id = query.data.split("_")[2]
|
||||
|
||||
# # Получение конфигурации отеля и PMS
|
||||
# hotel = await sync_to_async(Hotel.objects.select_related('pms').get)(id=hotel_id)
|
||||
# pms_config = hotel.pms
|
||||
|
||||
# if not pms_config:
|
||||
# await query.edit_message_text("PMS конфигурация не найдена.")
|
||||
# return
|
||||
|
||||
# # Создаем экземпляр PMSIntegrationManager
|
||||
# pms_manager = PMSIntegrationManager(hotel_id=hotel_id)
|
||||
# await pms_manager.load_hotel()
|
||||
# await sync_to_async(pms_manager.load_plugin)()
|
||||
|
||||
# # Проверяем, какой способ интеграции использовать
|
||||
# if hasattr(pms_manager.plugin, 'fetch_data') and callable(pms_manager.plugin.fetch_data):
|
||||
# # Плагин поддерживает метод fetch_data
|
||||
# data = await pms_manager.plugin.fetch_data()
|
||||
# elif pms_config.api_url and pms_config.token:
|
||||
# # Используем прямой запрос к API
|
||||
# from pms_integration.api_client import APIClient
|
||||
# api_client = APIClient(base_url=pms_config.api_url, access_token=pms_config.token)
|
||||
# data = api_client.fetch_reservations()
|
||||
# else:
|
||||
# # Если подходящий способ не найден
|
||||
# await query.edit_message_text("Подходящий способ интеграции с PMS не найден.")
|
||||
# return
|
||||
|
||||
# # Сохраняем данные в базу
|
||||
# from bot.utils.database import save_reservations
|
||||
# await sync_to_async(save_reservations)(data)
|
||||
|
||||
# # Уведомляем об успешной интеграции
|
||||
# await query.edit_message_text(f"Интеграция PMS {pms_config.name} завершена успешно.")
|
||||
# except Exception as e:
|
||||
# # Обрабатываем и логируем ошибки
|
||||
# await query.edit_message_text(f"❌ Ошибка: {str(e)}")
|
||||
|
||||
|
||||
|
||||
async def check_pms(update, context):
|
||||
query = update.callback_query
|
||||
|
||||
|
||||
Reference in New Issue
Block a user