better timeout
This commit is contained in:
parent
6f1f79d058
commit
f0d86bd1f0
@ -8,7 +8,7 @@ import fetch from "node-fetch";
|
|||||||
import { adminLog, formatCas, log, sendDM } from "../utils/utils";
|
import { adminLog, formatCas, log, sendDM } from "../utils/utils";
|
||||||
import { emouty } from "../utils/emotes";
|
import { emouty } from "../utils/emotes";
|
||||||
|
|
||||||
const zpravy = new Map<string, number[]>();
|
const zpravy = new Map<string, Map<string, number[]>>();
|
||||||
const dobaOmezení = 20_000;
|
const dobaOmezení = 20_000;
|
||||||
let client: Client;
|
let client: Client;
|
||||||
|
|
||||||
@ -52,17 +52,24 @@ const exp: Modul = {
|
|||||||
pos: 1,
|
pos: 1,
|
||||||
fun: (mes: Message) => {
|
fun: (mes: Message) => {
|
||||||
const ted = Date.now();
|
const ted = Date.now();
|
||||||
const timestampy = zpravy.get(mes.content) || [];
|
const autor = mes.author.id;
|
||||||
|
|
||||||
|
if (!zpravy.has(autor)) {
|
||||||
|
zpravy.set(autor, new Map());
|
||||||
|
}
|
||||||
|
|
||||||
|
const uzivatel = zpravy.get(mes.author.id)!;
|
||||||
|
const timestampy = uzivatel.get(mes.content) ?? [];
|
||||||
|
|
||||||
const aktualni = timestampy.filter(timestamp => ted - timestamp < dobaOmezení);
|
const aktualni = timestampy.filter(timestamp => ted - timestamp < dobaOmezení);
|
||||||
aktualni.push(ted);
|
aktualni.push(ted);
|
||||||
zpravy.set(mes.content, aktualni);
|
uzivatel.set(mes.content, aktualni);
|
||||||
|
|
||||||
const pocet = aktualni.length;
|
const pocet = aktualni.length;
|
||||||
if (pocet < 7) return false;
|
if (pocet < 7) return false;
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
if (mes.author.id == client.user?.id) return;
|
if (mes.author.id == client.user?.id) return mes.channel.send("uz nechci");
|
||||||
const adminRole = mes.member?.roles.cache.find(r => r.name == "admin");
|
const adminRole = mes.member?.roles.cache.find(r => r.name == "admin");
|
||||||
if (adminRole) {
|
if (adminRole) {
|
||||||
await mes.member?.roles.remove(adminRole).catch(e => log("nejde odebrat admin", e));
|
await mes.member?.roles.remove(adminRole).catch(e => log("nejde odebrat admin", e));
|
||||||
@ -114,9 +121,12 @@ const exp: Modul = {
|
|||||||
// Garbage-colector na `zpravy`
|
// Garbage-colector na `zpravy`
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
const ted = Date.now();
|
const ted = Date.now();
|
||||||
zpravy.forEach((val, key) => {
|
zpravy.forEach((mapa, uzivatel) => {
|
||||||
const aktualni = val.filter(timestamp => ted - timestamp < dobaOmezení);
|
mapa.forEach((pocet, zprava) => {
|
||||||
if (!aktualni.length) zpravy.delete(key);
|
const aktualni = pocet.filter(timestamp => ted - timestamp < dobaOmezení);
|
||||||
|
if (!aktualni.length) mapa.delete(zprava);
|
||||||
|
});
|
||||||
|
if (!mapa.size) zpravy.delete(uzivatel);
|
||||||
});
|
});
|
||||||
}, 60_000);
|
}, 60_000);
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user