diff --git a/web/trade-fairs.js b/web/trade-fairs.js index 0cb19c5..6cdf66b 100644 --- a/web/trade-fairs.js +++ b/web/trade-fairs.js @@ -1021,53 +1021,58 @@ return td; } - function buildTradeFairQueries(row) { + function buildTradeFairBaseQuery(row) { const base = String(row.messe || '').trim(); - const city = String(row.stadt || '').trim(); - const topic = String(row.thema || '').split(',')[0].trim(); + if (base) { + return base; + } - return [...new Set([ - base, - [base, city].filter(Boolean).join(' '), - [base, topic].filter(Boolean).join(' ') - ].map((entry) => entry.trim()).filter(Boolean))]; + const fallback = [row.messe, row.stadt].map((value) => String(value || '').trim()).filter(Boolean).join(' '); + return fallback.trim(); } - function openQueryFallback(query) { - const trimmed = String(query || '').trim(); + function openBookmarkLikeFallback(baseQuery) { + const trimmed = String(baseQuery || '').trim(); if (!trimmed) { return 0; } - if (typeof window.buildBookmarkSearchUrl === 'function') { - const built = window.buildBookmarkSearchUrl(trimmed); - if (built) { - window.open(built, '_blank', 'noopener'); - return 1; - } - } + const suffixes = ['Gewinnspiel', 'gewinnen', 'verlosen']; + let opened = 0; - const url = new URL('https://www.facebook.com/search/posts'); - url.searchParams.set('q', trimmed); - window.open(url.toString(), '_blank', 'noopener'); - return 1; + suffixes.forEach((suffix) => { + const query = `${trimmed} ${suffix}`.trim(); + if (typeof window.buildBookmarkSearchUrl === 'function') { + const built = window.buildBookmarkSearchUrl(query); + if (built) { + window.open(built, '_blank', 'noopener'); + opened += 1; + return; + } + } + + const url = new URL('https://www.facebook.com/search/posts'); + url.searchParams.set('q', query); + window.open(url.toString(), '_blank', 'noopener'); + opened += 1; + }); + + return opened; } function openTradeFairSearch(row) { - const queries = buildTradeFairQueries(row); - if (!queries.length) { + const baseQuery = buildTradeFairBaseQuery(row); + if (!baseQuery) { return 0; } let opened = 0; if (typeof window.openBookmarkQueries === 'function') { - opened = window.openBookmarkQueries(queries); + opened = window.openBookmarkQueries(baseQuery); } if (opened === 0) { - queries.forEach((query) => { - opened += openQueryFallback(query); - }); + opened = openBookmarkLikeFallback(baseQuery); } if (opened > 0) {