支持输出统计
This commit is contained in:
21
main.js
21
main.js
@@ -8,6 +8,7 @@ class 计数 {
|
||||
周 = new Map()
|
||||
月 = new Map()
|
||||
年 = new Map()
|
||||
总 = new Map()
|
||||
}
|
||||
|
||||
class 类型 {
|
||||
@@ -25,6 +26,24 @@ const 截图 = new 类型()
|
||||
const 收藏 = new 类型()
|
||||
const 综合 = new 类型()
|
||||
|
||||
// 获取浏览数
|
||||
export function get_views(name, ids = []) {
|
||||
const all = { 文章, 作品, 游戏, 截图, 收藏, 综合 }
|
||||
const counts = all[name].浏览数.总
|
||||
return ids.map(id => ({ id, count: counts.get(id) || 0 }))
|
||||
}
|
||||
|
||||
// 获取当日热门搜索词
|
||||
export function get_search(n = 10) {
|
||||
const ex = new Map()
|
||||
const all = { 文章, 作品, 游戏, 截图, 收藏, 综合 }
|
||||
for (const item of all) {
|
||||
item.搜索词.forEach((value, key) => {
|
||||
ex.set(key, (ex.get(key) || 0) + value)
|
||||
})
|
||||
}
|
||||
return [...ex.entries()].sort((a, b) => b[1] - a[1]).slice(0, n)
|
||||
}
|
||||
|
||||
const 日期格式 = new Intl.DateTimeFormat('zh-CN', {
|
||||
year: 'numeric',
|
||||
@@ -60,7 +79,7 @@ const 存档 = async (message = '正在存档...') => {
|
||||
}
|
||||
|
||||
|
||||
export default function () {
|
||||
export function main() {
|
||||
console.log(当前日期, '启动时加载当日数据...')
|
||||
if (fs.existsSync(`./data/${当前日期}.json`)) {
|
||||
const file = fs.readFileSync(`./data/${当前日期}.json`, 'utf8')
|
||||
|
11
server.js
11
server.js
@@ -1,10 +1,19 @@
|
||||
import fs from 'fs'
|
||||
import express from 'express'
|
||||
import main from './main.js'
|
||||
import { main, get_search, get_views } from './main.js'
|
||||
|
||||
const app = express()
|
||||
|
||||
app.use(express.json())
|
||||
|
||||
app.get('/api/get_views/:name', (req, res) => {
|
||||
res.json(get_views(req.params.name, req.query.ids))
|
||||
})
|
||||
|
||||
app.get('/api/get_search/hot', (req, res) => {
|
||||
res.json(get_search(req.query.page || 10))
|
||||
})
|
||||
|
||||
app.get('/api', (req, res) => {
|
||||
const { start, end } = req.query
|
||||
console.log(req.query)
|
||||
|
Reference in New Issue
Block a user