Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/modules/mcv_rss/__init__.py

186 lines
8.4 KiB
Python
Raw Normal View History

2021-02-01 15:13:11 +00:00
import asyncio
import os
2021-02-01 15:13:11 +00:00
import traceback
import json
2021-02-01 15:13:11 +00:00
from core.scheduler import Scheduler
from core.logger import Logger
from core.utils import get_url
from core.loader.decorator import command
from database import BotDBUtil
2021-03-21 08:14:28 +00:00
2021-04-10 14:41:19 +00:00
def getfileversions(path):
2021-04-08 12:23:38 +00:00
if not os.path.exists(path):
a = open(path, 'a')
a.close()
w = open(path, 'r+')
2021-02-01 15:13:11 +00:00
s = w.read().split('\n')
w.close()
return s
@command('mcv_rss', autorun=True)
async def mcv_rss(bot):
print(111)
@Scheduler.scheduled_job('interval', seconds=5)
async def java_main():
print(111)
url = 'http://launchermeta.mojang.com/mc/game/version_manifest.json'
2021-02-01 15:13:11 +00:00
try:
2021-04-10 14:41:19 +00:00
version_file = os.path.abspath('./assets/mcversion.txt')
Logger.info('Checking mcv...')
2021-04-10 14:41:19 +00:00
verlist = getfileversions(version_file)
file = json.loads(await get_url(url))
2021-02-01 15:13:11 +00:00
release = file['latest']['release']
snapshot = file['latest']['snapshot']
if release not in verlist:
Logger.info(f'huh, we find {release}.')
get_target_id = BotDBUtil.Module.get_enabled_this('mcv_rss')
for x in get_target_id:
fetch = bot.fetch_target(x)
if fetch:
try:
await fetch.sendMessage('启动器已更新' + file['latest']['release'] + '正式版。')
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
2021-04-10 14:41:19 +00:00
addversion = open(version_file, 'a')
2021-02-01 15:13:11 +00:00
addversion.write('\n' + release)
addversion.close()
2021-04-10 14:41:19 +00:00
verlist = getfileversions(version_file)
2021-02-01 15:13:11 +00:00
if snapshot not in verlist:
Logger.info(f'huh, we find {snapshot}.')
get_target_id = BotDBUtil.Module.get_enabled_this('mcv_rss')
for x in get_target_id:
fetch = bot.fetch_target(x)
if fetch:
try:
await fetch.sendMessage('启动器已更新' + file['latest']['snapshot'] + '快照。')
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
2021-02-01 15:13:11 +00:00
addversion = open('./assets/mcversion.txt', 'a')
addversion.write('\n' + snapshot)
addversion.close()
Logger.info('mcv checked.')
2021-02-01 15:13:11 +00:00
except Exception:
traceback.print_exc()
"""
2021-02-01 15:13:11 +00:00
async def mcv_jira_rss(app):
@scheduler.schedule(every_minute())
async def java_jira():
url = 'https://bugs.mojang.com/rest/api/2/project/10400/versions'
2021-02-01 15:13:11 +00:00
try:
2021-04-10 14:41:19 +00:00
version_file = os.path.abspath('./assets/mcversion_jira.txt')
2021-02-03 14:43:24 +00:00
logger_info('Checking Jira mcv...')
2021-04-10 14:41:19 +00:00
verlist = getfileversions(version_file)
2021-02-01 15:13:11 +00:00
file = await get_data(url, 'json')
release = []
for v in file:
if not v['archived']:
release.append(v['name'])
for x in release:
if x not in verlist:
2021-02-03 14:43:24 +00:00
logger_info(f'huh, we find {x}.')
2021-02-01 15:13:11 +00:00
for qqgroup in check_enable_modules_all('group_permission', 'mcv_jira_rss'):
try:
await app.sendGroupMessage(int(qqgroup), MessageChain.create(
2021-04-10 14:41:19 +00:00
[Plain(f'Jira已更新Java版{x}\nJira上的信息仅作版本号预览用不代表启动器已更新此版本')]))
2021-02-01 15:13:11 +00:00
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
for qqfriend in check_enable_modules_all('friend_permission', 'mcv_jira_rss'):
2021-02-25 12:36:19 +00:00
try:
await app.sendFriendMessage(int(qqfriend), MessageChain.create(
2021-04-10 14:41:19 +00:00
[Plain(f'Jira已更新Java版{x}\nJira上的信息仅作版本号预览用不代表启动器已更新此版本')]))
2021-02-25 12:36:19 +00:00
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
2021-04-10 14:41:19 +00:00
addversion = open(version_file, 'a')
2021-02-01 15:13:11 +00:00
addversion.write('\n' + x)
addversion.close()
2021-02-03 14:43:24 +00:00
logger_info('jira mcv checked.')
2021-02-01 15:13:11 +00:00
except Exception:
traceback.print_exc()
2021-04-10 14:41:19 +00:00
async def mcv_jira_rss_bedrock(app):
@scheduler.schedule(every_minute())
async def bedrock_jira():
url = 'https://bugs.mojang.com/rest/api/2/project/10200/versions'
2021-04-10 14:41:19 +00:00
try:
version_file = os.path.abspath('./assets/mcversion_jira-bedrock.txt')
logger_info('Checking Jira mcv-bedrock...')
verlist = getfileversions(version_file)
file = await get_data(url, 'json')
release = []
for v in file:
if not v['archived']:
release.append(v['name'])
for x in release:
if x not in verlist:
logger_info(f'huh, we find {x}.')
for qqgroup in check_enable_modules_all('group_permission', 'mcv_jira_rss'):
try:
await app.sendGroupMessage(int(qqgroup), MessageChain.create(
[Plain(f'Jira已更新基岩版{x}\nJira上的信息仅作版本号预览用不代表商店已更新此版本')]))
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
for qqfriend in check_enable_modules_all('friend_permission', 'mcv_jira_rss'):
2021-04-10 14:41:19 +00:00
try:
await app.sendFriendMessage(int(qqfriend), MessageChain.create(
[Plain(f'Jira已更新基岩版{x}\nJira上的信息仅作版本号预览用不代表商店已更新此版本')]))
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
addversion = open(version_file, 'a')
addversion.write('\n' + x)
addversion.close()
logger_info('jira mcv-bedrock checked.')
except Exception:
traceback.print_exc()
async def mcv_jira_rss_dungeons(app):
@scheduler.schedule(every_minute())
async def bedrock_dungeons():
url = 'https://bugs.mojang.com/rest/api/2/project/11901/versions'
2021-04-10 14:41:19 +00:00
try:
version_file = os.path.abspath('./assets/mcversion_jira-dungeons.txt')
logger_info('Checking Jira mcv-bedrock...')
verlist = getfileversions(version_file)
file = await get_data(url, 'json')
release = []
for v in file:
if not v['archived']:
release.append(v['name'])
for x in release:
if x not in verlist:
logger_info(f'huh, we find {x}.')
for qqgroup in check_enable_modules_all('group_permission', 'mcv_jira_rss'):
try:
await app.sendGroupMessage(int(qqgroup), MessageChain.create(
[Plain(f'Jira已更新Dungeons {x}\nJira上的信息仅作版本号预览用不代表商店已更新此版本')]))
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
for qqfriend in check_enable_modules_all('friend_permission', 'mcv_jira_rss'):
2021-04-10 14:41:19 +00:00
try:
await app.sendFriendMessage(int(qqfriend), MessageChain.create(
[Plain(f'Jira已更新Dungeons {x}\nJira上的信息仅作版本号预览用不代表启动器已更新此版本')]))
await asyncio.sleep(0.5)
except Exception:
traceback.print_exc()
addversion = open(version_file, 'a')
addversion.write('\n' + x)
addversion.close()
logger_info('jira mcv-dungeons checked.')
except Exception:
traceback.print_exc()
"""