Archived
1
0
Fork 0

Add mclgv

This commit is contained in:
多羅狼 2023-11-29 20:43:58 +08:00 committed by GitHub
parent 698b7ec0db
commit ef2bec3aaa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 102 additions and 38 deletions

View file

@ -1,6 +1,6 @@
from core.builtins import Bot
from core.component import module
from .mcv import mcv, mcbv, mcdv, mcev
from .mcv import mcv, mcbv, mcdv, mcev, mclgv
m = module(
bind_prefix='mcv',
@ -42,3 +42,13 @@ me = module(
@me.handle('{{mcv.help.mcev}}')
async def mcev_loader(msg: Bot.MessageSession):
await msg.finish(await mcev(msg))
mlg = module(
bind_prefix='mclgv',
developers=['OasisAkari', 'Dianliang233'])
@me.handle('{{mcv.help.mclgv}}')
async def mcev_loader(msg: Bot.MessageSession):
await msg.finish(await mclgv(msg))

View file

@ -2,16 +2,18 @@
"mcv.help.mcbv": "Get the latest version of Minecraft: Bedrock Edition on Mojira.",
"mcv.help.mcdv": "Get the latest version of Minecraft Dungeons on Mojira.",
"mcv.help.mcev": "Get the latest version of Minecraft: Education Edition in Windows Edition.",
"mcv.help.mclgv": "Get the latest version of Minecraft Legends on Mojira.",
"mcv.help.mcv": "Get the latest version of Minecraft: Java Edition in the launcher.",
"mcv.message.error.server": "Server error.",
"mcv.message.mcbv": "The latest version recorded on Mojira is:\n${msg2}\n(The latest version in the stores shall prevail, Mojira is only for previewing the version)",
"mcv.message.mcbv": "The latest version recorded on Mojira is:\n${jira_ver}\n(The latest version in the stores shall prevail, Mojira is only for previewing the version)",
"mcv.message.mcbv.get_failed": "Failed to fetch.",
"mcv.message.mcbv.ms_store": "Currently the latest version in Microsoft Store is: ",
"mcv.message.mcbv.play_store": "Currently the latest version in Google Play Store is: ",
"mcv.message.mcdv": "The latest version: ${mcdversion}\n(The data from Mojira may be earlier than the official release. Information is for reference purposes only).",
"mcv.message.mcev": "The latest version: ",
"mcv.message.mcv": "The latest version in the launcher is: \n${message1}\nThe latest version recorded on Mojira is: \n${message2}\n(The latest version in the launcher shall prevail, Mojira is only for previewing the version)",
"mcv.message.mcv.message1": "The latest release: ${release}, the latest snapshot: ${snapshot},",
"mcv.message.mcv.message1.failed": "Failed to get manifest.json.",
"mcv.message.mcv.message2.failed": "Failed to get Mojira information.",
"mcv.message.mcbv.get_failed": "Failed to fetch."
"mcv.message.mcdv": "The latest version: ${version}\n(The data from Mojira may be earlier than the official release. Information is for reference purposes only).",
"mcv.message.mcev": "The latest version: ${version}",
"mcv.message.mclgv": "The latest version: ${version}\n(The data from Mojira may be earlier than the official release. Information is for reference purposes only).",
"mcv.message.mcv": "The latest version in the launcher is: \n${launcher_ver}\nThe latest version recorded on Mojira is: \n${jira_ver}\n(The latest version in the launcher shall prevail, Mojira is only for previewing the version)",
"mcv.message.mcv.jira.failed": "Failed to get Mojira information.",
"mcv.message.mcv.launcher": "The latest release: ${release}, the latest snapshot: ${snapshot},",
"mcv.message.mcv.launcher.failed": "Failed to get manifest.json."
}

View file

@ -2,16 +2,18 @@
"mcv.help.mcbv": "查询当前 Minecraft 基岩版在 Mojira 内记录的最新版本。",
"mcv.help.mcdv": "查询当前 Minecraft Dungeons 在 Mojira 内记录的最新版本。",
"mcv.help.mcev": "查询当前 Minecraft教育版在 Windows 版记录的最新版本。",
"mcv.help.mclgv": "查询当前 Minecraft Legends 在 Mojira 内记录的最新版本。",
"mcv.help.mcv": "查询当前 MinecraftJava 版在启动器内最新版本。",
"mcv.message.error.server": "服务器错误。",
"mcv.message.mcbv": "Mojira 上所记录最新版本为:\n${msg2}\n以商店内最新版本为准Mojira 仅作版本号预览用)",
"mcv.message.mcbv": "Mojira 上所记录最新版本为:\n${jira_ver}\n以商店内最新版本为准Mojira 仅作版本号预览用)",
"mcv.message.mcbv.get_failed": "获取失败。",
"mcv.message.mcbv.ms_store": "目前 Microsoft Store 内最新正式版为:",
"mcv.message.mcbv.play_store": "目前 Google Play 商店内最新正式版为:",
"mcv.message.mcdv": "最新版:${mcdversion}\n数据来源于 Mojira可能会比官方发布要早一段时间。信息仅供参考。",
"mcv.message.mcev": "最新版:",
"mcv.message.mcv": "目前启动器内最新版本为:\n${message1}\nMojira 上所记录最新版本为:\n${message2}\n以启动器内最新版本为准Mojira 仅作版本号预览用",
"mcv.message.mcv.message1": "最新版:${release},最新快照:${snapshot}",
"mcv.message.mcv.message1.failed": "获取 manifest.json 失败。",
"mcv.message.mcv.message2.failed": "获取 Mojira 信息失败。",
"mcv.message.mcbv.get_failed": "获取失败。"
"mcv.message.mcdv": "最新版:${version}\n数据来源于 Mojira可能会比官方发布要早一段时间。信息仅供参考。",
"mcv.message.mcev": "最新版:${version}",
"mcv.message.mclgv": "最新版:${version}\n数据来源于 Mojira可能会比官方发布要早一段时间。信息仅供参考。",
"mcv.message.mcv": "目前启动器内最新版本为:\n${launcher_ver}\nMojira 上所记录最新版本为:\n${jira_ver}\n以启动器内最新版本为准Mojira 仅作版本号预览用)",
"mcv.message.mcv.jira.failed": "获取 Mojira 信息失败。",
"mcv.message.mcv.launcher": "最新版:${release},最新快照:${snapshot}",
"mcv.message.mcv.launcher.failed": "获取 manifest.json 失败。"
}

View file

@ -2,16 +2,18 @@
"mcv.help.mcbv": "查詢目前 Minecraft 基岩版在 Mojira 內記錄的最新版本。",
"mcv.help.mcdv": "查詢目前 Minecraft Dungeons 在 Mojira 內記錄的最新版本。",
"mcv.help.mcev": "查詢目前 Minecraft教育版在 Windows 版記錄的最新版本。",
"mcv.help.mclgv": "查詢目前 Minecraft Legends 在 Mojira 內記錄的最新版本。",
"mcv.help.mcv": "查詢目前 MinecraftJava 版在啟動器內最新版本。",
"mcv.message.error.server": "伺服器錯誤。",
"mcv.message.mcbv": "Mojira 上所記錄最新版本為:\n${msg2}\n以商店內最新版本為準Mojira 僅作版本號預覽用)",
"mcv.message.mcbv": "Mojira 上所記錄最新版本為:\n${jira_ver}\n以商店內最新版本為準Mojira 僅作版本號預覽用)",
"mcv.message.mcbv.get_failed": "取得失敗。",
"mcv.message.mcbv.ms_store": "目前 Microsoft Store 內最新正式版為:",
"mcv.message.mcbv.play_store": "目前 Google Play 商店內最新正式版為:",
"mcv.message.mcdv": "最新版:${mcdversion}\n資訊來源於 Mojira可能會比官方發布要早一段時間。資訊僅供參考。",
"mcv.message.mcev": "最新版:",
"mcv.message.mcv": "目前啟動器內最新版本為:\n${message1}\nMojira 上所記錄最新版本為:\n${message2}\n以啟動器內最新版本為準Mojira 僅作版本號預覽用",
"mcv.message.mcv.message1": "最新版:${release},最新快照:${snapshot}",
"mcv.message.mcv.message1.failed": "取得 manifest.json 失敗。",
"mcv.message.mcv.message2.failed": "取得 Mojira 資訊失敗。",
"mcv.message.mcbv.get_failed": "取得失敗。"
"mcv.message.mcdv": "最新版:${version}\n資訊來源於 Mojira可能會比官方發布要早一段時間。資訊僅供參考。",
"mcv.message.mcev": "最新版:${version}",
"mcv.message.mclgv": "最新版:${version}\n資訊來源於 Mojira可能會比官方發布要早一段時間。資訊僅供參考。",
"mcv.message.mcv": "目前啟動器內最新版本為:\n${launcher_ver}\nMojira 上所記錄最新版本為:\n${jira_ver}\n以啟動器內最新版本為準Mojira 僅作版本號預覽用)",
"mcv.message.mcv.jira.failed": "取得 Mojira 資訊失敗。",
"mcv.message.mcv.launcher": "最新版:${release},最新快照:${snapshot}",
"mcv.message.mcv.launcher.failed": "取得 manifest.json 失敗。"
}

View file

@ -13,11 +13,11 @@ async def mcv(msg):
try:
data = json.loads(await get_url('https://piston-meta.mojang.com/mc/game/version_manifest.json', 200))
message1 = msg.locale.t(
"mcv.message.mcv.message1",
"mcv.message.mcv.launcher",
release=data['latest']['release'],
snapshot=data['latest']['snapshot'])
except (ConnectionError, OSError): # Probably...
message1 = msg.locale.t("mcv.message.mcv.message1.failed")
message1 = msg.locale.t("mcv.message.mcv.launcher.failed")
try:
mojira = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/10400/versions', 200))
release = []
@ -27,8 +27,8 @@ async def mcv(msg):
release.append(v['name'])
message2 = prefix.join(release)
except Exception:
message2 = msg.locale.t("mcv.message.mcv.message2.failed")
return msg.locale.t("mcv.message.mcv", message1=message1, message2=message2)
message2 = msg.locale.t("mcv.message.mcv.jira.failed")
return msg.locale.t("mcv.message.mcv", launcher_ver=message1, jira_ver=message2)
async def mcbv(msg):
@ -74,7 +74,7 @@ async def mcbv(msg):
f"""{msg.locale.t("mcv.message.mcbv.ms_store")}
{ms_store_version if ms_store_version is not None else msg.locale.t('mcv.message.mcbv.get_failed')}
""" + \
msg.locale.t("mcv.message.mcbv", msg2=msg2)
msg.locale.t("mcv.message.mcbv", jira_ver=msg2)
async def mcdv(msg):
@ -86,7 +86,7 @@ async def mcdv(msg):
for v in data:
if not v['archived']:
release.append(v["name"])
return msg.locale.t('mcv.message.mcdv', mcdversion=" | ".join(release))
return msg.locale.t('mcv.message.mcdv', version=" | ".join(release))
async def mcev(msg):
@ -97,4 +97,16 @@ async def mcev(msg):
Logger.debug(version)
except (ConnectionError, OSError): # Probably...
return ErrorMessage(msg.locale.t('mcv.message.error.server'))
return f'{msg.locale.t("mcv.message.mcev")}{version}'
return msg.locale.t("mcv.message.mcev", version=version)
async def mclgv(msg):
try:
data = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/12200/versions', 200))
except (ConnectionError, OSError): # Probably...
return ErrorMessage(msg.locale.t('mcv.message.error.server'))
release = []
for v in data:
if not v['archived']:
release.append(v["name"])
return msg.locale.t('mcv.message.mclgv', version=" | ".join(release))

View file

@ -3,7 +3,7 @@ from core.component import module
mcv_rss = module('mcv_rss',
developers=['OasisAkari', 'Dianliang233'],
recommend_modules=['mcv_jira_rss', 'mcbv_jira_rss', 'mcdv_jira_rss'],
recommend_modules=['mcv_jira_rss', 'mcbv_jira_rss', 'mcdv_jira_rss', 'mclgv_jira_rss'],
desc='{mcv_rss.help.mcv_rss.desc}', alias='mcvrss')
@ -23,7 +23,7 @@ async def mcbv_rss(fetch: Bot.FetchTarget, ctx: Bot.ModuleHookContext):
mcv_jira_rss = module('mcv_jira_rss', developers=['OasisAkari', 'Dianliang233'],
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcdv_jira_rss'],
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcdv_jira_rss', 'mclgv_jira_rss'],
desc='{mcv_rss.help.mcv_jira_rss.desc}', alias='mcvjirarss')
@ -34,7 +34,7 @@ async def mcv_jira_rss(fetch: Bot.FetchTarget, ctx: Bot.ModuleHookContext):
mcbv_jira_rss = module('mcbv_jira_rss',
developers=['OasisAkari', 'Dianliang233'],
recommend_modules=['mcv_rss', 'mcv_jira_rss', 'mcdv_jira_rss'],
recommend_modules=['mcv_rss', 'mcv_jira_rss', 'mcdv_jira_rss', 'mclgv_jira_rss'],
desc='{mcv_rss.help.mcbv_jira_rss.desc}', alias='mcbvjirarss')
@ -45,10 +45,21 @@ async def mcbv_jira_rss(fetch: Bot.FetchTarget, ctx: Bot.ModuleHookContext):
mcdv_jira_rss = module('mcdv_jira_rss',
developers=['OasisAkari', 'Dianliang233'],
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcv_jira_rss'],
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcv_jira_rss', 'mclgv_jira_rss'],
desc='{mcv_rss.help.mcdv_jira_rss.desc}', alias='mcdvjirarss')
@mcdv_jira_rss.hook()
async def mcdv_jira_rss(fetch: Bot.FetchTarget, ctx: Bot.ModuleHookContext):
await fetch.post_message('mcdv_rss', **ctx.args)
mclgv_jira_rss = module('mclgv_jira_rss',
developers=['OasisAkari', 'Dianliang233'],
recommend_modules=['mcv_rss', 'mcbv_jira_rss', 'mcv_jira_rss', 'mcdv_jira_rss'],
desc='{mcv_rss.help.mclgv_jira_rss.desc}', alias='mclgvjirarss')
@mclgv_jira_rss.hook()
async def mclgv_jira_rss(fetch: Bot.FetchTarget, ctx: Bot.ModuleHookContext):
await fetch.post_message('mclgvv_rss', **ctx.args)

View file

@ -2,11 +2,13 @@
"mcv_rss.help.mcbv_jira_rss.desc": "开启后 Mojira 更新基岩版时会自动推送消息。",
"mcv_rss.help.mcbv_rss.desc": "开启后商店更新 Minecraft 基岩版时会自动推送消息。",
"mcv_rss.help.mcdv_jira_rss.desc": "开启后 Mojira 更新 Minecraft Dungeons 时会自动推送消息。",
"mcv_rss.help.mclgv_jira_rss.desc": "开启后 Mojira 更新 Minecraft Legends 时会自动推送消息。",
"mcv_rss.help.mcv_jira_rss.desc": "开启后 Mojira 更新 Java 版时会自动推送消息。",
"mcv_rss.help.mcv_rss.desc": "开启后 Minecraft 启动器更新 MinecraftJava 版时会自动推送消息。",
"mcv_rss.message.mcbv_jira_rss": "Mojira 已更新基岩版 ${version}。\nMojira 上的信息仅作版本号预览用,不代表商店已更新此版本)",
"mcv_rss.message.mcbv_rss": "Google Play 商店已更新基岩版 ${version} 正式版。",
"mcv_rss.message.mcdv_jira_rss": "Mojira 已更新 Minecraft Dungeons ${version}。\nMojira 上的信息仅作版本号预览用,不代表启动器/商店已更新此版本)",
"mcv_rss.message.mclgv_jira_rss": "Mojira 已更新 Minecraft Legends ${version}。\nMojira 上的信息仅作版本号预览用,不代表启动器/商店已更新此版本)",
"mcv_rss.message.mcv_jira_rss": "Mojira 已更新 Java 版 ${version}。\nMojira 上的信息仅作版本号预览用,不代表启动器已更新此版本)",
"mcv_rss.message.mcv_jira_rss.future": "Mojira 已新增 Java 版 ${version}。\nFuture Version 仅代表与此相关的版本正在规划中,不代表启动器已更新此版本)",
"mcv_rss.message.mcv_rss.release": "启动器已更新 ${version} 正式版。",

View file

@ -7,6 +7,7 @@
"mcv_rss.message.mcbv_jira_rss": "Mojira 已更新基岩版 ${version}。 \nMojira 上的資訊僅作版本號預覽用,不代表啟動器已更新此版本)",
"mcv_rss.message.mcbv_rss": "Google Play 商店已更新基岩版 ${version} 正式版。",
"mcv_rss.message.mcdv_jira_rss": "Mojira 已更新 Minecraft Dungeons ${version}。 \nMojira 上的資訊僅作版本號預覽用,不代表啟動器/商店已更新此版本)",
"mcv_rss.message.mclgv_jira_rss": "Mojira 已更新 Minecraft Legends ${version}。 \nMojira 上的資訊僅作版本號預覽用,不代表啟動器/商店已更新此版本)",
"mcv_rss.message.mcv_jira_rss": "Mojira 已更新 Java 版 ${version}。 \nMojira 上的資訊僅作版本號預覽用,不代表啟動器已更新此版本)",
"mcv_rss.message.mcv_jira_rss.future": "Mojira 已新增 Java 版 ${version}。 \nFuture Version 僅代表與此相關的版本正在規劃中,不代表啟動器已更新此版本)",
"mcv_rss.message.mcv_rss.release": "啟動器已更新 ${version} 正式版。",

View file

@ -133,8 +133,6 @@ async def _(msg: Bot.MessageSession):
" ".join(msg.trigger_msg.split(" ")[3:]), let_it=False)
if delete:
await msg.finish(msg.locale.t("wiki.message.headers.add.success", headers=json.dumps(target.get_headers())))
else:
await msg.finish(msg.locale.t("wiki.message.headers.add.failed"))
@wiki.handle('headers reset {{wiki.help.headers.reset}}', required_admin=True)

View file

@ -196,3 +196,27 @@ async def mcdv_jira_rss():
update_stored_list('scheduler', 'mcdv_jira_rss', verlist)
except Exception:
traceback.print_exc()
@Scheduler.scheduled_job(IntervalTrigger(seconds=trigger_times))
async def mclgv_jira_rss():
try:
verlist = get_stored_list('scheduler', 'mclgv_jira_rss')
file = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/12200/versions', 200, attempt=1))
releases = []
for v in file:
if not v['archived']:
releases.append(v['name'])
else:
if v['name'] not in verlist:
verlist.append(v['name'])
for release in releases:
if release not in verlist:
Logger.info(f'huh, we find {release}.')
await JobQueue.trigger_hook_all('mclgv_jira_rss', message='mcv_rss.message.mclgv_jira_rss',
i18n=True, version=release)
verlist.append(release)
update_stored_list('scheduler', 'mclgv_jira_rss', verlist)
except Exception:
traceback.print_exc()