Aktuelles kot na ONE: vrstica rubrik Politik, Promis, Sport, Musik & Film (brez horoskopa), lastna stran in zdruzen API

This commit is contained in:
FOLX Bot
2026-08-16 18:33:50 +02:00
parent 164775f2b8
commit 056e1d08d6
4 changed files with 221 additions and 2 deletions
+26
View File
@@ -180,6 +180,32 @@ export async function registerRoutes(
res.json(articles);
});
// Rubrike, ki skupaj sestavljajo /aktuelles. Horoskop, recepti in vreme so
// na folx.tv svoje strani, zato jih tu ni.
const AKTUELLES_RUBRIKEN = ["Politik", "Promis", "Sport", "Musik & Film"];
app.get("/api/articles/aktuelles", async (req, res) => {
try {
const page = Math.max(1, parseInt(req.query.page as string) || 1);
const limit = Math.min(48, parseInt(req.query.limit as string) || 12);
const rubrik = (req.query.rubrik as string) || "";
const wanted = rubrik && AKTUELLES_RUBRIKEN.includes(rubrik) ? [rubrik] : AKTUELLES_RUBRIKEN;
const all = (await storage.getArticles()).filter((a) => wanted.includes(a.category));
const total = all.length;
const start = (page - 1) * limit;
res.json({
articles: all.slice(start, start + limit),
total,
page,
totalPages: Math.ceil(total / limit),
hasMore: start + limit < total,
rubriken: AKTUELLES_RUBRIKEN,
});
} catch (e: any) {
res.status(500).json({ message: e?.message || "error" });
}
});
app.get("/api/articles/category/:category", async (req, res) => {
const page = parseInt(req.query.page as string);
const limit = parseInt(req.query.limit as string) || 12;