Skip to main content

Concepts

News Aggregator models four things: sources, items, filters, and the ticker.

Source

A source is one RSS or Atom feed registered in the AdminCP. Each source row carries the feed URL, an optional display name, an enabled flag, and a small consecutive-failure counter. Sources that fail repeatedly are auto-disabled when Disable sources after X consecutive errors is set above zero.

ColumnWhat it stores
feed_urlThe URL the fetcher hits on each cycle.
nameDisplay name shown next to items on the public page and in the ticker.
activeDisabled sources are skipped on fetch.
error_countIncrements on failed fetches; resets on success.

Item

An item is one parsed entry pulled from a feed — title, summary, canonical URL, publish date, source ID. Items are deduplicated against existing rows by title similarity (the Duplicate detection threshold option controls how close a match must be).

StateMeaning
VisibleThe item passed dedup and every active filter. Shown on the public page and (if eligible) in the ticker.
Hidden by adminAn admin toggled the item off from AdminCP > [MC] News Aggregator > News items.
FilteredA keyword filter matched. The item is kept on disk for retention but not surfaced on public pages.
DuplicateThe item's title matched an existing item above the threshold. Stored for retention but hidden.

Visible items are pruned by Retention period. Hidden, filtered, and duplicate items are pruned by Retention period for flagged items, which is independent and typically shorter.

Filter

A filter is a keyword rule that hides matching items at fetch time. Filters compose with each other; an item that matches any active filter is marked filtered.

See filters for operators and matching semantics.

Ticker

The ticker is a horizontal scrolling band of recent visible items rendered at the top of every public page when Enable global news ticker is on. Logged-in users can opt out from their preferences. The ticker reads from a configurable subset of sources (or all sources, if none are explicitly selected), shows up to News ticker items, and cycles at the configured News ticker cycle speed.

A separate widget definition is also available so admins can drop a news block on the homepage or a widget position.

Lifecycle of an item

  1. The Fetch feeds cron runs. For each active source, the fetcher pulls the feed, parses entries, and walks each entry.
  2. Each entry's title is compared against existing item titles. If similarity passes the threshold, the entry is stored as a duplicate.
  3. Active filter rules are evaluated. Any match marks the item filtered.
  4. Items past Maximum item age are skipped at parse time.
  5. Items that survive are inserted as visible.
  6. The Prune news items cron deletes rows older than the relevant retention window.