feat(directory): add directory.json for index page

This commit is contained in:
Haoyu Xu
2023-01-16 18:27:48 -05:00
parent 2f53443064
commit e58659d8fc
6 changed files with 61 additions and 4 deletions

View File

@@ -24,4 +24,5 @@ operators:
rosmontis_become_anew: !include config/rosmontis_become_anew.yaml
passager_dream_in_a_moment: !include config/passager_dream_in_a_moment.yaml
mizuki_summer_feast: !include config/mizuki_summer_feast.yaml
chongyue: !include config/chongyue.yaml
ling_it_does_wash_the_strings: !include config/ling_it_does_wash_the_strings.yaml

12
config/chongyue.yaml Normal file
View File

@@ -0,0 +1,12 @@
link: chongyue
type: operator
date: 2023/01
title: 'Arknights: Chongyue - 明日方舟:重岳'
filename: dyn_illust_char_1013_chen2
logo: logo_sui
fallback_name: char_1013_chen2_2
viewport_left: 0
viewport_right: 0
viewport_top: 0
viewport_bottom: 0
invert_filter: true

View File

@@ -0,0 +1,12 @@
link: ling_it_does_wash_the_strings
type: skin
date: 2023/01
title: 'Arknights: It Does Wash the Strings / Ling - 明日方舟:濯缨 · 令'
filename: dyn_illust_char_2023_ling#4
logo: logo_sui
fallback_name: char_2023_ling_2#4
viewport_left: 0
viewport_right: 0
viewport_top: 0
viewport_bottom: 0
invert_filter: false

18
lib/directory.js Normal file
View File

@@ -0,0 +1,18 @@
import path from 'path'
import { writeSync, copy } from './file.js'
export default function (config, rootDir) {
const targetFolder = path.join(rootDir, config.folder.release, "_assets");
const sourceFolder = path.join(rootDir, config.folder.operator);
const filesToCopy = [];
const directoryJson = []
for (const [key, value] of Object.entries(config.operators)) {
filesToCopy.push(key);
directoryJson.push(value);
}
writeSync(JSON.stringify(directoryJson, null), path.join(targetFolder, "directory.json"))
filesToCopy.forEach((key) => {
const filename = `${config.operators[key].filename}.json`;
copy(path.join(sourceFolder, key, filename), path.join(targetFolder, filename))
})
}

View File

@@ -6,6 +6,11 @@ export async function write(content, filePath) {
return await fsP.writeFile(filePath, content, { flag: 'w' })
}
export function writeSync(content, filePath) {
mkdir(path.dirname(filePath))
return fs.writeFileSync(filePath, content, { flag: 'w' })
}
export async function read(filePath, encoding = 'utf8') {
return await fsP.readFile(filePath, encoding, { flag: 'r' })
}

View File

@@ -7,6 +7,7 @@ import AssetsProcessor from './lib/assets_processor.js'
import path from 'path'
import { fileURLToPath } from 'url'
import init from './lib/initializer.js'
import directory from './lib/directory.js'
let mode = null
const OPERATOR_NAME = process.env.O;
@@ -35,9 +36,17 @@ const EXTRACTED_FOLDER = path.join(OPERATOR_SOURCE_FOLDER, OPERATOR_NAME, 'extra
const OPERATOR_SHARE_FOLDER = path.join(OPERATOR_SOURCE_FOLDER, '_share')
if (mode === 'NODE') {
if (process.argv[2] === '-i') {
init(OPERATOR_NAME, __dirname, EXTRACTED_FOLDER)
process.exit(0)
const op = process.argv[2]
switch (op) {
case '-i':
init(OPERATOR_NAME, __dirname, EXTRACTED_FOLDER)
process.exit(0)
case '-d':
directory(config, __dirname)
process.exit(0)
default:
break
}
rmdir(OPERATOR_RELEASE_FOLDER)