Update if webrender not configed
This commit is contained in:
parent
0aae01cabd
commit
b5604ec518
8 changed files with 67 additions and 62 deletions
|
@ -1,44 +1,29 @@
|
|||
import os
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
import urllib.parse
|
||||
|
||||
from config import CFG
|
||||
from core.builtins import Bot, Image as Img, Plain
|
||||
from core.builtins import Bot, Image as BImage, Plain
|
||||
from core.component import module
|
||||
from core.logger import Logger
|
||||
from core.utils.cache import random_cache_path
|
||||
from core.utils.http import get_url
|
||||
|
||||
|
||||
assets_path = os.path.abspath('./assets/arcaea')
|
||||
web_render = CFG.get_url('web_render')
|
||||
web_render_local = CFG.get_url('web_render_local')
|
||||
|
||||
|
||||
arc = module('arcaea', developers=['OasisAkari'], desc='{arcaea.help.desc}',
|
||||
alias=['a', 'arc'])
|
||||
|
||||
|
||||
class WithErrCode(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@arc.command('b30')
|
||||
async def _(msg: Bot.MessageSession):
|
||||
await msg.send_message([Plain(msg.locale.t("arcaea.message.sb616")),
|
||||
Img(os.path.abspath('./assets/arcaea/noc.jpg'))])
|
||||
BImage(os.path.abspath('./assets/arcaea/noc.jpg'))])
|
||||
|
||||
|
||||
@arc.command('download {{arcaea.help.download}}')
|
||||
async def _(msg: Bot.MessageSession, use_local=True):
|
||||
if not web_render_local:
|
||||
if not web_render:
|
||||
Logger.warn('[Webrender] Webrender is not configured.')
|
||||
await msg.finish(msg.locale.t("error.config.webrender.invalid"))
|
||||
use_local = False
|
||||
resp = await get_url((web_render_local if use_local else web_render) + 'source?url=' +
|
||||
urllib.parse.quote('https://webapi.lowiro.com/webapi/serve/static/bin/arcaea/apk/'), 200,
|
||||
async def _(msg: Bot.MessageSession):
|
||||
resp = await get_url('https://webapi.lowiro.com/webapi/serve/static/bin/arcaea/apk/', 200,
|
||||
fmt='json', request_private_ip=True)
|
||||
if resp:
|
||||
await msg.finish([Plain(msg.locale.t("arcaea.message.download", version=resp["value"]["version"],
|
||||
|
@ -48,21 +33,15 @@ async def _(msg: Bot.MessageSession, use_local=True):
|
|||
|
||||
|
||||
@arc.command('random {{arcaea.help.random}}')
|
||||
async def _(msg: Bot.MessageSession, use_local=True):
|
||||
if not web_render_local:
|
||||
if not web_render:
|
||||
Logger.warn('[Webrender] Webrender is not configured.')
|
||||
await msg.finish(msg.locale.t("error.config.webrender.invalid"))
|
||||
use_local = False
|
||||
resp = await get_url((web_render_local if use_local else web_render) + 'source?url=' +
|
||||
urllib.parse.quote('https://webapi.lowiro.com/webapi/song/showcase/'),
|
||||
async def _(msg: Bot.MessageSession):
|
||||
resp = await get_url('https://webapi.lowiro.com/webapi/song/showcase/',
|
||||
200, fmt='json', request_private_ip=True)
|
||||
if resp:
|
||||
value = resp["value"][0]
|
||||
image = f'{assets_path}/jacket/{value["song_id"]}.jpg'
|
||||
result = [Plain(value["title"]["en"])]
|
||||
if os.path.exists(image):
|
||||
result.append(Img(path=image))
|
||||
result.append(BImage(path=image))
|
||||
await msg.finish(result)
|
||||
else:
|
||||
await msg.finish(msg.locale.t("arcaea.message.get_failed"))
|
||||
|
@ -70,19 +49,12 @@ async def _(msg: Bot.MessageSession, use_local=True):
|
|||
|
||||
@arc.command('rank free {{arcaea.help.rank.free}}',
|
||||
'rank paid {{arcaea.help.rank.paid}}')
|
||||
async def _(msg: Bot.MessageSession, use_local=True):
|
||||
if not web_render_local:
|
||||
if not web_render:
|
||||
Logger.warn('[Webrender] Webrender is not configured.')
|
||||
await msg.finish(msg.locale.t("error.config.webrender.invalid"))
|
||||
use_local = False
|
||||
async def _(msg: Bot.MessageSession):
|
||||
if msg.parsed_msg.get('free', False):
|
||||
resp = await get_url((web_render_local if use_local else web_render) + 'source?url=' +
|
||||
urllib.parse.quote('https://webapi.lowiro.com/webapi/song/rank/free/'),
|
||||
resp = await get_url('https://webapi.lowiro.com/webapi/song/rank/free/',
|
||||
200, fmt='json', request_private_ip=True)
|
||||
else:
|
||||
resp = await get_url((web_render_local if use_local else web_render) + 'source?url=' +
|
||||
urllib.parse.quote('https://webapi.lowiro.com/webapi/song/rank/paid/'),
|
||||
resp = await get_url('https://webapi.lowiro.com/webapi/song/rank/paid/',
|
||||
200, fmt='json', request_private_ip=True)
|
||||
if resp:
|
||||
r = []
|
||||
|
@ -180,4 +152,4 @@ async def pttimg(msg: Bot.MessageSession):
|
|||
pttimgr.alpha_composite(ptttext, (0, 0))
|
||||
savepath = random_cache_path() + '.png'
|
||||
pttimgr.save(savepath)
|
||||
await msg.finish([Img(path=savepath)])
|
||||
await msg.finish([BImage(path=savepath)])
|
||||
|
|
|
@ -122,7 +122,10 @@ async def query_plate(msg, plate, username):
|
|||
|
||||
if get_img:
|
||||
img = await msgchain2image([Plain(output)], msg)
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(output.strip())
|
||||
else:
|
||||
await msg.finish(output.strip())
|
||||
|
||||
|
@ -159,7 +162,10 @@ async def _(msg: Bot.MessageSession, level: str, goal: str, username: str = None
|
|||
|
||||
if get_img:
|
||||
img = await msgchain2image([Plain(output)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(output.strip())
|
||||
else:
|
||||
await msg.finish(output.strip())
|
||||
|
||||
|
@ -197,6 +203,9 @@ async def _(msg: Bot.MessageSession, level: str, page: str, username: str = None
|
|||
|
||||
if get_img:
|
||||
img = await msgchain2image([Plain(res)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(output.strip())
|
||||
else:
|
||||
await msg.finish([Plain(res.strip())])
|
||||
|
|
|
@ -53,7 +53,10 @@ async def _(msg: Bot.MessageSession, constant: float, constant_max: float = None
|
|||
await msg.finish(s.strip())
|
||||
else:
|
||||
img = await msgchain2image([Plain(s)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(s)
|
||||
|
||||
|
||||
@chu.command('level <level> [<page>] {{maimai.help.level}}')
|
||||
|
@ -84,7 +87,10 @@ async def _(msg: Bot.MessageSession, level: str, page: str = None):
|
|||
else:
|
||||
s += msg.locale.t("maimai.message.pages", page=page, total_pages=total_pages)
|
||||
img = await msgchain2image([Plain(s)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(s)
|
||||
|
||||
|
||||
@chu.command('search <keyword> {{maimai.help.search}}')
|
||||
|
@ -96,14 +102,17 @@ async def _(msg: Bot.MessageSession, keyword: str):
|
|||
elif len(res) > 200:
|
||||
await msg.finish(msg.locale.t("maimai.message.too_much", length=len(res)))
|
||||
else:
|
||||
search_result = msg.locale.t("maimai.message.search", keyword=name) + "\n"
|
||||
result = msg.locale.t("maimai.message.search", keyword=name) + "\n"
|
||||
for music in sorted(res, key=lambda i: int(i['id'])):
|
||||
search_result += f"{music['id']}\u200B. {music['title']}\n"
|
||||
result += f"{music['id']}\u200B. {music['title']}\n"
|
||||
if len(res) <= SONGS_PER_PAGE:
|
||||
await msg.finish([Plain(search_result.strip())])
|
||||
await msg.finish([Plain(result.strip())])
|
||||
else:
|
||||
img = await msgchain2image([Plain(search_result)])
|
||||
await msg.finish([BImage(img)])
|
||||
img = await msgchain2image([Plain(result)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(result)
|
||||
|
||||
|
||||
@chu.command('b30 [<username>] {{chunithm.help.b30}}')
|
||||
|
|
|
@ -106,5 +106,7 @@ async def generate_best30_text(msg, payload):
|
|||
html += "</div>"
|
||||
|
||||
img = await msgchain2image([Plain(html)])
|
||||
return img
|
||||
|
||||
if img:
|
||||
return img
|
||||
else:
|
||||
await msg.finish(msg.locale.t("error.config.webrender.invalid"))
|
|
@ -2,7 +2,9 @@ import os
|
|||
import ujson as json
|
||||
from datetime import datetime
|
||||
|
||||
from config import CFG
|
||||
from core.builtins import Plain
|
||||
from core.logger import Logger
|
||||
from core.utils.http import get_url
|
||||
from core.utils.image import msgchain2image
|
||||
from core.utils.cache import random_cache_path
|
||||
|
@ -13,6 +15,8 @@ SONGS_PER_PAGE = 20
|
|||
JINGLEBELL_SONG_ID = 70
|
||||
|
||||
assets_path = os.path.abspath('./assets/maimai')
|
||||
web_render = CFG.get_url('web_render')
|
||||
web_render_local = CFG.get_url('web_render_local')
|
||||
total_list = TotalList()
|
||||
|
||||
plate_conversion = {
|
||||
|
@ -212,7 +216,10 @@ async def generate_best50_text(msg, payload):
|
|||
html += "</div>"
|
||||
|
||||
img = await msgchain2image([Plain(html)])
|
||||
return img
|
||||
if img:
|
||||
return img
|
||||
else:
|
||||
await msg.finish(msg.locale.t("error.config.webrender.invalid"))
|
||||
|
||||
|
||||
async def get_rank(msg, payload):
|
||||
|
|
|
@ -56,7 +56,10 @@ async def _(msg: Bot.MessageSession, constant: float, constant_max: float = None
|
|||
await msg.finish(s.strip())
|
||||
else:
|
||||
img = await msgchain2image([Plain(s)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(s)
|
||||
|
||||
|
||||
@mai.command('level <level> [<page>] {{maimai.help.level}}')
|
||||
|
@ -88,7 +91,10 @@ async def _(msg: Bot.MessageSession, level: str, page: str = None):
|
|||
else:
|
||||
s += msg.locale.t("maimai.message.pages", page=page, total_pages=total_pages)
|
||||
img = await msgchain2image([Plain(s)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(s)
|
||||
|
||||
|
||||
@mai.command('new [<page>] {{maimai.help.new}}')
|
||||
|
@ -117,7 +123,10 @@ async def _(msg: Bot.MessageSession, page: str = None):
|
|||
else:
|
||||
s += msg.locale.t("maimai.message.pages", page=page, total_pages=total_pages)
|
||||
img = await msgchain2image([Plain(s)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(s)
|
||||
|
||||
|
||||
@mai.command('search <keyword> {{maimai.help.search}}')
|
||||
|
@ -136,7 +145,10 @@ async def _(msg: Bot.MessageSession, keyword: str):
|
|||
await msg.finish([Plain(result.strip())])
|
||||
else:
|
||||
img = await msgchain2image([Plain(result)])
|
||||
await msg.finish([BImage(img)])
|
||||
if img:
|
||||
await msg.finish([BImage(img)])
|
||||
else:
|
||||
await msg.finish(result)
|
||||
|
||||
|
||||
@mai.command('alias <sid> {{maimai.help.alias}}')
|
||||
|
|
|
@ -3,7 +3,6 @@ import re
|
|||
from core.builtins import Bot, Plain, Image as BImage
|
||||
from core.component import module
|
||||
from core.logger import Logger
|
||||
from core.utils.image import msgchain2image
|
||||
from .libraries.maimaidx_apidata import get_alias, get_info, search_by_alias
|
||||
from .libraries.maimaidx_music import TotalList
|
||||
from .libraries.maimaidx_utils import get_diff, get_grade_info
|
||||
|
|
|
@ -5,7 +5,6 @@ from whois import whois
|
|||
from config import Config
|
||||
from core.builtins import Bot, Plain, Image
|
||||
from core.component import module
|
||||
from core.utils.image import msgchain2image
|
||||
from core.utils.text import parse_time_string
|
||||
|
||||
|
||||
|
@ -31,10 +30,6 @@ async def _(msg: Bot.MessageSession, domain: str):
|
|||
res = await get_whois(msg, domain)
|
||||
output = await msg.finish(res)
|
||||
|
||||
img = await msgchain2image([Plain(output)], msg)
|
||||
await msg.finish([Image(img)])
|
||||
|
||||
|
||||
async def get_whois(msg, domain):
|
||||
try:
|
||||
info = whois(domain)
|
||||
|
|
Reference in a new issue