2021-02-01 15:13:11 +00:00
|
|
|
|
import asyncio
|
2021-04-08 15:21:40 +00:00
|
|
|
|
import os
|
2021-02-01 15:13:11 +00:00
|
|
|
|
import traceback
|
2021-08-04 16:14:23 +00:00
|
|
|
|
import json
|
2021-02-01 15:13:11 +00:00
|
|
|
|
|
2021-08-04 16:14:23 +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
|
|
|
|
|
|
2021-08-04 16:14:23 +00:00
|
|
|
|
|
|
|
|
|
@command('mcv_rss', autorun=True)
|
|
|
|
|
async def mcv_rss(bot):
|
|
|
|
|
print(111)
|
|
|
|
|
|
|
|
|
|
@Scheduler.scheduled_job('interval', seconds=5)
|
2021-06-05 10:25:21 +00:00
|
|
|
|
async def java_main():
|
2021-08-04 16:14:23 +00:00
|
|
|
|
print(111)
|
2021-06-05 10:25:21 +00:00
|
|
|
|
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')
|
2021-08-04 16:14:23 +00:00
|
|
|
|
Logger.info('Checking mcv...')
|
2021-04-10 14:41:19 +00:00
|
|
|
|
verlist = getfileversions(version_file)
|
2021-08-04 16:14:23 +00:00
|
|
|
|
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:
|
2021-08-04 16:14:23 +00:00
|
|
|
|
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:
|
2021-08-04 16:14:23 +00:00
|
|
|
|
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()
|
2021-08-04 16:14:23 +00:00
|
|
|
|
Logger.info('mcv checked.')
|
2021-02-01 15:13:11 +00:00
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
|
|
|
|
|
|
|
|
|
|
2021-08-04 16:14:23 +00:00
|
|
|
|
"""
|
2021-02-01 15:13:11 +00:00
|
|
|
|
async def mcv_jira_rss(app):
|
2021-06-05 10:25:21 +00:00
|
|
|
|
@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}。\n(Jira上的信息仅作版本号预览用,不代表启动器已更新此版本)')]))
|
2021-02-01 15:13:11 +00:00
|
|
|
|
await asyncio.sleep(0.5)
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
2021-06-05 10:25:21 +00:00
|
|
|
|
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}。\n(Jira上的信息仅作版本号预览用,不代表启动器已更新此版本)')]))
|
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):
|
2021-06-05 10:25:21 +00:00
|
|
|
|
@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}。\n(Jira上的信息仅作版本号预览用,不代表商店已更新此版本)')]))
|
|
|
|
|
await asyncio.sleep(0.5)
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
2021-06-05 10:25:21 +00:00
|
|
|
|
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}。\n(Jira上的信息仅作版本号预览用,不代表商店已更新此版本)')]))
|
|
|
|
|
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):
|
2021-06-05 10:25:21 +00:00
|
|
|
|
@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}。\n(Jira上的信息仅作版本号预览用,不代表商店已更新此版本)')]))
|
|
|
|
|
await asyncio.sleep(0.5)
|
|
|
|
|
except Exception:
|
|
|
|
|
traceback.print_exc()
|
2021-06-05 10:25:21 +00:00
|
|
|
|
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}。\n(Jira上的信息仅作版本号预览用,不代表启动器已更新此版本)')]))
|
|
|
|
|
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()
|
2021-08-04 16:14:23 +00:00
|
|
|
|
"""
|