Compare commits

...

6 Commits

Author SHA1 Message Date
411c399ff3
Zvýšení verze a oprava formátování 2024-12-03 16:06:12 +01:00
5523beb460 oprava odkazu 2 2024-12-03 15:56:13 +01:00
cfe6ee0a90 opraven odkaz 2024-12-03 15:52:13 +01:00
4148ebcc4e Už to funguje???????? 2024-12-03 15:42:18 +01:00
552318ec88 oprava nefunkčnosti 2024-12-03 15:37:50 +01:00
8af43009b6 Oznámení nových článků kvalitního magazínu BUM! 2024-12-03 15:16:15 +01:00
3 changed files with 82 additions and 3 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "denim_3001",
"version": "3001.60.5",
"version": "3001.61.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "denim_3001",
"version": "3001.60.5",
"version": "3001.61.0",
"license": "ISC",
"dependencies": {
"@discordjs/voice": "^0.17.0",

View File

@ -1,6 +1,6 @@
{
"name": "denim_3001",
"version": "3001.60.5",
"version": "3001.61.0",
"description": "Toto je velmi kvalitní bot.",
"repository": {
"url": "https://github.com/Histmy/Denim-Bot/"

79
src/modules/magazin.ts Normal file
View File

@ -0,0 +1,79 @@
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 = "https://histmy.eu/BUM/" + 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) {
naplanovat();
return;
}
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>\n${zprava}`);
naplanovat();
}
const exp: Modul = {
on_ready: () => {
client = module.exports.client;
urobit();
}
};
module.exports = exp;