From 8af43009b624e19550d844942deafebc4233f3c6 Mon Sep 17 00:00:00 2001 From: banan Date: Tue, 3 Dec 2024 15:16:15 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Ozn=C3=A1men=C3=AD=20nov=C3=BDch=20=C4=8Dl?= =?UTF-8?q?=C3=A1nk=C5=AF=20kvalitn=C3=ADho=20magaz=C3=ADnu=20BUM!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/magazin.ts | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/modules/magazin.ts diff --git a/src/modules/magazin.ts b/src/modules/magazin.ts new file mode 100644 index 0000000..58db034 --- /dev/null +++ b/src/modules/magazin.ts @@ -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="(?.+?)">\n *

(?.+?)<\/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; -- 2.34.1 From 552318ec881bfdc2b036e3f7f85e9209fb65ca0b Mon Sep 17 00:00:00 2001 From: banan Date: Tue, 3 Dec 2024 15:37:50 +0100 Subject: [PATCH 2/5] =?UTF-8?q?oprava=20nefunk=C4=8Dnosti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/magazin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/magazin.ts b/src/modules/magazin.ts index 58db034..2ca6979 100644 --- a/src/modules/magazin.ts +++ b/src/modules/magazin.ts @@ -55,7 +55,7 @@ async function urobit() { const novyClanek = await zkontrolovatNovinky(); if (!novyClanek) - return; + naplanovat(); const zprava = `Vyšel nový článek v kvalitním magazínu BUM: **${posledniNazev}**! Přečtěte si ho zde: ${posledniOdkaz}`; -- 2.34.1 From 4148ebcc4e1cafcb4c194d47ce57254acb34a75f Mon Sep 17 00:00:00 2001 From: banan Date: Tue, 3 Dec 2024 15:42:18 +0100 Subject: [PATCH 3/5] =?UTF-8?q?U=C5=BE=20to=20funguje=3F=3F=3F=3F=3F=3F=3F?= =?UTF-8?q?=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/magazin.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/magazin.ts b/src/modules/magazin.ts index 2ca6979..0394e31 100644 --- a/src/modules/magazin.ts +++ b/src/modules/magazin.ts @@ -54,9 +54,11 @@ async function urobit() { const novyClanek = await zkontrolovatNovinky(); - if (!novyClanek) + if (!novyClanek) { naplanovat(); - + 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; -- 2.34.1 From cfe6ee0a90e279fe04f7494e288340234dfe64ce Mon Sep 17 00:00:00 2001 From: banan Date: Tue, 3 Dec 2024 15:52:13 +0100 Subject: [PATCH 4/5] opraven odkaz --- src/modules/magazin.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/magazin.ts b/src/modules/magazin.ts index 0394e31..52cc463 100644 --- a/src/modules/magazin.ts +++ b/src/modules/magazin.ts @@ -19,7 +19,7 @@ async function zkontrolovatNovinky() { if (!nazevAOdkaz || !nazevAOdkaz.groups) return false; const nazevClanku = nazevAOdkaz.groups.nazev; - const odkazClanku = nazevAOdkaz.groups.odkaz; + const odkazClanku = "https://histmy.eu/BUM/clanky/" + nazevAOdkaz.groups.odkaz; if (!nazevClanku) { log(new Error("neni nazev clanku")); @@ -59,11 +59,11 @@ async function urobit() { return; } - const zprava = `Vyšel nový článek v kvalitním magazínu BUM: **${posledniNazev}**! Přečtěte si ho zde: ${posledniOdkaz}`; + const zprava = `Vyšel nový článek v kvalitním magazínu BUM: **${posledniNazev}**\nPř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}`); + general.send(`<@&1313491870231564318>\n${zprava}`); naplanovat(); } -- 2.34.1 From 5523beb46083ed70890db8719638b8048fed6719 Mon Sep 17 00:00:00 2001 From: banan Date: Tue, 3 Dec 2024 15:56:13 +0100 Subject: [PATCH 5/5] oprava odkazu 2 --- src/modules/magazin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/magazin.ts b/src/modules/magazin.ts index 52cc463..7229739 100644 --- a/src/modules/magazin.ts +++ b/src/modules/magazin.ts @@ -19,7 +19,7 @@ async function zkontrolovatNovinky() { if (!nazevAOdkaz || !nazevAOdkaz.groups) return false; const nazevClanku = nazevAOdkaz.groups.nazev; - const odkazClanku = "https://histmy.eu/BUM/clanky/" + nazevAOdkaz.groups.odkaz; + const odkazClanku = "https://histmy.eu/BUM/" + nazevAOdkaz.groups.odkaz; if (!nazevClanku) { log(new Error("neni nazev clanku")); -- 2.34.1