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/arcaea/utils.py

78 lines
2.8 KiB
Python
Raw Normal View History

import os
import shutil
import traceback
from config import Config
2023-02-05 14:33:33 +00:00
from core.utils.http import get_url, download_to_cache
from .initialize import blur_song_img
botarcapi_url = Config("botarcapi_url")
headers = {"User-Agent": Config('botarcapi_agent')}
assets_path = os.path.abspath('./assets')
cache_path = os.path.abspath('./cache')
assets_arc = os.path.abspath(f'{assets_path}/arcaea')
errcode = {-1: "非法的用户名或好友代码",
-2: "非法的好友代码",
-3: "未找到用户",
-4: "好友列表已满",
-5: "非法的歌曲名或歌曲ID",
-6: "非法的歌曲ID",
-7: "歌曲未记录",
-8: "记录过多",
-9: "非法的难度",
-10: "非法的近期记录数",
-11: "分配Arcaea账户失败",
-12: "清除好友对象失败",
-13: "添加对象失败",
-14: "该歌曲无Beyond难度",
-15: "无游玩记录",
-16: "用户排行榜被封禁",
-17: "查询B30记录失败",
-18: "更新服务器不可用",
-19: "非法的搭档",
-20: "文件不存在",
-23: "发生了内部错误",
-233: "发生了未知错误", }
async def get_userinfo(user):
try:
2022-08-01 15:33:35 +00:00
get_ = await get_url(botarcapi_url + f"user/info?user={user}", status_code=200, headers=headers, fmt='json')
username = get_['content']['account_info']['name']
code = get_['content']['account_info']['code']
return username, code
except Exception:
traceback.print_exc()
return False
async def autofix_b30_song_background(songid, byd=False):
has_byd_jacket = False
if byd:
try:
get_ = await get_url(botarcapi_url + f"song/info?songid={songid}", status_code=200, headers=headers,
fmt='json')
difficulties = get_['content']['difficulties']
if len(difficulties) == 4:
if difficulties[3]['jacket_override']:
has_byd_jacket = True
except Exception:
traceback.print_exc()
file_name = f"{songid}{'_3' if has_byd_jacket else ''}.jpg"
2023-01-28 05:53:11 +00:00
file = await download_to_cache(
botarcapi_url + f"assets/song?songid={songid}" + ('&difficulty=3' if has_byd_jacket else ''),
headers=headers)
if file:
dst = assets_arc + '/jacket/'
shutil.copyfile(file, dst + file_name)
await blur_song_img(dst + file_name)
async def autofix_character(partner):
file = await download_to_cache(botarcapi_url + f"assets/char?partner={partner}",
headers=headers)
if file:
dst = assets_arc + '/char/'
shutil.copyfile(file, dst + f"{partner}.png")