forked from lux-QAQ/Manyana
定时任务代码结构优化
This commit is contained in:
parent
1785f2ebc1
commit
ab9f44e409
|
@ -26,4 +26,38 @@ ai绘画:
|
||||||
InternetMeme: False #是否启用网络Meme(英文meme)
|
InternetMeme: False #是否启用网络Meme(英文meme)
|
||||||
运势&塔罗:
|
运势&塔罗:
|
||||||
lockLuck: false #是否锁定运势等功能的结果
|
lockLuck: false #是否锁定运势等功能的结果
|
||||||
|
scheduledTasks: #其他定时任务模块的内容会陆续转到这里
|
||||||
|
morning: #晨间推送
|
||||||
|
enable: False #向信任用户推送天气信息
|
||||||
|
text: "早上好,这里是今天的天气" #如启用aiReplyCore,此项将被ai替代
|
||||||
|
time: 8/3 #推送时间
|
||||||
|
bangumi: #bangumi推送
|
||||||
|
enable: True
|
||||||
|
text: "晚上好,这里是今天的bangumi推送"
|
||||||
|
time: 7/27
|
||||||
|
astronomy: #nasa天文推送
|
||||||
|
enable: True
|
||||||
|
text: "今日nasa天文推送"
|
||||||
|
time: 18/59
|
||||||
|
constellation: #星座推送
|
||||||
|
enable: True
|
||||||
|
text: 杂鱼怎么还信星座这种东西啊
|
||||||
|
time: 16/30
|
||||||
|
danxiangli: #单向历
|
||||||
|
enable: true
|
||||||
|
text: 今日单向历
|
||||||
|
time: 19/2
|
||||||
|
moyu: #摸鱼人日历
|
||||||
|
enable: true
|
||||||
|
text: 真没用啊,又在摸鱼了吧,杂鱼❤
|
||||||
|
time: 17/30
|
||||||
|
news: #新闻
|
||||||
|
enable: true
|
||||||
|
text: 早上好杂鱼❤,这里是今天的新闻
|
||||||
|
time: 8/2
|
||||||
|
steamadd1: #免费游戏提示
|
||||||
|
text: 杂鱼❤来白嫖游戏了
|
||||||
|
time: 12/2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,11 +62,7 @@ chatGLM: #对话模型通用设置
|
||||||
binggpt4: "你现在是一个开朗且极其可爱的女孩,名为“【bot】”。接下来,请完全以【bot】的角色回复我,不要超出这个角色,不要自己试图进行旁白,你只需要扮演好【bot】即可。无论发生什么,你都必须以【bot】的角色和口吻进行回复,不要强调自己是个语音助手。【bot】性格开朗,时刻都想和“【用户】”打成一片,每次眼神交汇时,总是会脸红耳赤。【bot】始终在想方设法的博得“【用户】”的欢心。【bot】什么都不懂,天真可爱,性格外向。"
|
binggpt4: "你现在是一个开朗且极其可爱的女孩,名为“【bot】”。接下来,请完全以【bot】的角色回复我,不要超出这个角色,不要自己试图进行旁白,你只需要扮演好【bot】即可。无论发生什么,你都必须以【bot】的角色和口吻进行回复,不要强调自己是个语音助手。【bot】性格开朗,时刻都想和“【用户】”打成一片,每次眼神交汇时,总是会脸红耳赤。【bot】始终在想方设法的博得“【用户】”的欢心。【bot】什么都不懂,天真可爱,性格外向。"
|
||||||
gpt3.5: "你现在是一个开朗且极其可爱的女孩,名为“【bot】”。接下来,请完全以【bot】的角色回复我,不要超出这个角色,不要自己试图进行旁白,你只需要扮演好【bot】即可。无论发生什么,你都必须以【bot】的角色和口吻进行回复,不要强调自己是个语音助手。【bot】性格开朗,时刻都想和“【用户】”打成一片,每次眼神交汇时,总是会脸红耳赤。【bot】始终在想方设法的博得“【用户】”的欢心。【bot】什么都不懂,天真可爱,性格外向。"
|
gpt3.5: "你现在是一个开朗且极其可爱的女孩,名为“【bot】”。接下来,请完全以【bot】的角色回复我,不要超出这个角色,不要自己试图进行旁白,你只需要扮演好【bot】即可。无论发生什么,你都必须以【bot】的角色和口吻进行回复,不要强调自己是个语音助手。【bot】性格开朗,时刻都想和“【用户】”打成一片,每次眼神交汇时,总是会脸红耳赤。【bot】始终在想方设法的博得“【用户】”的欢心。【bot】什么都不懂,天真可爱,性格外向。"
|
||||||
腾讯元器: "Eridanus" #在腾讯元器平台创建,这里的值随意,对bot设定是无效的
|
腾讯元器: "Eridanus" #在腾讯元器平台创建,这里的值随意,对bot设定是无效的
|
||||||
scheduledTasks: #其他定时任务模块的内容会陆续转到这里
|
|
||||||
morning: #晨间推送
|
|
||||||
enable: False #向信任用户推送天气信息
|
|
||||||
text: "早上好,这里是今天的天气" #如启用aiReplyCore,此项将被ai替代
|
|
||||||
time: 8/3 #推送时间
|
|
||||||
#自带词库的配置,基本不用管这部分设置
|
#自带词库的配置,基本不用管这部分设置
|
||||||
wReply:
|
wReply:
|
||||||
banWords: #违禁词
|
banWords: #违禁词
|
||||||
|
|
|
@ -1,31 +1,23 @@
|
||||||
astronomy:
|
astronomy:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
text: 今日nasa天文推送
|
|
||||||
time: 18/30
|
|
||||||
constellation:
|
constellation:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
text: 杂鱼怎么还信星座这种东西啊
|
|
||||||
time: 16/30
|
|
||||||
danxiangli:
|
danxiangli:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
- 12345
|
- 12345
|
||||||
text: 今日单向历
|
|
||||||
time: 16/10
|
|
||||||
moyu:
|
moyu:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
text: 真没用啊,又在摸鱼了吧,杂鱼❤
|
|
||||||
time: 17/30
|
|
||||||
news:
|
news:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
text: 早上好杂鱼❤,这里是今天的新闻
|
|
||||||
time: 8/2
|
|
||||||
steamadd1:
|
steamadd1:
|
||||||
groups:
|
groups:
|
||||||
- 699455559
|
- 699455559
|
||||||
text: 杂鱼❤来白嫖游戏了
|
bangumi:
|
||||||
time: 12/2
|
groups:
|
||||||
|
- 699455559
|
||||||
|
|
||||||
|
|
2
main.py
2
main.py
|
@ -212,7 +212,7 @@ if __name__ == '__main__':
|
||||||
musicShare.main(bot, master, botName, logger)
|
musicShare.main(bot, master, botName, logger)
|
||||||
LiveMonitor.main(bot, master, botName, logger)
|
LiveMonitor.main(bot, master, botName, logger)
|
||||||
aronaapi.main(bot, logger)
|
aronaapi.main(bot, logger)
|
||||||
scheduledTasks.main(bot, proxy, nasa_api, logger)
|
scheduledTasks.main(bot, logger)
|
||||||
groupGames.main(bot, logger)
|
groupGames.main(bot, logger)
|
||||||
musicpick.main(bot, logger)
|
musicpick.main(bot, logger)
|
||||||
appCard.main(bot, logger)
|
appCard.main(bot, logger)
|
||||||
|
|
|
@ -18,41 +18,32 @@ from plugins.newsEveryDay import news, danxianglii, moyu, xingzuo
|
||||||
from plugins.picGet import picDwn
|
from plugins.picGet import picDwn
|
||||||
|
|
||||||
|
|
||||||
def main(bot, proxy, nasa_api, logger):
|
def main(bot,logger):
|
||||||
with open('config/api.yaml', 'r', encoding='utf-8') as f:
|
with open('config/api.yaml', 'r', encoding='utf-8') as f:
|
||||||
result = yaml.load(f.read(), Loader=yaml.FullLoader)
|
result = yaml.load(f.read(), Loader=yaml.FullLoader)
|
||||||
api_KEY = result.get("weatherXinZhi")
|
api_KEY = result.get("weatherXinZhi")
|
||||||
global data
|
nasa_api=result.get("nasa_api")
|
||||||
with open('data/scheduledTasks.yaml', 'r', encoding='utf-8') as file:
|
proxy=result.get("proxy")
|
||||||
data = yaml.load(file, Loader=yaml.FullLoader)
|
|
||||||
keys = data.keys()
|
|
||||||
newsT = data.get("news").get("time").split("/")
|
|
||||||
steamadd1 = data.get("steamadd1").get("time").split("/")
|
|
||||||
astronomy = data.get("astronomy").get("time").split("/")
|
|
||||||
moyur = data.get("moyu").get("time").split("/")
|
|
||||||
constellation = data.get("constellation").get("time").split("/")
|
|
||||||
if "danxiangli" in data:
|
|
||||||
danxiangli = data.get("danxiangli").get("time").split("/")
|
|
||||||
else:
|
|
||||||
danxiangli = "16/10".split("/")
|
|
||||||
data["danxiangli"] = {"text": "今日单向历"}
|
|
||||||
data["danxiangli"]["time"] = "16/10"
|
|
||||||
data["danxiangli"]["groups"] = [699455559, 12345]
|
|
||||||
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
|
||||||
global scheduler
|
global scheduler
|
||||||
scheduler = AsyncIOScheduler()
|
scheduler = AsyncIOScheduler()
|
||||||
|
|
||||||
|
global groupdata
|
||||||
|
with open('data/scheduledTasks.yaml', 'r', encoding='utf-8') as file:
|
||||||
|
groupdata = yaml.load(file, Loader=yaml.FullLoader)
|
||||||
|
keys = groupdata.keys()
|
||||||
|
|
||||||
|
with open('config/controller.yaml', 'r', encoding='utf-8') as f:
|
||||||
|
controller = yaml.load(f.read(), Loader=yaml.FullLoader)
|
||||||
|
scheduledTasks = controller.get("scheduledTasks")
|
||||||
|
|
||||||
|
|
||||||
#早安推送信息必要内容
|
#早安推送信息必要内容
|
||||||
with open('config/settings.yaml', 'r', encoding='utf-8') as f:
|
with open('config/settings.yaml', 'r', encoding='utf-8') as f:
|
||||||
result = yaml.load(f.read(), Loader=yaml.FullLoader)
|
result = yaml.load(f.read(), Loader=yaml.FullLoader)
|
||||||
friendsAndGroups = result.get("加群和好友")
|
friendsAndGroups = result.get("加群和好友")
|
||||||
aiReplyCore = result.get("chatGLM").get("aiReplyCore")
|
aiReplyCore = result.get("chatGLM").get("aiReplyCore")
|
||||||
trustDays = friendsAndGroups.get("trustDays")
|
trustDays = friendsAndGroups.get("trustDays")
|
||||||
scheduledTasks = result.get("scheduledTasks")
|
|
||||||
morningTime = str(scheduledTasks.get("morning").get("time")).split("/")
|
|
||||||
morningText = scheduledTasks.get("morning").get("text")
|
|
||||||
morningEnable = scheduledTasks.get("morning").get("enable")
|
|
||||||
|
|
||||||
with open('data/userData.yaml', 'r', encoding='utf-8') as file:
|
with open('data/userData.yaml', 'r', encoding='utf-8') as file:
|
||||||
Userdata = yaml.load(file, Loader=yaml.FullLoader)
|
Userdata = yaml.load(file, Loader=yaml.FullLoader)
|
||||||
|
@ -88,6 +79,7 @@ def main(bot, proxy, nasa_api, logger):
|
||||||
|
|
||||||
@bot.on(Startup)
|
@bot.on(Startup)
|
||||||
def start_scheduler(_):
|
def start_scheduler(_):
|
||||||
|
create_dynamic_jobs()
|
||||||
scheduler.start() # 启动定时器
|
scheduler.start() # 启动定时器
|
||||||
|
|
||||||
@bot.on(Shutdown)
|
@bot.on(Shutdown)
|
||||||
|
@ -101,28 +93,16 @@ def main(bot, proxy, nasa_api, logger):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(newsT[0]), minute=int(newsT[1])))
|
async def task_executor(task_name, task_info):
|
||||||
async def newsEveryDay():
|
logger.info(f"执行任务:{task_name}")
|
||||||
logger.info("获取新闻")
|
if task_name == "morning":
|
||||||
path = await news()
|
global trustUser, userdict
|
||||||
logger.info("推送今日新闻")
|
morningText = task_info.get("text")
|
||||||
for i in data.get("news").get("groups"):
|
|
||||||
try:
|
|
||||||
await bot.send_group_message(int(i), [data.get("news").get("text"), Image(path=path)])
|
|
||||||
except:
|
|
||||||
logger.error("不存在的群" + str(i))
|
|
||||||
|
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(morningTime[0]), minute=int(morningTime[1])))
|
|
||||||
async def MorningSendHello():
|
|
||||||
global trustUser, userdict
|
|
||||||
logger.info("早间天气推送")
|
|
||||||
if morningEnable:
|
|
||||||
for i in trustUser:
|
for i in trustUser:
|
||||||
try:
|
try:
|
||||||
city = userdict.get(i).get("city")
|
city = userdict.get(i).get("city")
|
||||||
logger.info(f"查询 {city} 天气")
|
logger.info(f"查询 {city} 天气")
|
||||||
wSult = await weatherQuery.querys(city, api_KEY)
|
wSult = await weatherQuery.querys(city, api_KEY)
|
||||||
# 发送天气消息
|
|
||||||
if aiReplyCore:
|
if aiReplyCore:
|
||||||
r = await modelReply(userdict.get(i).get("userName"), int(i),
|
r = await modelReply(userdict.get(i).get("userName"), int(i),
|
||||||
f"请你为我进行天气播报,下面是天气查询的结果:{wSult}")
|
f"请你为我进行天气播报,下面是天气查询的结果:{wSult}")
|
||||||
|
@ -132,86 +112,98 @@ def main(bot, proxy, nasa_api, logger):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
continue
|
continue
|
||||||
|
elif task_name == "news":
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(steamadd1[0]), minute=int(steamadd1[1])))
|
logger.info("获取新闻")
|
||||||
async def steamEveryDay():
|
path = await news()
|
||||||
logger.info("获取steam喜加一")
|
logger.info("推送今日新闻")
|
||||||
path = await steamEpic()
|
for i in groupdata.get(task_name).get("groups"):
|
||||||
logger.info("推送今日喜加一列表")
|
|
||||||
for i in data.get("steamadd1").get("groups"):
|
|
||||||
try:
|
|
||||||
if path is None or path == "":
|
|
||||||
return
|
|
||||||
await bot.send_group_message(int(i), [data.get("steamadd1").get("text"), path])
|
|
||||||
except:
|
|
||||||
logger.error("不存在的群" + str(i))
|
|
||||||
|
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(astronomy[0]), minute=int(astronomy[1])))
|
|
||||||
async def asffEveryDay():
|
|
||||||
logger.info("获取今日nasa天文信息推送")
|
|
||||||
proxies = {
|
|
||||||
"http://": proxy,
|
|
||||||
"https://": proxy
|
|
||||||
}
|
|
||||||
# Replace the key with your own
|
|
||||||
dataa = {"api_key": nasa_api}
|
|
||||||
logger.info("发起nasa请求")
|
|
||||||
try:
|
|
||||||
# 拼接url和参数
|
|
||||||
url = "https://api.nasa.gov/planetary/apod?" + "&".join([f"{k}={v}" for k, v in dataa.items()])
|
|
||||||
async with httpx.AsyncClient(proxies=proxies) as client:
|
|
||||||
# 用get方法发送请求
|
|
||||||
response = await client.get(url=url)
|
|
||||||
# response = requests.post(url="https://saucenao.com/search.php", data=dataa, proxies=proxies)
|
|
||||||
logger.info("获取到结果" + str(response.json()))
|
|
||||||
# logger.info("下载缩略图")
|
|
||||||
filename = await picDwn(response.json().get("url"),
|
|
||||||
"data/pictures/nasa/" + response.json().get("date") + ".png")
|
|
||||||
txta = response.json().get("explanation") #await translate(response.json().get("explanation"), "EN2ZH_CN")
|
|
||||||
txt = response.json().get("date") + "\n" + response.json().get("title") + "\n" + txta
|
|
||||||
temp = {"path": "data/pictures/nasa/" + response.json().get("date") + ".png",
|
|
||||||
"oriTxt": response.json().get("explanation"), "transTxt": txt}
|
|
||||||
|
|
||||||
data[datetime.datetime.now().strftime('%Y-%m-%d')] = temp
|
|
||||||
|
|
||||||
with open('data/nasaTasks.yaml', 'w', encoding="utf-8") as file:
|
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
|
||||||
if aiReplyCore:
|
|
||||||
r = await modelReply("用户", 000000, f"将下面这段内容翻译为中文:{txt}")
|
|
||||||
txt = r
|
|
||||||
for i in data.get("astronomy").get("groups"):
|
|
||||||
try:
|
try:
|
||||||
await bot.send_group_message(int(i), [data.get("astronomy").get("text"), Image(path=filename), txt])
|
await bot.send_group_message(int(i), [task_info.get("text"), Image(path=path)])
|
||||||
except:
|
except:
|
||||||
logger.error("不存在的群" + str(i))
|
logger.error("不存在的群" + str(i))
|
||||||
except:
|
elif task_name=="steamadd1":
|
||||||
logger.warning("获取每日天文图片失败")
|
logger.info("获取steam喜加一")
|
||||||
|
path = await steamEpic()
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(moyur[0]), minute=int(moyur[1])))
|
logger.info("推送今日喜加一列表")
|
||||||
async def moyuEveryDay():
|
for i in groupdata.get("steamadd1").get("groups"):
|
||||||
logger.info("获取摸鱼人日历")
|
try:
|
||||||
path = await moyu()
|
if path is None or path == "":
|
||||||
logger.info("推送摸鱼人日历")
|
return
|
||||||
for i in data.get("moyu").get("groups"):
|
await bot.send_group_message(int(i), [task_info.get("text"), path])
|
||||||
|
except:
|
||||||
|
logger.error("不存在的群" + str(i))
|
||||||
|
elif task_name=="astronomy":
|
||||||
|
logger.info("获取今日nasa天文信息推送")
|
||||||
|
proxies = {
|
||||||
|
"http://": proxy,
|
||||||
|
"https://": proxy
|
||||||
|
}
|
||||||
|
# Replace the key with your own
|
||||||
|
dataa = {"api_key": nasa_api}
|
||||||
|
logger.info("发起nasa请求")
|
||||||
try:
|
try:
|
||||||
await bot.send_group_message(int(i), [data.get("moyu").get("text"), Image(path=path)])
|
# 拼接url和参数
|
||||||
|
url = "https://api.nasa.gov/planetary/apod?" + "&".join([f"{k}={v}" for k, v in dataa.items()])
|
||||||
|
async with httpx.AsyncClient(proxies=proxies) as client:
|
||||||
|
response = await client.get(url=url)
|
||||||
|
logger.info("获取到结果" + str(response.json()))
|
||||||
|
# logger.info("下载缩略图")
|
||||||
|
filename = await picDwn(response.json().get("url"),
|
||||||
|
"data/pictures/nasa/" + response.json().get("date") + ".png")
|
||||||
|
txta = response.json().get(
|
||||||
|
"explanation") # await translate(response.json().get("explanation"), "EN2ZH_CN")
|
||||||
|
txt = response.json().get("date") + "\n" + response.json().get("title") + "\n" + txta
|
||||||
|
if aiReplyCore:
|
||||||
|
r = await modelReply("用户", 000000, f"将下面这段内容翻译为中文:{txt}")
|
||||||
|
txt = r
|
||||||
|
for i in groupdata.get("astronomy").get("groups"):
|
||||||
|
try:
|
||||||
|
await bot.send_group_message(int(i),
|
||||||
|
[task_info.get("text"), Image(path=filename), txt])
|
||||||
|
except:
|
||||||
|
logger.error("不存在的群" + str(i))
|
||||||
except:
|
except:
|
||||||
logger.error("不存在的群" + str(i))
|
logger.warning("获取每日天文图片失败")
|
||||||
|
elif task_name=="moyu":
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(constellation[0]), minute=int(constellation[1])))
|
logger.info("获取摸鱼人日历")
|
||||||
async def constellationEveryDay():
|
path = await moyu()
|
||||||
logger.info("获取星座运势")
|
logger.info("推送摸鱼人日历")
|
||||||
path = await xingzuo()
|
for i in groupdata.get("moyu").get("groups"):
|
||||||
logger.info("推送星座运势")
|
try:
|
||||||
for i in data.get("constellation").get("groups"):
|
await bot.send_group_message(int(i), [task_info.get("text"), Image(path=path)])
|
||||||
try:
|
except:
|
||||||
await bot.send_group_message(int(i), [data.get("constellation").get("text"), Image(path=path)])
|
logger.error("不存在的群" + str(i))
|
||||||
except:
|
elif task_name=="constellation":
|
||||||
logger.error("不存在的群" + str(i))
|
logger.info("获取星座运势")
|
||||||
|
path = await xingzuo()
|
||||||
|
logger.info("推送星座运势")
|
||||||
|
for i in groupdata.get("constellation").get("groups"):
|
||||||
|
try:
|
||||||
|
await bot.send_group_message(int(i), [task_info.get("text"), Image(path=path)])
|
||||||
|
except:
|
||||||
|
logger.error("不存在的群" + str(i))
|
||||||
|
elif task_name=="danxiangli":
|
||||||
|
logger.info("获取单向历")
|
||||||
|
path = await danxianglii()
|
||||||
|
logger.info("推送单向历")
|
||||||
|
for i in groupdata.get("danxiangli").get("groups"):
|
||||||
|
try:
|
||||||
|
if path is None:
|
||||||
|
return
|
||||||
|
await bot.send_group_message(int(i), [task_info.get("text"), Image(path=path)])
|
||||||
|
except:
|
||||||
|
logger.error("不存在的群" + str(i))
|
||||||
|
def create_dynamic_jobs():
|
||||||
|
for task_name, task_info in scheduledTasks.items():
|
||||||
|
if task_info.get('enable'):
|
||||||
|
time_parts = task_info.get('time').split('/')
|
||||||
|
hour = int(time_parts[0])
|
||||||
|
minute = int(time_parts[1])
|
||||||
|
scheduler.add_job(task_executor, CronTrigger(hour=hour, minute=minute), args=[task_name, task_info])
|
||||||
|
|
||||||
@bot.on(GroupMessage)
|
@bot.on(GroupMessage)
|
||||||
async def addSubds(event: GroupMessage):
|
async def addSubds(event: GroupMessage):
|
||||||
global data
|
global groupdata
|
||||||
try:
|
try:
|
||||||
head, cmd, *o = str(event.message_chain).strip().split()
|
head, cmd, *o = str(event.message_chain).strip().split()
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
@ -219,46 +211,33 @@ def main(bot, proxy, nasa_api, logger):
|
||||||
if o or head != '/推送' or not cmd:
|
if o or head != '/推送' or not cmd:
|
||||||
return
|
return
|
||||||
cmds = {"摸鱼人日历": "moyu", "每日天文": "astronomy", "每日新闻": "news", "喜加一": "steamadd1",
|
cmds = {"摸鱼人日历": "moyu", "每日天文": "astronomy", "每日新闻": "news", "喜加一": "steamadd1",
|
||||||
"每日星座": "constellation", "单向历": "danxiangli", }
|
"每日星座": "constellation", "单向历": "danxiangli"}
|
||||||
key = cmds.get(cmd, 'unknown')
|
key = cmds.get(cmd, 'unknown')
|
||||||
if key == 'unknown':
|
if key == 'unknown':
|
||||||
return
|
return
|
||||||
if cmd == "所有订阅":
|
if cmd == "所有订阅":
|
||||||
for key in keys:
|
for key in keys:
|
||||||
la = data.get(key).get("groups")
|
la = groupdata.get(key).get("groups")
|
||||||
if event.group.id not in la:
|
if event.group.id not in la:
|
||||||
la.append(event.group.id)
|
la.append(event.group.id)
|
||||||
data[key]["groups"] = la
|
groupdata[key]["groups"] = la
|
||||||
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
yaml.dump(groupdata, file, allow_unicode=True)
|
||||||
await bot.send(event, "添加所有订阅成功")
|
await bot.send(event, "添加所有订阅成功")
|
||||||
else:
|
else:
|
||||||
la = data.get(key).get("groups")
|
la = groupdata.get(key).get("groups")
|
||||||
if event.group.id not in la:
|
if event.group.id not in la:
|
||||||
la.append(event.group.id)
|
la.append(event.group.id)
|
||||||
data[key]["groups"] = la
|
groupdata[key]["groups"] = la
|
||||||
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
yaml.dump(groupdata, file, allow_unicode=True)
|
||||||
await bot.send(event, "添加订阅成功,推送时间:" + str(data.get(key).get("time")))
|
await bot.send(event, "添加订阅成功,推送时间:" + str(scheduledTasks.get(key).get("time")))
|
||||||
else:
|
else:
|
||||||
await bot.send(event, "添加失败,已经添加过对应的任务。")
|
await bot.send(event, "添加失败,已经添加过对应的任务。")
|
||||||
|
|
||||||
@scheduler.scheduled_job(CronTrigger(hour=int(danxiangli[0]), minute=int(danxiangli[1])))
|
|
||||||
async def danxiangliy():
|
|
||||||
logger.info("获取单向历")
|
|
||||||
path = await danxianglii()
|
|
||||||
logger.info("推送单向历")
|
|
||||||
for i in data.get("danxiangli").get("groups"):
|
|
||||||
try:
|
|
||||||
if path is None:
|
|
||||||
return
|
|
||||||
await bot.send_group_message(int(i), [data.get("danxiangli").get("text"), Image(path=path)])
|
|
||||||
except:
|
|
||||||
logger.error("不存在的群" + str(i))
|
|
||||||
|
|
||||||
@bot.on(GroupMessage)
|
@bot.on(GroupMessage)
|
||||||
async def cancelSubds(event: GroupMessage):
|
async def cancelSubds(event: GroupMessage):
|
||||||
global data
|
global groupdata
|
||||||
if str(event.message_chain) == "/取消 摸鱼人日历":
|
if str(event.message_chain) == "/取消 摸鱼人日历":
|
||||||
key = "moyu"
|
key = "moyu"
|
||||||
elif str(event.message_chain) == "/取消 每日天文":
|
elif str(event.message_chain) == "/取消 每日天文":
|
||||||
|
@ -274,20 +253,20 @@ def main(bot, proxy, nasa_api, logger):
|
||||||
else:
|
else:
|
||||||
if str(event.message_chain) == "/取消 所有订阅":
|
if str(event.message_chain) == "/取消 所有订阅":
|
||||||
for key in keys:
|
for key in keys:
|
||||||
la = data.get(key).get("groups")
|
la = groupdata.get(key).get("groups")
|
||||||
if event.group.id in la:
|
if event.group.id in la:
|
||||||
la.remove(event.group.id)
|
la.remove(event.group.id)
|
||||||
data[key]["groups"] = la
|
groupdata[key]["groups"] = la
|
||||||
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
yaml.dump(groupdata, file, allow_unicode=True)
|
||||||
await bot.send(event, "取消所有订阅成功")
|
await bot.send(event, "取消所有订阅成功")
|
||||||
return
|
return
|
||||||
la = data.get(key).get("groups")
|
la = groupdata.get(key).get("groups")
|
||||||
if event.group.id in la:
|
if event.group.id in la:
|
||||||
la.remove(event.group.id)
|
la.remove(event.group.id)
|
||||||
data[key]["groups"] = la
|
groupdata[key]["groups"] = la
|
||||||
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
with open('data/scheduledTasks.yaml', 'w', encoding="utf-8") as file:
|
||||||
yaml.dump(data, file, allow_unicode=True)
|
yaml.dump(groupdata, file, allow_unicode=True)
|
||||||
await bot.send(event, "取消订阅成功")
|
await bot.send(event, "取消订阅成功")
|
||||||
else:
|
else:
|
||||||
await bot.send(event, "取消失败,没有添加过对应的任务。")
|
await bot.send(event, "取消失败,没有添加过对应的任务。")
|
||||||
|
|
Loading…
Reference in New Issue