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/mcv.py

98 lines
3.8 KiB
Python
Raw Normal View History

2021-08-25 14:32:37 +00:00
import json
2021-09-10 18:05:27 +00:00
import re
2021-02-01 15:13:11 +00:00
2022-06-12 07:07:53 +00:00
from google_play_scraper import app as google_play_scraper
2023-02-05 14:33:33 +00:00
from core.builtins import ErrorMessage
2022-07-31 08:27:58 +00:00
from core.logger import Logger
2023-02-09 17:14:35 +00:00
from core.utils.http import get_url, post_url
2023-02-05 14:33:33 +00:00
from core.utils.ip import IP
2020-08-07 11:32:45 +00:00
2021-09-10 18:05:27 +00:00
2023-03-19 07:15:40 +00:00
async def mcv(msg):
2020-06-13 12:43:43 +00:00
try:
2022-08-01 15:33:35 +00:00
data = json.loads(await get_url('https://piston-meta.mojang.com/mc/game/version_manifest.json', 200))
2023-03-19 07:12:14 +00:00
message1 = msg.locale.t("mcv.mcv.message.message1", release=data['latest']['release'], snapshot=data['latest']['snapshot'])
2020-08-07 11:32:45 +00:00
except (ConnectionError, OSError): # Probably...
2023-03-19 07:12:14 +00:00
message1 = msg.locale.t("mcv.mcv.message.message1.failed")
2020-08-20 14:36:47 +00:00
try:
2022-08-01 15:33:35 +00:00
mojira = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/10400/versions', 200))
2020-08-20 14:36:47 +00:00
release = []
prefix = ' | '
for v in mojira:
if not v['archived']:
release.append(v['name'])
message2 = prefix.join(release)
2020-08-21 12:40:05 +00:00
except Exception:
2023-03-19 07:12:14 +00:00
message2 = msg.locale.t("mcv.mcv.message.message2.failed")
return msg.locale.t("mcv.mcv.message", message1=message1, message2=message2)
2020-08-07 11:32:45 +00:00
2020-09-19 10:35:13 +00:00
2023-03-19 07:15:40 +00:00
async def mcbv(msg):
play_store_version = None
if IP.country != 'China':
try: # play store
play_store_version = google_play_scraper('com.mojang.minecraftpe')['version']
except Exception:
2023-02-09 17:14:35 +00:00
pass
ms_store_version = None
try:
fetch_ = await post_url('https://store.rg-adguard.net/api/GetFiles',
status_code=200,
fmt='text',
data={'type': 'url', 'url': 'https://www.microsoft.com/store/productId/9NBLGGH2JHXJ',
'ring': 'RP', 'lang': 'zh-CN'})
if fetch_:
ms_store_version = re.findall(r'.*Microsoft.MinecraftUWP_(.*?)_.*', fetch_, re.M | re.I)[0]
except Exception:
pass
2021-02-01 15:13:11 +00:00
try:
2022-08-01 15:33:35 +00:00
data = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/10200/versions', 200))
2021-02-01 15:13:11 +00:00
except (ConnectionError, OSError): # Probably...
2023-03-19 07:12:14 +00:00
return ErrorMessage(msg.locale.t('mcv.error.server'))
2021-02-01 15:13:11 +00:00
beta = []
2022-04-07 11:11:24 +00:00
preview = []
2021-02-01 15:13:11 +00:00
release = []
for v in data:
if not v['archived']:
2022-04-07 11:11:24 +00:00
if re.match(r".*Beta$", v["name"]):
beta.append(v["name"])
elif re.match(r".*Preview$", v["name"]):
preview.append(v["name"])
2021-02-01 15:13:11 +00:00
else:
2022-04-07 11:11:24 +00:00
if v["name"] != "Future Release":
release.append(v["name"])
2021-08-25 14:32:37 +00:00
fix = " | "
2022-04-07 11:11:24 +00:00
msg2 = f'Beta: {fix.join(beta)}\nPreview: {fix.join(preview)}\nRelease: {fix.join(release)}'
2023-02-09 17:14:35 +00:00
return \
2023-03-19 07:12:14 +00:00
(f"""{msg.locale.t("mcv.mcbv.message.play_store")}
{play_store_version if play_store_version is not None else msg.locale.t('mcv.mcbv.message.failed')}
2023-02-09 17:14:35 +00:00
""" if IP.country != 'China' else '') + \
2023-03-19 07:12:14 +00:00
f"""{msg.locale.t("mcv.mcbv.message.ms_store")}
{ms_store_version if ms_store_version is not None else msg.locale.t('mcv.mcbv.message.failed')}
2023-02-09 17:14:35 +00:00
""" +\
2023-03-19 07:12:14 +00:00
msg.locale.t("mcv.mcbv.message", msg2=msg2)
2021-02-01 15:13:11 +00:00
2023-03-19 07:15:40 +00:00
async def mcdv(msg):
2021-02-01 15:13:11 +00:00
try:
2022-08-01 15:33:35 +00:00
data = json.loads(await get_url('https://bugs.mojang.com/rest/api/2/project/11901/versions', 200))
2021-02-01 15:13:11 +00:00
except (ConnectionError, OSError): # Probably...
2023-03-19 07:12:14 +00:00
return ErrorMessage(msg.locale.t('mcv.error.server'))
2021-08-25 14:32:37 +00:00
release = []
2021-02-01 15:13:11 +00:00
for v in data:
if not v['archived']:
2021-08-25 14:32:37 +00:00
release.append(v["name"])
2023-03-19 07:12:14 +00:00
return msg.locale.t('mcv.mcdv.message', mcdversion=" | ".join(release))
2022-01-15 04:36:33 +00:00
2023-03-19 07:15:40 +00:00
async def mcev(msg):
2022-01-15 04:36:33 +00:00
try:
2022-08-01 15:33:35 +00:00
data = await get_url('https://meedownloads.blob.core.windows.net/win32/x86/updates/Updates.txt', 200)
2022-08-04 07:52:42 +00:00
Logger.debug(data)
2022-07-31 08:27:58 +00:00
version = re.search(r'(?<=\[)(.*?)(?=])', data)[0]
2022-08-04 07:52:42 +00:00
Logger.debug(version)
2022-01-15 04:36:33 +00:00
except (ConnectionError, OSError): # Probably...
2023-03-19 07:12:14 +00:00
return ErrorMessage(msg.locale.t('mcv.error.server'))
2023-03-19 07:14:01 +00:00
return f'{msg.locale.t("mcv.mcev.message")}{version}'