mirror of
https://github.com/ourongxing/newsnow.git
synced 2025-01-19 03:09:14 +08:00
83 lines
1.8 KiB
TypeScript
83 lines
1.8 KiB
TypeScript
import { getSearchParams } from "./utils"
|
|
|
|
interface Item {
|
|
id: number
|
|
title?: string
|
|
brief: string
|
|
shareurl: string
|
|
// need *1000
|
|
ctime: number
|
|
// 1
|
|
is_ad: number
|
|
}
|
|
interface TelegraphRes {
|
|
data: {
|
|
roll_data: Item[]
|
|
}
|
|
}
|
|
|
|
interface Depthes {
|
|
data: {
|
|
top_article: Item[]
|
|
depth_list: Item[]
|
|
}
|
|
}
|
|
|
|
interface Hot {
|
|
data: Item[]
|
|
}
|
|
|
|
const depth = defineSource(async () => {
|
|
const apiUrl = `https://www.cls.cn/v3/depth/home/assembled/1000`
|
|
const res: Depthes = await myFetch(apiUrl, {
|
|
query: Object.fromEntries(await getSearchParams()),
|
|
})
|
|
return res.data.depth_list.sort((m, n) => n.ctime - m.ctime).map((k) => {
|
|
return {
|
|
id: k.id,
|
|
title: k.title || k.brief,
|
|
mobileUrl: k.shareurl,
|
|
pubDate: k.ctime * 1000,
|
|
url: `https://www.cls.cn/detail/${k.id}`,
|
|
}
|
|
})
|
|
})
|
|
|
|
const hot = defineSource(async () => {
|
|
const apiUrl = `https://www.cls.cn/v2/article/hot/list`
|
|
const res: Hot = await myFetch(apiUrl, {
|
|
query: Object.fromEntries(await getSearchParams()),
|
|
})
|
|
return res.data.map((k) => {
|
|
return {
|
|
id: k.id,
|
|
title: k.title || k.brief,
|
|
mobileUrl: k.shareurl,
|
|
url: `https://www.cls.cn/detail/${k.id}`,
|
|
}
|
|
})
|
|
})
|
|
|
|
const telegraph = defineSource(async () => {
|
|
const apiUrl = `https://www.cls.cn/nodeapi/updateTelegraphList`
|
|
const res: TelegraphRes = await myFetch(apiUrl, {
|
|
query: Object.fromEntries(await getSearchParams()),
|
|
})
|
|
return res.data.roll_data.filter(k => !k.is_ad).map((k) => {
|
|
return {
|
|
id: k.id,
|
|
title: k.title || k.brief,
|
|
mobileUrl: k.shareurl,
|
|
pubDate: k.ctime * 1000,
|
|
url: `https://www.cls.cn/detail/${k.id}`,
|
|
}
|
|
})
|
|
})
|
|
|
|
export default defineSource({
|
|
"cls": telegraph,
|
|
"cls-telegraph": telegraph,
|
|
"cls-depth": depth,
|
|
"cls-hot": hot,
|
|
})
|