mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
feat:下载、删除图片资源
This commit is contained in:
parent
65652f87ef
commit
b450b7f08b
8 changed files with 180 additions and 7 deletions
139
apps/manage.js
Normal file
139
apps/manage.js
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
import { ZZZPlugin } from '../lib/plugin.js';
|
||||
import { rulePrefix } from '../lib/common.js';
|
||||
import { getAllCharactersID } from '../lib/convert/char.js';
|
||||
import { getAllEquipID } from '../lib/convert/equip.js';
|
||||
import { getAllWeaponID } from '../lib/convert/weapon.js';
|
||||
import { imageResourcesPath } from '../lib/path.js';
|
||||
import fs from 'fs';
|
||||
import {
|
||||
getRoleImage,
|
||||
getSquareAvatar,
|
||||
getSuitImage,
|
||||
getWeaponImage,
|
||||
} from '../lib/download.js';
|
||||
|
||||
export class Panel extends ZZZPlugin {
|
||||
constructor() {
|
||||
super({
|
||||
name: '[ZZZ-Plugin]Manage',
|
||||
dsc: 'zzzmanage',
|
||||
event: 'message',
|
||||
priority: 100,
|
||||
rule: [
|
||||
{
|
||||
reg: `${rulePrefix}下载(全部|所有)资源$`,
|
||||
fnc: 'downloadAll',
|
||||
},
|
||||
{
|
||||
reg: `${rulePrefix}删除(全部|所有)资源$`,
|
||||
fnc: 'deleteAll',
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
async downloadAll() {
|
||||
if (!this.e.isMaster) return false;
|
||||
const charIDs = getAllCharactersID();
|
||||
const equipSprites = getAllEquipID();
|
||||
const weaponSprites = getAllWeaponID();
|
||||
const result = {
|
||||
char: {
|
||||
success: 0,
|
||||
failed: 0,
|
||||
total: charIDs.length,
|
||||
},
|
||||
charSquare: {
|
||||
success: 0,
|
||||
failed: 0,
|
||||
total: charIDs.length,
|
||||
},
|
||||
equip: {
|
||||
success: 0,
|
||||
failed: 0,
|
||||
total: equipSprites.length,
|
||||
},
|
||||
weapon: {
|
||||
success: 0,
|
||||
failed: 0,
|
||||
total: weaponSprites.length,
|
||||
},
|
||||
};
|
||||
await this.reply(
|
||||
'开始下载资源,注意,仅支持下载面板的角色图、武器图、套装图,以及角色卡片的角色头像图。暂不支持下载邦布头像。'
|
||||
);
|
||||
for (const id of charIDs) {
|
||||
try {
|
||||
await getSquareAvatar(id);
|
||||
result.charSquare.success++;
|
||||
} catch (error) {
|
||||
logger.error('getSquareAvatar', id, error);
|
||||
result.charSquare.failed++;
|
||||
}
|
||||
try {
|
||||
await getRoleImage(id);
|
||||
result.char.success++;
|
||||
} catch (error) {
|
||||
logger.error('getRoleImage', id, error);
|
||||
result.char.failed++;
|
||||
}
|
||||
}
|
||||
for (const sprite of equipSprites) {
|
||||
try {
|
||||
await getSuitImage(sprite);
|
||||
result.equip.success++;
|
||||
} catch (error) {
|
||||
logger.error('getSuitImage', sprite, error);
|
||||
result.equip.failed++;
|
||||
}
|
||||
}
|
||||
for (const sprite of weaponSprites) {
|
||||
try {
|
||||
await getWeaponImage(sprite);
|
||||
result.weapon.success++;
|
||||
} catch (error) {
|
||||
logger.error('getWeaponImage', sprite, error);
|
||||
result.weapon.failed++;
|
||||
}
|
||||
}
|
||||
const messages = [
|
||||
'资源下载完成(成功的包含先前下载的图片)',
|
||||
'角色图需下载' +
|
||||
charIDs.length +
|
||||
'张,成功' +
|
||||
result.char.success +
|
||||
'张,失败' +
|
||||
result.char.failed +
|
||||
'张',
|
||||
'角色头像图需下载' +
|
||||
charIDs.length +
|
||||
'张,成功' +
|
||||
result.charSquare.success +
|
||||
'张,失败' +
|
||||
result.charSquare.failed +
|
||||
'张',
|
||||
'套装图需下载' +
|
||||
equipSprites.length +
|
||||
'张,成功' +
|
||||
result.equip.success +
|
||||
'张,失败' +
|
||||
result.equip.failed +
|
||||
'张',
|
||||
'武器图需下载' +
|
||||
weaponSprites.length +
|
||||
'张,成功' +
|
||||
result.weapon.success +
|
||||
'张,失败' +
|
||||
result.weapon.failed +
|
||||
'张',
|
||||
];
|
||||
await this.reply(messages.join('\n'));
|
||||
}
|
||||
async deleteAll() {
|
||||
if (!this.e.isMaster) return false;
|
||||
await this.reply('【注意】正在删除所有资源图片,后续使用需要重新下载!');
|
||||
if (fs.existsSync(imageResourcesPath)) {
|
||||
fs.rmdirSync(imageResourcesPath, { recursive: true });
|
||||
}
|
||||
await this.reply('资源图片已删除!');
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue