import { fetch } from "https://esm.town/v/std/fetch";
import { email } from "https://esm.town/v/std/email?v=9";
import { set } from "https://esm.town/v/std/set?v=11";
import { bilibili_data } from "https://esm.town/v/nishui/bilibili_data";
export const biliStream = async (
idArraysss: string[] = [],
): Promise<string> => {
try {
let result = "";
const requests = [];
let stream_data = bilibili_data.stream_data;
const idArray = Object.keys(stream_data);
for (let i = 0; i < idArray.length; i++) {
const id = idArray[i];
const request = fetch(
`https://api.live.bilibili.com/room/v1/Room/room_init?id=${id}`,
).then((data) => data.json());
requests.push(request);
}
const responses = await Promise.all(requests);
for (let i = 0; i < idArray.length; i++) {
const id = idArray[i];
const jsonData = responses[i];
if (jsonData["data"]["live_status"] === 1) {
if (stream_data[id]["status"] === 0) {
stream_data[id]["status"] = 1;
result += `<p>bili直播 ${stream_data[id]["name"]} 开始了 in ${id}</p>\n`;
}
}
else {
if (stream_data[id]["status"] === 1) {
stream_data[id]["status"] = 0;
result += `<p>bili下播 ${stream_data[id]["name"]} in ${id}</p>\n`;
}
}
}
await set("bilibili_data", bilibili_data);
if (result !== "") {
await email({ text: result });
return result;
}
}
catch (error) {
await email({ text: "Error:" + error });
return "ERROR";
}
};