-
Notifications
You must be signed in to change notification settings - Fork 777
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
116 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import type { RouterData } from "../types.js"; | ||
import type { RouterType } from "../router.types.js"; | ||
import { get } from "../utils/getData.js"; | ||
import { genHeaders } from "../utils/getToken/coolapk.js"; | ||
|
||
export const handleRoute = async (_: undefined, noCache: boolean) => { | ||
const { fromCache, data, updateTime } = await getList(noCache); | ||
const routeData: RouterData = { | ||
name: "coolapk", | ||
title: "酷安", | ||
type: "热榜", | ||
link: "https://www.coolapk.com/", | ||
total: data?.length || 0, | ||
updateTime, | ||
fromCache, | ||
data, | ||
}; | ||
return routeData; | ||
}; | ||
|
||
const getList = async (noCache: boolean) => { | ||
const url = `https://api.coolapk.com/v6/page/dataList?url=/feed/statList?cacheExpires=300&statType=day&sortField=detailnum&title=今日热门&title=今日热门&subTitle=&page=1`; | ||
const result = await get({ | ||
url, | ||
noCache, | ||
headers: await genHeaders(), | ||
}); | ||
const list = result.data.data; | ||
console.log(list); | ||
return { | ||
fromCache: result.fromCache, | ||
updateTime: result.updateTime, | ||
data: list.map((v: RouterType["coolapk"]) => ({ | ||
id: v.id, | ||
title: v.message, | ||
cover: v.tpic, | ||
author: v.username, | ||
desc: v.ttitle, | ||
timestamp: null, | ||
hot: null, | ||
url: v.shareUrl, | ||
mobileUrl: v.shareUrl, | ||
})), | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import md5 from "md5"; | ||
|
||
/** | ||
* 获取随机的DEVICE_ID | ||
* @returns DEVICE_ID | ||
*/ | ||
const getRandomDEVICE_ID = () => { | ||
const id = [10, 6, 6, 6, 14]; | ||
return id.map((i) => Math.random().toString(36).substring(2, i)).join("-"); | ||
}; | ||
|
||
/** | ||
* 获取APP_TOKEN | ||
* @returns APP_TOKEN | ||
*/ | ||
const get_app_token = async () => { | ||
const DEVICE_ID = getRandomDEVICE_ID(); | ||
const now = Math.round(Date.now() / 1000); | ||
const hex_now = "0x" + now.toString(16); | ||
const md5_now = await md5(now.toString()); | ||
const s = | ||
"token://com.coolapk.market/c67ef5943784d09750dcfbb31020f0ab?" + | ||
md5_now + | ||
"$" + | ||
DEVICE_ID + | ||
"&com.coolapk.market"; | ||
const md5_s = await md5(Buffer.from(s).toString("base64")); | ||
const token = md5_s + DEVICE_ID + hex_now; | ||
return token; | ||
}; | ||
|
||
/** | ||
* 获取请求头 | ||
* @returns 请求头 | ||
*/ | ||
export const genHeaders = async () => { | ||
return { | ||
"X-Requested-With": "XMLHttpRequest", | ||
"X-App-Id": "com.coolapk.market", | ||
"X-App-Token": await get_app_token(), | ||
"X-Sdk-Int": "29", | ||
"X-Sdk-Locale": "zh-CN", | ||
"X-App-Version": "11.0", | ||
"X-Api-Version": "11", | ||
"X-App-Code": "2101202", | ||
"User-Agent": | ||
"Mozilla/5.0 (Linux; Android 10; Mi 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.15 Mobile Safari/537.36", | ||
}; | ||
}; |