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
2021-08-31 02:53:39 +08:00

76 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
import ujson as json
import os
import traceback
import random
from core.elements import FetchTarget, IntervalTrigger
from core.loader.decorator import schedule
from core.logger import Logger
from core.utils import get_url, PrivateAssets
from database import BotDBUtil
def getfileversions(path):
if not os.path.exists(path):
a = open(path, 'a')
a.close()
w = open(path, 'r+')
s = w.read().split('\n')
w.close()
return s
@schedule('mcv_rss', trigger=IntervalTrigger(seconds=60))
async def mcv_rss(bot: FetchTarget):
url = 'http://launchermeta.mojang.com/mc/game/version_manifest.json'
try:
version_file = os.path.abspath(f'{PrivateAssets.path}/mcversion.txt')
verlist = getfileversions(version_file)
file = json.loads(await get_url(url))
release = file['latest']['release']
snapshot = file['latest']['snapshot']
if release not in verlist:
Logger.info(f'huh, we find {release}.')
await bot.post_message('mcv_rss', '启动器已更新' + file['latest']['release'] + '正式版。')
addversion = open(version_file, 'a')
addversion.write('\n' + release)
addversion.close()
verlist = getfileversions(version_file)
if snapshot not in verlist:
Logger.info(f'huh, we find {snapshot}.')
await bot.post_message('mcv_rss', '启动器已更新' + file['latest']['snapshot'] + '快照。')
addversion = open(version_file, 'a')
addversion.write('\n' + snapshot)
addversion.close()
except Exception:
traceback.print_exc()
@schedule('mcv_rss', trigger=IntervalTrigger(seconds=60))
async def mcv_jira_rss(bot: FetchTarget):
urls = {'Java': {'url': 'https://bugs.mojang.com/rest/api/2/project/10400/versions', 'display': 'Java版'},
'Bedrock': {'url': 'https://bugs.mojang.com/rest/api/2/project/10200/versions', 'display': '基岩版'},
'Minecraft Dungeons': {'url': 'https://bugs.mojang.com/rest/api/2/project/11901/versions',
'display': 'Minecraft Dungeons'}}
for url in urls:
try:
version_file = os.path.abspath(f'{PrivateAssets.path}/mcjira_{url}.txt')
verlist = getfileversions(version_file)
file = json.loads(await get_url(urls[url]['url']))
releases = []
for v in file:
if not v['archived']:
releases.append(v['name'])
for release in releases:
if release not in verlist:
Logger.info(f'huh, we find {release}.')
verlist.append(release)
await bot.post_message('mcv_jira_rss',
f'Jira已更新{urls[url]["display"]} {release}'
f'\nJira上的信息仅作版本号预览用不代表启动器已更新此版本')
addversion = open(version_file, 'a')
addversion.write('\n' + release)
addversion.close()
except Exception:
traceback.print_exc()