RealtyCalendar plugin

This commit is contained in:
2024-12-24 15:43:43 +09:00
parent 77bf0b8381
commit d5622f41a2
58 changed files with 374 additions and 1714 deletions

View File

@@ -1,16 +1,79 @@
# import os
# import django
# import asyncio
# from apscheduler.schedulers.asyncio import AsyncIOScheduler
# 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 app_settings.models import TelegramSettings
# from touchh.utils.log import CustomLogger
# class Command(BaseCommand):
# help = "Запуск Telegram бота и планировщика"
# def handle(self, *args, **options):
# # Установка Django окружения
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "touchh.settings")
# django.setup()
# # Создаем новый цикл событий
# loop = asyncio.new_event_loop()
# asyncio.set_event_loop(loop)
# # Настройка планировщика
# scheduler = AsyncIOScheduler(event_loop=loop)
# scheduler.start()
# # Загрузка задач в планировщик
# try:
# load_tasks_to_scheduler(scheduler)
# except Exception as e:
# self.stderr.write(f"Ошибка при загрузке задач в планировщик: {e}")
# return
# # Настройка Telegram бота
# # 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()
# await application.start()
# await application.updater.start_polling()
# self.stdout.write(self.style.SUCCESS("Telegram бот и планировщик успешно запущены."))
# try:
# while True:
# await asyncio.sleep(3600)
# except asyncio.CancelledError:
# await application.stop()
# scheduler.shutdown()
# # Запуск асинхронной программы
# try:
# loop.run_until_complete(main())
# except KeyboardInterrupt:
# self.stdout.write(self.style.ERROR("Завершение работы Telegram бота и планировщика"))
# finally:
# loop.close()
import os
import django
import asyncio
from apscheduler.schedulers.asyncio import AsyncIOScheduler
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 app_settings.models import TelegramSettings
from touchh.utils.log import CustomLogger
class Command(BaseCommand):
help = "Запуск Telegram бота и планировщика"
help = "Запуск Telegram бота"
def handle(self, *args, **options):
# Установка Django окружения
@@ -21,42 +84,31 @@ class Command(BaseCommand):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
# Настройка планировщика
scheduler = AsyncIOScheduler(event_loop=loop)
scheduler.start()
# Загрузка задач в планировщик
try:
load_tasks_to_scheduler(scheduler)
except Exception as e:
self.stderr.write(f"Ошибка при загрузке задач в планировщик: {e}")
return
# Настройка Telegram бота
# 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()
await application.start()
await application.updater.start_polling()
self.stdout.write(self.style.SUCCESS("Telegram бот и планировщик успешно запущены."))
self.stdout.write(self.style.SUCCESS("Telegram бот успешно запущен."))
try:
while True:
await asyncio.sleep(3600)
except asyncio.CancelledError:
await application.stop()
scheduler.shutdown()
# Запуск асинхронной программы
try:
loop.run_until_complete(main())
except KeyboardInterrupt:
self.stdout.write(self.style.ERROR("Завершение работы Telegram бота и планировщика"))
self.stdout.write(self.style.ERROR("Завершение работы Telegram бота"))
finally:
loop.close()