Commit graph buzz-rss/buzzrss
Author SHA1 Message Date
Eddy de Vink
cb6d00e707 v1.5.3: filter vereist titel-match of totaalscore >= 3
Regel C: doorlaten bij (titel-match >= 1) of (totaalscore >= 3).
Een treffer in de titel is een sterke OV-intentie (score 2 volstaat);
treffers alleen in de samenvatting moeten dubbel bevestigd worden.
Weert bv. woningbrand-berichten die via 'bussen rijden om'/'busverkeer'
in de lead binnenkwamen, zonder de 112/trein/staking-berichten te raken.
Gevalideerd op 30d kamerhistorie: 96 doorlaat -> 7 geblokkeerd (allemaal ruis).
2026-09-08 14:11:46 +02:00
Eddy de Vink
aa4f7144be v1.5.2: filter DPG premium-artikelen via /ps/ url-path (Parool/VK/Trouw)
Deze feeds dragen geen paywall-marker (<premium>/<dpp:paid>); premium-artikelen
leven onder /ps/. Gedeelde helper _is_paywalled_link voor RSS- en JSON-parsing.
2026-09-07 20:31:47 +02:00
Eddy de Vink
cbb9c2e55d v1.5.1: detecteer DPG paywall-marker (dpp:paid) naast Telegraaf premium 2026-09-07 20:16:42 +02:00
Eddy de Vink
a03f76ca83 v1.5.0: entry-dedup in één query + conditional get (ETag/Last-Modified)
- filter_entries: één SELECT per feed i.p.v. per-entry EXISTS (1082 queries → 20)
- feed.etag/last_modified (migratie v9); parse_feed stuurt If-None-Match/If-Modified-Since, 304 → None
- _poll_once telt unchanged (304-feeds); summary-regel uitgebreid met unchanged
- _poll_feeds re-raised CancelledError (reload-stapeling duplicaten) + handler-cleanup
2026-09-06 00:11:22 +02:00
Eddy de Vink
1f92b38ba6 v1.4.1: per-run summary log (feeds/evaluated/selected/filtered/failed)
- _broadcast checks match filter and returns (placed, filtered, failed)
- _poll_once accumulates per-run counters, logs one summary line per run
- run_log_file config writes to /data/buzzrss-runs.log (persistent mount)
- _poll_feeds re-raises CancelledError so reloads stop old poll loops
- _setup_run_log fully resets handlers; empty config disables logging
2026-09-05 23:54:09 +02:00
eddy
dff304ba56 v1.3.1: filter-score (titel 2x + summary 1x, drempel 2)
- losse 1-hit in summary volstaat niet meer: 'ns-trein' in een
  rechtszaak-artikel (stenengooier) telt als 1 cluster en wordt geblokkeerd
- cluster-aware teller: aaneengesloten matches (NS-trein, openbaar vervoer,
  pdf) samenvoegen
- bus(?:sen)? suffix: 'Meer bussen naar TU' komt terug
- root-cause config-corruptie: re.sub-replacement de-escaped \\b naar \b
  (YAML-backspace); nu regel-bewerking zonder escape-processing
2026-09-05 20:32:20 +02:00
eddy
5d75f490fc v1.3.0: paywall-filter (Telegraaf/NHD premium) + staking-fix
- exclude_paywalled config (default true): verwijdert feedparser-entries met
  <premium>true</premium> vóór opslag (Telegraaf en NHD markeren dit; AD/
  Parool/Trouw/VK/NRC niet)
- v8-migratie: entry.paywalled BOOLEAN
- staking-fix (v1.2.3): losse 'staking/stakingen' uit filter; alleen ov-
  specifiek: ov-staking, bus/tram/metro/spoor/conducteurs-staking,
  'openbaar vervoer'
- config-proof: match_filter altijd enkelregelig YAML
2026-09-05 20:18:13 +02:00
eddy
79a8d0bc71 v1.2.2: fetch-timeout 20s + poll_parallelism_limit 0 config
- parse_feed: expliciete aiohttp ClientTimeout(total=20) zodat een hangende
  feed nooit de poll blokkeert (sessie had geen total-timeout; feeds bleven
  open en semaphore-sloten raakten bezet)
- poll_parallelism_limit: 0 in instance-config (alle feeds parallel)
- RTV Oost-feed vervangen door directe URL (rss/index.xml, geen redirect)
2026-09-05 18:14:04 +02:00
eddy
f17bfe5c89 v1.2.1: ov-chipkaart/ovpay trefwoorden aan filter
- ov-chipkaart, chipkaart, ovpay, ov-pay
- reisproduct, studentenreisproduct
- vervoersbewijs, vervoerbewijs
- opwaarderen (saldo opwaarderen, ov-chipkaart context)
- bewust NIET: bankpas/saldo/contactloos/overstappen (vals-positief in
  historie: oplichting, wereldkaart, thuisbatterij)
2026-09-05 17:39:25 +02:00
eddy
38e9a151bc v1.2.0: filter uitgebreid voor betere ov-recall
- vervoerders: ns, arriva, qbuzz, syntus, breng, u-ov, allgo, flixbus,
  blauwnet, r-net, valleilijn, waterbus, eurostar, thalys, randstadrail
- samenstellingen: bus/tram/metro + halte(s)/lijn(en)/station(s)/verkeer/net
  (ving 'tramhaltes lijn 26' dat voorheen mistte)
- trein-uitbreiding: reizigers/station
- infrastructuur: spoorweg/-baan/-lijn/-verkeer/-wegovergang/-storing,
  perron(s), overweg(en), sein(storing), wisselstoring, ontsporing
- concepten: dienstregeling, reizigers, inchecken/uitchecken, pont(en),
  lightrail, pendelbus/shuttlebus
- getest op 1445 historische entries: 25 matches (was 22), 2 vals-positieven
  verwijderd (havenstaking, zwemwater), tramhaltes-gap gedicht
2026-09-05 17:32:13 +02:00
eddy
dbb4e027af v1.1.2: set-filter alleen wissen met expliciet 'clear'
- lege !rss set-filter wist NOOIT het filter, toont usage + huidig filter
- verwijderen vereist expliciet: !rss set-filter clear|none|off|remove
- voorkomt onbedoeld filterverlies
2026-09-05 17:25:30 +02:00
eddy
8c5e5a083e v1.1.1: !rss filter toont het huidige globale filter 2026-09-05 17:23:02 +02:00
eddy
676f999cce v1.1.0: enkel globaal filter (config) in plaats van per-subscription
- match_filter is nu instance-config (geldt voor ALLE feeds), niet per
  subscription: !rss set-filter <regex> zet het globale filter en slaat
  config op; !rss subscriptions toont het globale filter
- v7-migratie: per-subscription kolom match_filter verwijderd
- filter scant titel + HTML-ontdaan summary
2026-09-05 17:19:10 +02:00
eddy
0628776469 Fork xyz.maubot.rss v0.4.1: whitelist match-filter op titel+summary
- plugin id nl.eddydevink.rss, module buzzrss (uniek, voorkomt botsing met
  xyz.maubot.rss die dezelfde 'rss'-module importeert)
- match_filter (v6-migratie, hernoemd van title_exclude_filter): post wordt
  alleen verstuurd als de regex matcht op titel OF (HTML-ontdaan) summary
- config-default whitelist voor ov-only: gvb/ebs/connexxion/transdev/keolis/
  ret/gvu/bus/metro/tram/trein(verwanten)/ov/ov-staking/staking
- set-filter: lege filter valt terug op config-default
2026-09-05 17:13:39 +02:00