mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-21 07:02:26 +02:00
1. Added Mail Marketing Automation trigger tasks 2. Added Mail Marketing Groups Import, Export, Merge 3. Added Mail Marketing Subscribers to support paste import 4. Added Mail Marketing Template Import Export Duplicate 5. Added Mail server add timed automatic reply 6. Added HTTPS Protection function for Website (disables automatic HTTP to HTTPS redirection when enabled) 7. Optimize Website Interface Button Integration 8. Optimize the response speed of WP Toolkit interface
169 lines
5.5 KiB
Python
169 lines
5.5 KiB
Python
import json
|
|
import os.path
|
|
|
|
from .weixin_msg import WeiXinMsg
|
|
from .mail_msg import MailMsg
|
|
from .web_hook_msg import WebHookMsg
|
|
from .feishu_msg import FeiShuMsg
|
|
from .dingding_msg import DingDingMsg
|
|
from .sms_msg import SMSMsg
|
|
# from .wx_account_msg import WeChatAccountMsg
|
|
from .tg_msg import TgMsg
|
|
from .manager import SenderManager
|
|
from .util import read_file,write_file
|
|
|
|
from mod.base.push_mod import SenderConfig, PUSH_DATA_PATH
|
|
|
|
|
|
# 把旧地告警系统的信息通道更新
|
|
def update_mod_push_msg():
|
|
|
|
if os.path.exists(PUSH_DATA_PATH + "/update_sender.pl"):
|
|
return
|
|
# else:
|
|
# with open(PUSH_DATA_PATH + "/update_sender.pl", "w") as f:
|
|
# f.write("")
|
|
|
|
# WeChatAccountMsg.refresh_config(force=True)
|
|
sms_status = False
|
|
sc = SenderConfig()
|
|
for conf in sc.config:
|
|
if conf["sender_type"] == "sms":
|
|
sms_status = True
|
|
break
|
|
|
|
# sms 取消自动添加
|
|
# if not sms_status:
|
|
# sc.config.append({
|
|
# "id": sc.nwe_id(),
|
|
# "used": True,
|
|
# "sender_type": "sms",
|
|
# "data": {},
|
|
# "original": True # 标记这个通道是该类型 旧有的通道, 同时也是默认通道
|
|
# })
|
|
|
|
panel_data_path = "/www/server/panel/data"
|
|
|
|
# weixin
|
|
if os.path.exists(panel_data_path + "/weixin.json"):
|
|
try:
|
|
weixin_data = json.loads(read_file(panel_data_path + "/weixin.json"))
|
|
except:
|
|
weixin_data = None
|
|
|
|
if isinstance(weixin_data, dict) and "weixin_url" in weixin_data:
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "weixin",
|
|
"data": {
|
|
"url": weixin_data["weixin_url"],
|
|
"title": "weixin" if "title" not in weixin_data else weixin_data["title"]
|
|
},
|
|
"original": True
|
|
})
|
|
|
|
# mail
|
|
stmp_file = panel_data_path + "/stmp_mail.json"
|
|
mail_list_file = panel_data_path + "/mail_list.json"
|
|
if os.path.exists(stmp_file) and os.path.exists(mail_list_file):
|
|
stmp_data = None
|
|
try:
|
|
stmp_data = json.loads(read_file(stmp_file))
|
|
mail_list_data = json.loads(read_file(mail_list_file))
|
|
except:
|
|
mail_list_data = None
|
|
|
|
if isinstance(stmp_data, dict):
|
|
if 'qq_mail' in stmp_data or 'qq_stmp_pwd' in stmp_data or 'hosts' in stmp_data:
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "mail",
|
|
"data": {
|
|
"send": stmp_data,
|
|
"title": "mail",
|
|
"receive": [] if not mail_list_data else mail_list_data,
|
|
},
|
|
"original": True
|
|
})
|
|
|
|
# webhook
|
|
webhook_file = panel_data_path + "/hooks_msg.json"
|
|
if os.path.exists(stmp_file) and os.path.exists(mail_list_file):
|
|
try:
|
|
webhook_data = json.loads(read_file(webhook_file))
|
|
except:
|
|
webhook_data = None
|
|
|
|
if isinstance(webhook_data, list):
|
|
for i in webhook_data:
|
|
i["title"] = i["name"]
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "webhook",
|
|
"data": i,
|
|
})
|
|
|
|
# feishu
|
|
if os.path.exists(panel_data_path + "/feishu.json"):
|
|
try:
|
|
feishu_data = json.loads(read_file(panel_data_path + "/feishu.json"))
|
|
except:
|
|
feishu_data = None
|
|
|
|
if isinstance(feishu_data, dict) and "feishu_url" in feishu_data:
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "feishu",
|
|
"data": {
|
|
"url": feishu_data["feishu_url"],
|
|
"title": "feishu" if "title" not in feishu_data else feishu_data["title"]
|
|
},
|
|
"original": True
|
|
})
|
|
|
|
# dingding
|
|
if os.path.exists(panel_data_path + "/dingding.json"):
|
|
try:
|
|
dingding_data = json.loads(read_file(panel_data_path + "/dingding.json"))
|
|
except:
|
|
dingding_data = None
|
|
|
|
if isinstance(dingding_data, dict) and "dingding_url" in dingding_data:
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "dingding",
|
|
"data": {
|
|
"url": dingding_data["dingding_url"],
|
|
"title": "dingding" if "title" not in dingding_data else dingding_data["title"]
|
|
},
|
|
"original": True
|
|
})
|
|
|
|
# tg
|
|
if os.path.exists(panel_data_path + "/tg_bot.json"):
|
|
try:
|
|
tg_data = json.loads(read_file(panel_data_path + "/tg_bot.json"))
|
|
except:
|
|
tg_data = None
|
|
|
|
if isinstance(tg_data, dict) and "bot_token" in tg_data:
|
|
sc.config.append({
|
|
"id": sc.nwe_id(),
|
|
"used": True,
|
|
"sender_type": "tg",
|
|
"data": {
|
|
"my_id": tg_data["my_id"],
|
|
"bot_token": tg_data["bot_token"],
|
|
"title": "tg" if "title" not in tg_data else tg_data["title"],
|
|
},
|
|
"original": True
|
|
})
|
|
|
|
sc.save_config()
|
|
write_file(PUSH_DATA_PATH + "/update_sender.pl", "")
|