Back to Blog

RSS / AstrBot / Automation

Compact Dispatch in the RSS Forwarder: Target Overrides and Image Retention

A note on compact RSS dispatch across job defaults, target overrides, and retained images.

The RSS forwarder gained another presentation-layer feature this week. The earlier work focused on source identity: how a subscription stays stable when fetch endpoints or adapters change. This change looks at the other side of the pipeline: how the same item should be shown to different delivery targets.

Project Overview

Repository: RhoninSeiei/astrbot_plugin_rss_forwarder.

The plugin model has sources, targets, and jobs. A source provides content, a target carries delivery and display preferences, and a job combines several sources and targets into one polling task. Compact dispatch adds a display strategy on top of that model.

Three-Layer Strategy

The job-level switch says that a group of items should default to title-only reminders. It fits high-frequency feeds, broad source groups, or subscriptions where summaries add little value. When enabled, dispatch prefers short text or a compact title card instead of expanding every item into a long message.

The target-level override handles different expectations inside the same job. One target can inherit the job default, while another can force compact or normal output. The same subscription group can stay quiet in a busy group chat while keeping richer context in a direct-message or channel-like target.

Image retention covers the important exception. Some items only need a title, but the source image is the main signal. compact_mode_send_images keeps the body compact while still attaching item images, avoiding a hard choice between short reminders and full forwarding.

Implementation Notes

Configuration adds fields at the job and target levels. The scheduler records the active compact strategy when it builds pending delivery items. The dispatcher then resolves the target override and renders a separate message shape for each target.

In text mode, the message chain keeps the title and optional images. In image-card mode, the title card remains short and source images are sent as extra payloads. Delivery confirmation is still recorded by job + target + item, so a failed target can be retried without resending to every target.

Maintenance Lesson

Compact mode looks like a rendering option, but it is better treated as information-density control. It should not alter source identity, deduplication, or delivery confirmation. It should only decide how much of the item is shown. Keeping the setting at both job and target levels lets content grouping and recipient preference evolve separately.