- BS估算缓存机制修复

- 快捷功能【快速犯罪】界面优化
This commit is contained in:
Liwanyi 2024-03-29 09:44:06 +08:00
parent 2eb1fbf087
commit 92173c57ec
5 changed files with 53 additions and 30 deletions

View File

@ -1,5 +1,14 @@
# CHANGE # CHANGE
## 1.2.0
2024年03月29日
### 修改
- BS估算缓存机制修复
- 快捷功能【快速犯罪】界面优化
## 1.1.9 ## 1.1.9
2024年03月27日 2024年03月27日

View File

@ -1,6 +1,6 @@
{ {
"name": "wuhu-torn-helper", "name": "wuhu-torn-helper",
"version": "1.1.9", "version": "1.2.0",
"description": "芜湖助手", "description": "芜湖助手",
"scripts": { "scripts": {
"release": "cross-env NODE_ENV=production rollup -c && node build.mjs", "release": "cross-env NODE_ENV=production rollup -c && node build.mjs",

View File

@ -97,9 +97,13 @@ BS: ${ toThousands(data.total) }<br/>
偏差: ${ data.skewness }%<br/> 偏差: ${ data.skewness }%<br/>
估算时间: ${ timePastFormat(Date.now() - data.timestamp * 1000) } 估算时间: ${ timePastFormat(Date.now() - data.timestamp * 1000) }
` `
}).catch(err => domNode.innerHTML = 'BS估算出错了: ' + err.message) }).catch(err => {
domNode.innerHTML = 'BS估算出错了: ' + err.message
throw new TypeError('BS估算出错了: ' + err.message)
})
} catch (e) { } catch (e) {
this.msgWrapper.create('BS估算失败', null, 'error') this.msgWrapper.create('BS估算失败' + e.message, null, 'error')
throw new TypeError('BS估算失败' + e.message)
} }
} }
} }

View File

@ -35,7 +35,7 @@ const getCacheObj = () => {
const getCache = (id: number): YataApiDataWrap => { const getCache = (id: number): YataApiDataWrap => {
let cache: YataApiDataWrap = getCacheObj()[id] let cache: YataApiDataWrap = getCacheObj()[id]
if (cache && (Date.now() - cache.timestamp * 1000 > cacheExpireMs)) { if (cache && ((Date.now() - (cache.timestamp * 1000)) < cacheExpireMs)) {
cache.isCache = true cache.isCache = true
} else { } else {
cache = null cache = null

View File

@ -1,27 +1,37 @@
<template> <template>
<el-row> <!-- <el-row>-->
<el-col :span="12"> <!-- <el-col :span="12">-->
<div class="mt-4">
<el-space>
<el-button-group> <el-button-group>
<el-button @click="doCrime(11, 'warehouse')">烧仓库</el-button> <el-button @click="doCrime(11, 'warehouse')">烧仓库</el-button>
<el-button @click="doCrime(15, 'napcop')">做15-3</el-button> <el-button @click="doCrime(15, 'napcop')">做15-3</el-button>
<el-button @click="doCrime(18, 'hackbank')">做18-1</el-button> <el-button @click="doCrime(18, 'hackbank')">做18-1</el-button>
</el-button-group> </el-button-group>
</el-col> <!-- </el-col>-->
<el-col :span="12"> <!-- <el-col :span="12">-->
<el-button type="primary" @click="doYouLikeABeer()">🍺 你喜欢啤酒吗</el-button> <el-button type="primary" @click="doYouLikeABeer()">🍺 你喜欢啤酒吗</el-button>
</el-col> </el-space>
</el-row> </div>
<el-row> <!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<div class="mt-4">
<el-space>
<el-cascader v-model="crimeSelected" :options="CrimeData" :show-all-levels="false" clearable <el-cascader v-model="crimeSelected" :options="CrimeData" :show-all-levels="false" clearable
placeholder="选择其他"/> placeholder="选择其他"/>
<el-button :disabled="!(crimeSelected && crimeSelected.length)" <el-button :disabled="!(crimeSelected && crimeSelected.length)"
:icon="Coffee" :icon="Coffee"
round type="danger" @click="doCrime(crimeSelected[0], crimeSelected[1])"> round type="danger" @click="doCrime(crimeSelected[0], crimeSelected[1])">
</el-button> </el-button>
</el-row> </el-space>
<div> </div>
<!-- </el-row>-->
<div class="mt-4">
<el-space>
<el-tag type="primary">NERVE {{ nerve }}</el-tag> <el-tag type="primary">NERVE {{ nerve }}</el-tag>
<el-tag type="danger">CD {{ boostCoolDown }}</el-tag> <el-tag type="danger">CD {{ boostCoolDown }}</el-tag>
</el-space>
</div> </div>
<div v-if="responseHtmlString" v-html="responseHtmlString"></div> <div v-if="responseHtmlString" v-html="responseHtmlString"></div>
<div v-if="results" v-html="results"></div> <div v-if="results" v-html="results"></div>
@ -29,12 +39,12 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Coffee } from "@element-plus/icons-vue"; import { Coffee } from "@element-plus/icons-vue"
import { inject, onBeforeUnmount, onMounted, ref } from 'vue'; import { inject, onBeforeUnmount, onMounted, ref } from 'vue'
import { LoggerKey } from "../ts/class/Logger"; import { LoggerKey } from "../ts/class/Logger"
import { CrimeData } from "./data/CrimeData"; import { CrimeData } from "./data/CrimeData"
import { useItemSync } from "../ts/func/utils/useItem"; import { useItemSync } from "../ts/func/utils/useItem"
import getSidebarData from "../ts/func/utils/getSidebarData"; import getSidebarData from "../ts/func/utils/getSidebarData"
const logger = inject(LoggerKey) const logger = inject(LoggerKey)
const results = ref("") const results = ref("")
@ -45,8 +55,8 @@ const boostCoolDown = ref(0)
const nerve = ref(0) const nerve = ref(0)
const doCrime = async (nerve, crime: "hackbank" | "warehouse" | 'napcop') => { const doCrime = async (nerve, crime: "hackbank" | "warehouse" | 'napcop') => {
loading.value = true; loading.value = true
results.value = ''; results.value = ''
try { try {
results.value = await (await fetch(window.addRFC("https://www.torn.com/crimes.php?step=docrime4&timestamp=" + Date.now()), { results.value = await (await fetch(window.addRFC("https://www.torn.com/crimes.php?step=docrime4&timestamp=" + Date.now()), {
"headers": { "headers": {
@ -64,22 +74,22 @@ const doCrime = async (nerve, crime: "hackbank" | "warehouse" | 'napcop') => {
"method": "POST", "method": "POST",
"mode": "cors", "mode": "cors",
"credentials": "include" "credentials": "include"
})).text(); })).text()
} catch (e) { } catch (e) {
logger.error(e.stack); logger.error(e.stack)
results.value = e.message; results.value = e.message
} }
let err: string; let err: string
try { try {
err = JSON.parse(results.value).error; err = JSON.parse(results.value).error
} catch (e) { } catch (e) {
} }
if (err) { if (err) {
results.value = '错误: ' + err; results.value = '错误: ' + err
// ElMessage.error(': ' + err); // ElMessage.error(': ' + err)
logger.error(err); logger.error(err)
} }
loading.value = false; loading.value = false
updateData() updateData()
} }