100 lines
4.7 KiB
TypeScript
100 lines
4.7 KiB
TypeScript
import service from "../services";
|
||
|
||
const sendRank = async () => {
|
||
try {
|
||
const res = await fetch(
|
||
"https://hackathon.tech.xiaomi.com/api/hackathon/2024/vote/list?eventId=33",
|
||
{
|
||
headers: {
|
||
accept: "*/*",
|
||
"accept-language": "zh-CN,zh;q=0.9",
|
||
baggage:
|
||
"sentry-environment=production,sentry-public_key=5b89f1d1d10446f8aca80e4abb1d1024,sentry-trace_id=1a42557958254192ace288caf6a3a0fd,sentry-sample_rate=1,sentry-sampled=true",
|
||
priority: "u=1, i",
|
||
"sec-ch-ua":
|
||
'"Not/A)Brand";v="8", "Chromium";v="126", "Microsoft Edge";v="126"',
|
||
"sec-ch-ua-mobile": "?0",
|
||
"sec-ch-ua-platform": '"Windows"',
|
||
"sec-fetch-dest": "empty",
|
||
"sec-fetch-mode": "cors",
|
||
"sec-fetch-site": "same-origin",
|
||
"sentry-trace": "1a42557958254192ace288caf6a3a0fd-b7ada044143eb872-1",
|
||
cookie:
|
||
"_aegis_cas=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3MTg1Mzc0MjYsImRlcGlkIjoiK1x1MDAxYkx1JVx1MDAwMWd3aV1WYkNcdTAwMTVcXG9wXHUwMDA0aV1WakRcdTAwMWIyeFx1MDAwM1x1MDAwNGldXmEiLCJhdWQiOiJoYWNrYXRob24udGVjaC54aWFvbWkuY29tIiwiYyI6MCwiZGV0YWlsIjoixuw1XHLVr96TnXR4-es_QGRccrRB6rJcdTAwMTEyNrt3OfOQI-epXHK8x0fJX-NRjtVRUdNPJm_oQ1xm85OLkIA_V9ZQyvGd5u2Hxpp0x7lzcozY0ttZy35cL1wi3v-gXHUwMDFikppyuztEx1x1MDAxZaJcdTAwMWJKXHUwMDFjOi02fjH74sxXXGJcdTAwMTNIeTtpXHUwMDA0sdlcdTAwMTFaTyXIXHUwMDA20Vx1MDAxZVxyw6Y1lm_a8pJccimWXGZcdTAwMTFMXHUwMDBmacBcdTAwMDZl3ZTxuEhL5Vx1MDAxZVx1MDAxOFx1MDAwYofjYIHLh0Ggg3eNbLTv6HBcYlx1MDAxNLmKZd25wEQ5XHUwMDA3Jlx1MDAxOFxyJJSSXCJbdjxcdTAwMDPp3ZKvKHXXXHUwMDE5ei43NHNzS4orXHUwMDFlsJFrra2KllxcTu-ucoRRXCJH_mHqj-wy0ZmRROlcdTAwMGWMpLd8U2W6tyaEcFx1MDAxYapMrTRKqLyHqfJ4dTdcYvYycKt4N1x1MDAwMkSZxlwio9YoR7bmiWKpyOuIXHUwMDAzp9XrQrOJ7Lx4tiNcdTAwMDdcIlx1MDAwYmg0k82Dr__vnbVNdfSEkoL19Ow-LV9DNimXUpW9sEpqwLvbXHUwMDA3V-UzTTNZXHLwtn6iPnfcdjlaoCpN2KRcdTAwMGZcdTAwMWaqk43C4Uh6wmJgUWhmSu9Go33msVx1MDAxMWoyvWPgTfq-h8HzXHUwMDExs1wvRYxvt-09XG6r1_JcZqGUo3j2dVeGXHUwMDdmujb59_xlMaDeToNcdTAwMDE3KrggT4CmifFcdTAwMTKyVVx1MDAxOWFD5Fx1MDAxOIOdTCb17cjTsUh6NofpScrnJ0T7iej0XHUwMDE4mlx1MDAxNuSchHFR5mK31Fx0Vlx1MDAwNMRZpcnI14vfkmfJ3PXe1kSs81x1MDAwYu6z0tW294NH31x1MDAxMv7z0yQ6KetGQP0-4c6A5quU48lcdTAwMDbLSK5cdTAwMTjVg1x1MDAxMMd3co5FQip2bfNaa2fQg37-W1xmi1x1MDAxZsOmb9i1XHUwMDE1oU6O7pRcbtk0TjPLXHUwMDA2REzqXCLW5pra1ilfPpfgZF1KvMdkXHUwMDA3J_ddZutdTLxVlHt0KFW7Plx1MDAwM1x1MDAxNven-_dqIyIsInN1YiI6InpoYW95aW5nYm8iLCJ0IjoiZmFsc2UiLCJ1dCI6Ilx1MDAwMz9cdTAwMDZNXHRCVlEiLCJleHAiOjE3MTg4MDAyMjYsImQiOiI2NjRlZjRjNDhjZmJhM2JlMzUyMTdkYjA3Njg3YWJkOSIsImlzcyI6Ik1JLUlORk9TRUMiLCJsIjoiJVx1MDAxYThcdTAwMTFWXHUwMDBmIiwidHlwIjoiY2FzIn0.SNSaKLW9pz9dclMTxcgXChp_j-9i3Vr4C89MqtJp4ING2Y1F64NZaag2wrWL_Vr6MXBdxcY08Q1nPT-4BfidXg",
|
||
Referer: "https://hackathon.tech.xiaomi.com/2024",
|
||
"Referrer-Policy": "strict-origin-when-cross-origin",
|
||
},
|
||
body: null,
|
||
method: "GET",
|
||
}
|
||
);
|
||
const data = (await res.json()) as any;
|
||
const list = data.data.votedInfoList as any[];
|
||
const noNeedTeam = [
|
||
"福尔摩丝与花生",
|
||
"赛博疾风",
|
||
"滴滴滴",
|
||
"大爱老师",
|
||
"愿世界没有调休",
|
||
"萌宠守卫队",
|
||
"说花就花我都队",
|
||
"公路合唱团",
|
||
"APTX4869",
|
||
"su7666",
|
||
"三等奖",
|
||
"你好我有一个帽衫",
|
||
"暖暖的很贴心",
|
||
"AI舞团",
|
||
"人像智绘师",
|
||
"刚刚好",
|
||
"PromptsEngineer",
|
||
"快码加编",
|
||
"驭魔智控",
|
||
"Magicians",
|
||
];
|
||
const overHandred = list.filter(
|
||
(v) => v.voteCount >= 100 && !noNeedTeam.includes(v.teamName)
|
||
);
|
||
// 排序
|
||
overHandred.sort((a: any, b: any) => b.voteCount - a.voteCount);
|
||
const index = overHandred.findIndex((v) => v.teamName === "聚光灯");
|
||
const diff = overHandred[0].voteCount - overHandred[index].voteCount;
|
||
const selfContent = `当前票数:${overHandred[index].voteCount},排名:${
|
||
index + 1
|
||
},距离第一名:${diff}`;
|
||
|
||
const overHandredContent = overHandred
|
||
.map((v) => `**${v.voteCount}**:${v.subjectDesc}`)
|
||
.join("\n");
|
||
|
||
service.lark.message.send("egg")(
|
||
"chat_id",
|
||
"oc_bafb83413e933e25994dd313f5d76c7e",
|
||
"interactive",
|
||
JSON.stringify({
|
||
elements: [
|
||
{
|
||
tag: "markdown",
|
||
content: selfContent,
|
||
},
|
||
{ tag: "markdown", content: "**票数超过100 & 未在前20的队伍:**" },
|
||
{
|
||
tag: "markdown",
|
||
content: overHandredContent,
|
||
},
|
||
],
|
||
header: {
|
||
template: "green",
|
||
title: { content: "寻TA票数监控", tag: "plain_text" },
|
||
},
|
||
})
|
||
);
|
||
} catch (e) {
|
||
console.error(e);
|
||
}
|
||
};
|
||
|
||
export default sendRank;
|
||
|
||
sendRank();
|