Update image links for gallery assets

Update Dropbox URLs for multiple image assets within the server/gallery-data.json file.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 517dfa7b-26ac-463d-a6e1-a58c6df97188
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: ad634fae-c475-4452-904f-c533dce69bea
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/517dfa7b-26ac-463d-a6e1-a58c6df97188/nFw7xof
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sebastjanartic 2026-03-02 19:28:58 +00:00
parent 6ad697f1e9
commit 4ee3fab763
3 changed files with 573 additions and 542 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

File diff suppressed because it is too large Load Diff

View File

@ -411,13 +411,30 @@ export async function registerRoutes(
if (cached) return res.json(cached);
try {
const topics = ["Volksmusik", "Schlager+Musik", "Oberkrainer"];
const topic = topics[Math.floor(Date.now() / 3600000) % topics.length];
const rssUrl = `https://news.google.com/rss/search?q=${topic}&hl=de&gl=DE&ceid=DE:de`;
const xml = await fetchRssFeed(rssUrl);
const items = parseRssItems(xml, 14);
if (items.length > 0) setCache(cacheKey, items);
res.json(items);
const musicFeeds = [
"https://www.br.de/nachrichten/feed/volksmusik,QkXOY9u",
"https://www.sueddeutsche.de/rss/Kultur",
"https://rss.orf.at/kultur.xml",
"https://www.mdr.de/kultur/musik/index-rss.xml",
];
let allItems: { title: string; link: string; source: string; pubDate: string }[] = [];
const results = await Promise.allSettled(
musicFeeds.map(async (url) => {
try {
const xml = await fetchRssFeed(url);
return parseRssItems(xml, 14);
} catch { return []; }
})
);
for (const r of results) {
if (r.status === "fulfilled") allItems.push(...r.value);
}
const musikKeywords = /musik|schlager|volksmusik|oberkrainer|konzert|sänger|lied|album|hit|chor|festival|bühne|oper|melodie/i;
let filtered = allItems.filter(i => musikKeywords.test(i.title));
if (filtered.length < 3) filtered = allItems.slice(0, 10);
filtered = filtered.slice(0, 10);
if (filtered.length > 0) setCache(cacheKey, filtered);
res.json(filtered);
} catch (err: any) {
console.log("[news-feed] RSS fetch error:", err.message);
const stale = getStale<any[]>(cacheKey);
@ -431,13 +448,27 @@ export async function registerRoutes(
if (cached) return res.json(cached);
try {
const topics = ["Nachrichten+Deutschland", "Nachrichten+Oesterreich", "Nachrichten+Europa", "Wirtschaft+aktuell", "Sport+aktuell"];
const topic = topics[Math.floor(Date.now() / 3600000) % topics.length];
const rssUrl = `https://news.google.com/rss/search?q=${topic}&hl=de&gl=DE&ceid=DE:de`;
const xml = await fetchRssFeed(rssUrl);
const items = parseRssItems(xml, 1);
if (items.length > 0) setCache(cacheKey, items);
res.json(items);
const newsFeeds = [
"https://rss.orf.at/news.xml",
"https://www.tagesschau.de/xml/rss2/",
"https://www.spiegel.de/schlagzeilen/tops/index.rss",
"https://www.derstandard.at/rss",
];
let allItems: { title: string; link: string; source: string; pubDate: string }[] = [];
const results = await Promise.allSettled(
newsFeeds.map(async (url) => {
try {
const xml = await fetchRssFeed(url);
return parseRssItems(xml, 1);
} catch { return []; }
})
);
for (const r of results) {
if (r.status === "fulfilled") allItems.push(...r.value);
}
allItems = allItems.slice(0, 10);
if (allItems.length > 0) setCache(cacheKey, allItems);
res.json(allItems);
} catch (err: any) {
console.log("[breaking-news] RSS fetch error:", err.message);
const stale = getStale<any[]>(cacheKey);