78 lines
2.9 KiB
Python
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()) |