support snapgenshin

This commit is contained in:
HolographicHat
2022-04-07 21:56:27 +08:00
parent 90ab4dafe9
commit ea168ce96b

View File

@@ -2,7 +2,7 @@ const fs = require("fs")
const axios = require("axios") const axios = require("axios")
const readline = require("readline") const readline = require("readline")
const { loadCache, log } = require("./utils") const { loadCache, log } = require("./utils")
const { openUrl } = require("./native") const { openUrl, copyToClipboard } = require("./native")
const exportToSeelie = proto => { const exportToSeelie = proto => {
const out = { achievements: {} } const out = { achievements: {} }
@@ -33,6 +33,24 @@ const exportToPaimon = async proto => {
log(`导出为文件: ${fp}`) log(`导出为文件: ${fp}`)
} }
const exportToSnapGenshin = async proto => {
const out = []
const p = i => i.toString().padStart(2, "0")
const getDate = ts => {
const d = new Date(parseInt(`${ts}000`))
return `${d.getFullYear()}-${p(d.getMonth()+1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}`
}
proto.list.filter(a => a.status === 3 || a.status === 2).forEach(({id, finishTimestamp}) => {
out.push({
id: id,
dateTime: getDate(finishTimestamp)
})
})
const json = JSON.stringify(out, null, 2)
copyToClipboard(json)
log("导出内容已复制到剪贴板")
}
const exportToCocogoat = async proto => { const exportToCocogoat = async proto => {
const out = { const out = {
achievements: [] achievements: []
@@ -122,16 +140,19 @@ const exportData = async proto => {
const question = (query) => new Promise(resolve => { const question = (query) => new Promise(resolve => {
rl.question(query, resolve) rl.question(query, resolve)
}) })
const chosen = await question("导出至: \n[0] 椰羊 (https://cocogoat.work/achievement)\n[1] Paimon.moe\n[2] Seelie.me\n[3] 表格文件 (默认)\n输入一个数字(0-3): ") const chosen = await question("导出至: \n[0] 椰羊 (https://cocogoat.work/achievement)\n[1] SnapGenshin\n[2] Paimon.moe\n[3] Seelie.me\n[4] 表格文件 (默认)\n输入一个数字(0-4): ")
rl.close() rl.close()
switch (chosen) { switch (chosen) {
case "0": case "0":
await exportToCocogoat(proto) await exportToCocogoat(proto)
break break
case "1": case "1":
await exportToPaimon(proto) await exportToSnapGenshin(proto)
break break
case "2": case "2":
await exportToPaimon(proto)
break
case "3":
await exportToSeelie(proto) await exportToSeelie(proto)
break break
case "raw": case "raw":