Add mclgv
This commit is contained in:
parent
698b7ec0db
commit
ef2bec3aaa
10 changed files with 102 additions and 38 deletions
|
@ -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))
|
|
@ -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."
|
||||
}
|
|
@ -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": "查询当前 Minecraft:Java 版在启动器内最新版本。",
|
||||
"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 失败。"
|
||||
}
|
|
@ -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": "查詢目前 Minecraft:Java 版在啟動器內最新版本。",
|
||||
"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 失敗。"
|
||||
}
|
|
@ -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))
|
|
@ -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)
|
||||
|
|
|
@ -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 启动器更新 Minecraft:Java 版时会自动推送消息。",
|
||||
"mcv_rss.message.mcbv_jira_rss": "Mojira 已更新基岩版 ${version}。\n(Mojira 上的信息仅作版本号预览用,不代表商店已更新此版本)",
|
||||
"mcv_rss.message.mcbv_rss": "Google Play 商店已更新基岩版 ${version} 正式版。",
|
||||
"mcv_rss.message.mcdv_jira_rss": "Mojira 已更新 Minecraft Dungeons ${version}。\n(Mojira 上的信息仅作版本号预览用,不代表启动器/商店已更新此版本)",
|
||||
"mcv_rss.message.mclgv_jira_rss": "Mojira 已更新 Minecraft Legends ${version}。\n(Mojira 上的信息仅作版本号预览用,不代表启动器/商店已更新此版本)",
|
||||
"mcv_rss.message.mcv_jira_rss": "Mojira 已更新 Java 版 ${version}。\n(Mojira 上的信息仅作版本号预览用,不代表启动器已更新此版本)",
|
||||
"mcv_rss.message.mcv_jira_rss.future": "Mojira 已新增 Java 版 ${version}。\n(Future Version 仅代表与此相关的版本正在规划中,不代表启动器已更新此版本)",
|
||||
"mcv_rss.message.mcv_rss.release": "启动器已更新 ${version} 正式版。",
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
"mcv_rss.message.mcbv_jira_rss": "Mojira 已更新基岩版 ${version}。 \n(Mojira 上的資訊僅作版本號預覽用,不代表啟動器已更新此版本)",
|
||||
"mcv_rss.message.mcbv_rss": "Google Play 商店已更新基岩版 ${version} 正式版。",
|
||||
"mcv_rss.message.mcdv_jira_rss": "Mojira 已更新 Minecraft Dungeons ${version}。 \n(Mojira 上的資訊僅作版本號預覽用,不代表啟動器/商店已更新此版本)",
|
||||
"mcv_rss.message.mclgv_jira_rss": "Mojira 已更新 Minecraft Legends ${version}。 \n(Mojira 上的資訊僅作版本號預覽用,不代表啟動器/商店已更新此版本)",
|
||||
"mcv_rss.message.mcv_jira_rss": "Mojira 已更新 Java 版 ${version}。 \n(Mojira 上的資訊僅作版本號預覽用,不代表啟動器已更新此版本)",
|
||||
"mcv_rss.message.mcv_jira_rss.future": "Mojira 已新增 Java 版 ${version}。 \n(Future Version 僅代表與此相關的版本正在規劃中,不代表啟動器已更新此版本)",
|
||||
"mcv_rss.message.mcv_rss.release": "啟動器已更新 ${version} 正式版。",
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
Reference in a new issue