77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = path.dirname(__filename)
|
|
|
|
const dataDir = path.resolve(__dirname, '../data')
|
|
const cacheFile = path.join(dataDir, 'qishier-cache.json')
|
|
const statusFile = path.join(dataDir, 'capture-status.json')
|
|
|
|
function ensureDir() {
|
|
if (!fs.existsSync(dataDir)) {
|
|
fs.mkdirSync(dataDir, { recursive: true })
|
|
}
|
|
}
|
|
|
|
export function ensureDataFiles() {
|
|
ensureDir()
|
|
|
|
if (!fs.existsSync(cacheFile)) {
|
|
fs.writeFileSync(
|
|
cacheFile,
|
|
JSON.stringify(
|
|
{
|
|
updatedAt: null,
|
|
name: '七十二家房客',
|
|
coverUrl: '',
|
|
displayType: 0,
|
|
pages: {},
|
|
beginScoreMap: {},
|
|
items: []
|
|
},
|
|
null,
|
|
2
|
|
),
|
|
'utf-8'
|
|
)
|
|
}
|
|
|
|
if (!fs.existsSync(statusFile)) {
|
|
fs.writeFileSync(
|
|
statusFile,
|
|
JSON.stringify(
|
|
{
|
|
running: false,
|
|
lastMessage: '未启动采集',
|
|
updatedAt: null
|
|
},
|
|
null,
|
|
2
|
|
),
|
|
'utf-8'
|
|
)
|
|
}
|
|
}
|
|
|
|
export function readCache() {
|
|
ensureDataFiles()
|
|
return JSON.parse(fs.readFileSync(cacheFile, 'utf-8'))
|
|
}
|
|
|
|
export function writeCache(data) {
|
|
ensureDataFiles()
|
|
fs.writeFileSync(cacheFile, JSON.stringify(data, null, 2), 'utf-8')
|
|
}
|
|
|
|
export function readStatus() {
|
|
ensureDataFiles()
|
|
return JSON.parse(fs.readFileSync(statusFile, 'utf-8'))
|
|
}
|
|
|
|
export function writeStatus(status) {
|
|
ensureDataFiles()
|
|
fs.writeFileSync(statusFile, JSON.stringify(status, null, 2), 'utf-8')
|
|
}
|