2021-04-08 15:21:40 +00:00
|
|
|
|
import os
|
2021-02-01 15:13:11 +00:00
|
|
|
|
import traceback
|
2021-09-10 18:05:27 +00:00
|
|
|
|
|
|
|
|
|
import ujson as json
|
2021-02-01 15:13:11 +00:00
|
|
|
|
|
2021-10-24 10:55:45 +00:00
|
|
|
|
from core.component import on_schedule
|
2021-11-12 14:25:53 +00:00
|
|
|
|
from core.elements import FetchTarget, IntervalTrigger, PrivateAssets
|
2021-08-04 16:14:23 +00:00
|
|
|
|
from core.logger import Logger
|
2021-10-14 15:29:59 +00:00
|
|
|
|
from core.utils import get_url
|
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):
|
2021-11-10 15:54:45 +00:00
|
|
|
|
a = open(path, 'a', encoding='utf-8')
|
2021-04-08 12:23:38 +00:00
|
|
|
|
a.close()
|
2021-11-10 15:54:45 +00:00
|
|
|
|
w = open(path, 'r+', encoding='utf-8')
|
2021-02-01 15:13:11 +00:00
|
|
|
|
s = w.read().split('\n')
|
|
|
|
|
w.close()
|
|
|
|
|
return s
|
|
|
|
|
|
2021-08-04 16:14:23 +00:00
|
|
|
|
|
2021-10-24 10:55:45 +00:00
|
|
|
|
@on_schedule('mcv_rss',
|
|
|
|
|
developers=['OasisAkari', 'Dianliang233'],
|
|
|
|
|
recommend_modules=['mcv_jira_rss', 'mcbv_jira_rss', 'mcdv_jira_rss'],
|
|
|
|
|
trigger=IntervalTrigger(seconds=60),
|
2022-01-21 12:19:32 +00:00
|
|
|
|
desc='开启后当Minecraft启动器更新时将会自动推送消息。', alias='mcvrss')
|
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'] + '正式版。')
|
2021-11-10 15:54:45 +00:00
|
|
|
|
addversion = open(version_file, 'a', encoding='utf-8')
|
2021-08-30 18:53:39 +00:00
|
|
|
|
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'] + '快照。')
|
2021-11-10 15:54:45 +00:00
|
|
|
|
addversion = open(version_file, 'a', encoding='utf-8')
|
2021-08-30 18:53:39 +00:00
|
|
|
|
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-10-24 10:55:45 +00:00
|
|
|
|
@on_schedule('mcv_jira_rss', developers=['OasisAkari', 'Dianliang233'],
|
|
|
|
|
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcdv_jira_rss'],
|
|
|
|
|
trigger=IntervalTrigger(seconds=60),
|
2022-01-21 12:19:32 +00:00
|
|
|
|
desc='开启后当Jira更新Java版时将会自动推送消息。', alias='mcvjirarss')
|
2021-08-07 07:56:48 +00:00
|
|
|
|
async def mcv_jira_rss(bot: FetchTarget):
|
2021-10-01 01:57:46 +00:00
|
|
|
|
try:
|
|
|
|
|
version_file = os.path.abspath(f'{PrivateAssets.path}/mcjira_Java.txt')
|
|
|
|
|
verlist = getfileversions(version_file)
|
|
|
|
|
file = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/10400/versions'))
|
|
|
|
|
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',
|
2021-11-12 14:25:53 +00:00
|
|
|
|
f'Jira已更新Java版 {release}。'
|
|
|
|
|
f'\n(Jira上的信息仅作版本号预览用,不代表启动器已更新此版本)')
|
2021-11-10 15:54:45 +00:00
|
|
|
|
addversion = open(version_file, 'a', encoding='utf-8')
|
2021-10-01 01:57:46 +00:00
|
|
|
|
addversion.write('\n' + release)
|
|
|
|
|
addversion.close()
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
|
|
|
|
|
2021-10-24 10:55:45 +00:00
|
|
|
|
@on_schedule('mcbv_jira_rss',
|
|
|
|
|
developers=['OasisAkari', 'Dianliang233'],
|
|
|
|
|
recommend_modules=['mcv_rss', 'mcv_jira_rss', 'mcdv_jira_rss'],
|
|
|
|
|
trigger=IntervalTrigger(seconds=60),
|
2022-01-21 12:19:32 +00:00
|
|
|
|
desc='开启后当Jira更新基岩版时将会自动推送消息。', alias='mcbvjirarss')
|
2021-10-01 01:57:46 +00:00
|
|
|
|
async def mcbv_jira_rss(bot: FetchTarget):
|
|
|
|
|
try:
|
|
|
|
|
version_file = os.path.abspath(f'{PrivateAssets.path}/mcjira_Bedrock.txt')
|
|
|
|
|
verlist = getfileversions(version_file)
|
|
|
|
|
file = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/10200/versions'))
|
|
|
|
|
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('mcbv_jira_rss',
|
2021-11-12 14:25:53 +00:00
|
|
|
|
f'Jira已更新基岩版 {release}。'
|
|
|
|
|
f'\n(Jira上的信息仅作版本号预览用,不代表商城已更新此版本)')
|
2021-11-10 15:54:45 +00:00
|
|
|
|
addversion = open(version_file, 'a', encoding='utf-8')
|
2021-10-01 01:57:46 +00:00
|
|
|
|
addversion.write('\n' + release)
|
|
|
|
|
addversion.close()
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
|
|
|
|
|
2021-10-24 10:55:45 +00:00
|
|
|
|
@on_schedule('mcdv_jira_rss',
|
|
|
|
|
developers=['OasisAkari', 'Dianliang233'],
|
|
|
|
|
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcv_jira_rss'],
|
|
|
|
|
trigger=IntervalTrigger(seconds=60),
|
2022-01-21 12:19:32 +00:00
|
|
|
|
desc='开启后当Jira更新Dungeons版本时将会自动推送消息。', alias='mcdvjirarss')
|
2021-10-01 01:57:46 +00:00
|
|
|
|
async def mcdv_jira_rss(bot: FetchTarget):
|
|
|
|
|
try:
|
|
|
|
|
version_file = os.path.abspath(f'{PrivateAssets.path}/mcjira_Minecraft Dungeons.txt')
|
|
|
|
|
verlist = getfileversions(version_file)
|
|
|
|
|
file = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/11901/versions'))
|
|
|
|
|
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('mcdv_jira_rss',
|
2021-11-12 14:25:53 +00:00
|
|
|
|
f'Jira已更新Minecraft Dungeons {release}。'
|
|
|
|
|
f'\n(Jira上的信息仅作版本号预览用,不代表启动器/商城已更新此版本)')
|
2021-11-10 15:54:45 +00:00
|
|
|
|
addversion = open(version_file, 'a', encoding='utf-8')
|
2021-10-01 01:57:46 +00:00
|
|
|
|
addversion.write('\n' + release)
|
|
|
|
|
addversion.close()
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|