now-updater/index.js

52 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-12-18 01:57:14 +00:00
import "dotenv/config";
import { items } from "./config.js";
const OMGLOL_API = `https://api.omg.lol/address/${process.env.OMGLOL_USERNAME}/now`;
export async function getNow() {
const res = await fetch(OMGLOL_API);
const data = await res.json();
return data.response.now.content;
}
export async function setNow(newNow) {
const res = await fetch(OMGLOL_API, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.OMGLOL_KEY}`,
},
body: JSON.stringify({
content: newNow,
listed: 1,
}),
});
const data = await res.json();
console.log(data.response.message);
}
export default async function now() {
const now = await getNow();
let newNow = now;
await Promise.all(
items.map(async ({ id, regex, getLatest }) => {
console.log("getLatest", getLatest);
const latest = await getLatest();
console.log(`${id}: ${latest}`);
if (latest) {
newNow = newNow.replace(regex, `$1${latest}$2`);
}
}),
);
if (now === newNow) {
console.log("Now page has no changes");
} else {
await setNow(newNow);
}
}
await now();