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

77 lines
3.2 KiB
Python
Raw Normal View History

2021-02-01 15:13:11 +00:00
import asyncio
import ujson as json
import os
2021-02-01 15:13:11 +00:00
import traceback
2021-08-26 04:37:56 +00:00
import random
2021-02-01 15:13:11 +00:00
2021-08-30 18:53:39 +00:00
from core.elements import FetchTarget, IntervalTrigger
from core.loader.decorator import schedule
from core.logger import Logger
2021-08-19 12:17:48 +00:00
from core.utils import get_url, PrivateAssets
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
2021-08-30 18:53:39 +00:00
@schedule('mcv_rss', trigger=IntervalTrigger(seconds=60))
2021-08-07 07:56:48 +00:00
async def mcv_rss(bot: FetchTarget):
2021-08-30 18:53:39 +00:00
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()
2021-04-10 14:41:19 +00:00
verlist = getfileversions(version_file)
2021-08-30 18:53:39 +00:00
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()
2021-02-01 15:13:11 +00:00
2021-04-10 14:41:19 +00:00
2021-08-30 18:53:39 +00:00
@schedule('mcv_rss', trigger=IntervalTrigger(seconds=60))
2021-08-07 07:56:48 +00:00
async def mcv_jira_rss(bot: FetchTarget):
2021-08-30 18:53:39 +00:00
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()