blok Aktuelle Nachrichten: rubrike se izmenjujejo v krogu, da ne pride trikrat zapored Sport
This commit is contained in:
+24
-3
@@ -1073,11 +1073,32 @@ export async function registerRoutes(
|
||||
signal: AbortSignal.timeout(10000),
|
||||
});
|
||||
const arts: any[] = await r.json();
|
||||
const items = (Array.isArray(arts) ? arts : [])
|
||||
const sveze = (Array.isArray(arts) ? arts : [])
|
||||
.filter((a) => a && a.slug && a.title)
|
||||
.sort((a, b) => String(b.publishedAt || "").localeCompare(String(a.publishedAt || "")))
|
||||
.slice(0, 12)
|
||||
.map((a) => ({
|
||||
.slice(0, 60);
|
||||
|
||||
// Rubrike se morajo izmenjevati: sicer pridejo trije Sporti zapored,
|
||||
// ker jih bot objavi v svezju. Vzamemo po eno iz vsake rubrike v krogu,
|
||||
// znotraj rubrike pa ostane vrstni red po datumu.
|
||||
const poRubriki = new Map<string, any[]>();
|
||||
for (const a of sveze) {
|
||||
const k = String(a.category || "FOLX NEWS");
|
||||
if (!poRubriki.has(k)) poRubriki.set(k, []);
|
||||
poRubriki.get(k)!.push(a);
|
||||
}
|
||||
const kroznik: any[] = [];
|
||||
let se = true;
|
||||
while (se && kroznik.length < 12) {
|
||||
se = false;
|
||||
for (const vrsta of poRubriki.values()) {
|
||||
const a = vrsta.shift();
|
||||
if (a) { kroznik.push(a); se = true; }
|
||||
if (kroznik.length >= 12) break;
|
||||
}
|
||||
}
|
||||
|
||||
const items = kroznik.map((a) => ({
|
||||
title: String(a.title),
|
||||
link: `https://news.folx.tv/${a.slug}`,
|
||||
source: String(a.category || "FOLX NEWS"),
|
||||
|
||||
Reference in New Issue
Block a user