Oznámení nových článků kvalitního magazínu BUM!
This commit is contained in:
parent
2298243973
commit
8af43009b6
77
src/modules/magazin.ts
Normal file
77
src/modules/magazin.ts
Normal file
@ -0,0 +1,77 @@
|
||||
import { TextChannel } from "discord.js";
|
||||
import { CClient, Modul } from "../utils/types";
|
||||
import { log } from "../utils/utils";
|
||||
|
||||
let client: CClient;
|
||||
|
||||
let najdiClanek = /href="(?<odkaz>.+?)">\n *<h2>(?<nazev>.+?)<\/h2>/;
|
||||
|
||||
let posledniNazev: string;
|
||||
let posledniOdkaz: string;
|
||||
|
||||
async function zkontrolovatNovinky() {
|
||||
const stranka = await fetch("https://histmy.eu/BUM/clanky")
|
||||
.then(r => r.text())
|
||||
.catch(e => log("chyba pri accessovani BUM stránky", e));
|
||||
|
||||
let nazevAOdkaz = najdiClanek.exec(stranka || "");
|
||||
|
||||
if (!nazevAOdkaz || !nazevAOdkaz.groups) return false;
|
||||
|
||||
const nazevClanku = nazevAOdkaz.groups.nazev;
|
||||
const odkazClanku = nazevAOdkaz.groups.odkaz;
|
||||
|
||||
if (!nazevClanku) {
|
||||
log(new Error("neni nazev clanku"));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Při spuštění bota
|
||||
if (!posledniNazev) {
|
||||
posledniNazev = nazevClanku;
|
||||
posledniOdkaz = odkazClanku;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Pokud vyšel nový článek
|
||||
if (posledniNazev !== nazevClanku) {
|
||||
posledniNazev = nazevClanku;
|
||||
posledniOdkaz = odkazClanku;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
async function naplanovat() {
|
||||
setTimeout(urobit, 5 * 1000 * 60);
|
||||
}
|
||||
|
||||
async function urobit() {
|
||||
const guilda = client.guilds.cache.get("555779161067749446");
|
||||
|
||||
if (!guilda) return log(new Error("dobytcarna nenalezena"));
|
||||
|
||||
const novyClanek = await zkontrolovatNovinky();
|
||||
|
||||
if (!novyClanek)
|
||||
return;
|
||||
|
||||
const zprava = `Vyšel nový článek v kvalitním magazínu BUM: **${posledniNazev}**! Přečtěte si ho zde: ${posledniOdkaz}`;
|
||||
|
||||
const general = guilda.channels.cache.get("555779161067749448") as TextChannel;
|
||||
if (!general) return log(new Error("general nenalezen"));
|
||||
general.send(`<@&1313491870231564318> ${zprava}`);
|
||||
|
||||
naplanovat();
|
||||
}
|
||||
|
||||
const exp: Modul = {
|
||||
on_ready: () => {
|
||||
client = module.exports.client;
|
||||
|
||||
urobit();
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = exp;
|
||||
Loading…
x
Reference in New Issue
Block a user