Files
youtube-dl/lib/system/logic_telegram_bot.py
soju6jan 29930fdef7 test
2022-10-02 20:18:05 +09:00

78 lines
2.9 KiB
Python

# -*- coding: utf-8 -*-
#########################################################
# python
import os
import traceback
import logging
import platform
import time
# third-party
from flask import Blueprint, request, Response, send_file, render_template, redirect, jsonify
from framework import F, frame, app, path_app_root, path_data, scheduler
from tool_base import ToolBaseNotify
# 패키지
from .plugin import logger, package_name
from .model import ModelSetting
class SystemLogicTelegramBot(object):
@staticmethod
def process_ajax(sub, req):
try:
if sub == 'telegram_test':
ret = ToolBaseNotify.send_telegram_message(req.form['text'], bot_token=req.form['bot_token'], chat_id=req.form['chat_id'])
return jsonify(ret)
elif sub == 'discord_test':
ret = ToolBaseNotify.send_discord_message(req.form['text'], webhook_url=req.form['url'])
return jsonify(ret)
elif sub == 'advanced_test':
ret = ToolBaseNotify.send_advanced_message(req.form['text'], policy=req.form['policy'], message_id=req.form['message_id'])
return jsonify(ret)
elif sub == 'scheduler':
go = request.form['scheduler']
logger.debug('scheduler :%s', go)
if go == 'true':
SystemLogicTelegramBot.scheduler_start()
else:
SystemLogicTelegramBot.scheduler_stop()
return jsonify(go)
except Exception as exception:
logger.error('Exception:%s', exception)
logger.error(traceback.format_exc())
return jsonify('exception')
@staticmethod
def plugin_load():
try:
if frame.config['run_celery']:
return
if ModelSetting.get_bool('telegram_bot_auto_start'):
SystemLogicTelegramBot.scheduler_start()
except Exception as exception:
logger.error('Exception:%s', exception)
logger.error(traceback.format_exc())
@staticmethod
def scheduler_start():
try:
interval = 60*24
job = Job(package_name, '%s_telegram_bot' % (package_name), 9999, SystemLogicTelegramBot.scheduler_function, u"시스템 - 텔레그램 봇", False)
scheduler.add_job_instance(job)
except Exception as exception:
logger.error('Exception:%s', exception)
logger.error(traceback.format_exc())
@staticmethod
def scheduler_function():
try:
bot_token = ModelSetting.get('telegram_bot_token')
from framework.common.telegram_bot import TelegramBot
TelegramBot.start(bot_token)
except Exception as exception:
logger.error('Exception:%s', exception)
logger.error(traceback.format_exc())