Skip to content

Commands news and rss

Teuk edited this page Oct 6, 2026 · 1 revision

News, RSS, VDM and DansTonChat

Reviewed against Mediabot 3.6dev-20261006_084503 (snapshot of 6 October 2026). This is the development-line reference; consult the tagged source for stable-release behaviour.

Examples use !; replace it with the configured trigger (m, #, etc.). See notation, transport and permissions. Each entry names its registered IRC surfaces; a handler accepting a private context does not itself make a name callable by PM. Plugin and dynamic-command policy may add restrictions.

On this page

actu · actualite · actualites · bashfr · dtc · news · rss · vdm

actu

Alias of actualites; the same options, defaults and checks apply.

Access: public. IRC surfaces: channel.

!actu [topic...] [en|fr|es]
!actualités [topic...] [en|fr|es]
!actualité [topic...] [en|fr|es]

actualite

Alias of actualites; the same options, defaults and checks apply.

Access: public. IRC surfaces: channel.

!actualite [topic...] [en|fr|es]
!actualités [topic...] [en|fr|es]
!actualité [topic...] [en|fr|es]

actualites

Latest news on a topic (or today's headlines with no topic), searched then summarised in the channel language.

Access: public. IRC surfaces: channel.

!actualites [topic...] [en|fr|es]
!actualités [topic...] [en|fr|es]
!actualité [topic...] [en|fr|es]

Omitted topic requests recent headlines; remaining words are the topic. A final supported language token overrides the channel language (LangFR/LangES, then main.LANG). Alias commands accept the same arguments. The opening is a coherent paragraph, followed by dated publisher links with short title hints. No “searching…” announcement or numbered duplicate bulletin. Selection uses dated specific articles, not generic homepages. A title-only fallback is explicitly labelled; it does not pretend to have read the full article. Tavily can supply topic evidence when configured; it is not required for the default RSS path. News lines share a parent queue with at least 1.5 seconds between lines; complete URLs and the IRC byte budget are preserved. See source evidence and delivery details.

bashfr

Alias of dtc; the same options, defaults and checks apply.

Access: public. IRC surfaces: channel.

!bashfr
!bashfr <id>
!bashfr (<id>)
!bashfr <search text...>

dtc

Show a random, numbered, or searched DansTonChat quote when +DansTonChat is enabled.

Access: public. IRC surfaces: channel.

!dtc
!dtc <id>
!dtc (<id>)
!dtc <search text...>

No argument is random; numeric ID (positive, at most 12 digits) requests that quote; the historical parenthesized numeric form remains. Other text searches DansTonChat. Requires +DansTonChat. Exact-ID mismatch/source failure never substitutes another quote.

news

Alias of actualites; the same options, defaults and checks apply.

Access: public. IRC surfaces: channel.

!news [topic...] [en|fr|es]
!actualités [topic...] [en|fr|es]
!actualité [topic...] [en|fr|es]

rss

Native per-channel RSS/Atom feeds with automatic polling; first poll is silent. Channel limits: gap=minutes, daily=rolling-24h cap. latest previews one recent article where requested. Changes require channel level 400+ or Administrator.

Access: List/info public; fetch previews User+; changes and limit status Administrator+ or channel 400+. IRC surfaces: channel.

!rss [help|syntax]
!rss list [#channel]
!rss info [#channel] <feed name...>
!rss add [#channel] <feed name...> <URL> [interval=30] [max=5]
!rss del [#channel] <feed name...>
!rss set [#channel] <feed name...> <interval|max|enabled> <value>
!rss limit [#channel] [gap=<minutes>] [daily=<count>]
!rss probe <URL>
!rss show [#channel] <feed name...>
!rss latest [#channel] <feed name...>
!rss #channel <subcommand> [arguments...]

Feed names may contain spaces: no shell quotes needed (Le Monde). The leading-channel form and subcommand-first form are equivalent; do not specify two channels. del also accepts delete and remove. probe has no channel parameter and cannot use the leading-channel form. The target defaults to the invocation channel; use explicit target from a console channel. RSS is registered on the IRC channel surface, not as a built-in PM command. Full permissions, values and delivery semantics are in the tables below.

vdm

Post one recent VDM or the exact numbered article when +VDM is enabled on the channel.

Access: public. IRC surfaces: channel.

!vdm [id]

No ID: one recent official-feed VDM with recent-repeat exclusion. Exact ID: positive decimal, at most 12 digits; no additional arguments or text. Requires +VDM. A failed exact lookup never silently falls back to random/recent content. Errors are private notices.

Complete index · Command notation

RSS permissions and values

Subcommand Required permission Result and destination
help, syntax Public Private usage notices.
list Public Subscriptions on selected channel; no fetch.
info <feed> Public Private subscription, polling, item/error and channel-limit status.
add, del / delete / remove, set Logged-in Administrator+ or destination channel 400+ Mutate subscriptions; acknowledgements remain where requested.
limit (read or change) Same destination administration check Private channel-wide pacing/quota status; optional policy update.
probe <URL> Logged-in User+ Check an unsubscribed feed and preview up to three items; 15s issuing-channel cooldown.
show <feed> Logged-in User+ Fetch up to subscription max; 15s target-channel cooldown. Protected target previews are private.
latest <feed> Logged-in User+ One latest article, reply on issuing channel or privately if that issuing channel is paced; 15s issuing-channel cooldown across feeds.
Parameter Accepted values Default / meaning
Feed name Multiword label, normalized whitespace/control characters, capped at 80 characters Le Monde is entered without shell quotes.
URL Public HTTP/HTTPS URL, at most 2048 characters; no credentials; ports 80/443 appropriate to scheme Private/local destinations and unsafe redirects are refused.
interval Integer 5–1440 minutes 30; fetch frequency, not publication frequency.
max Integer 1–10 5 per poll in legacy mode; paced channels keep one newest candidate per feed.
enabled on/off, yes/no, 1/0 Adding creates an enabled subscription; pausing preserves history.
gap 0, or 5–10080 minutes Minimum gap across all automatic RSS on that channel; zero disables this constraint.
daily 0, or 1–24 attempts per rolling 24h Zero disables this constraint; no midnight reset.

add options are trailing key=value tokens, in either order. set changes one field: !rss #channel set Le Monde max 1. limit may change one or both fields; omitted fields retain their existing value/history. Both zero restore legacy per-feed publication, including multiple items per poll. It does not mean “disable RSS”.

Quiet channel example

!rss #35+ans limit gap=180 daily=6
!rss #35+ans add Le Monde https://www.lemonde.fr/rss/une.xml interval=30 max=1
!rss #35+ans list
!rss #35+ans info Le Monde
!rss #35+ans latest Le Monde
!rss #35+ans set Le Monde enabled off

Issue these from your console channel. If the subscription already exists, use set rather than re-adding it. The first successful automatic poll is a silent baseline. Only later new items are eligible. Preview commands fetch independently and do not acknowledge items, advance polling timestamps, reserve quota, or enable a disabled feed.

Automatic rotation and restart behaviour

Channel limits apply across feeds. Ready feeds take turns in a stable circular rotation by subscription identity, rather than label, SQL order or HTTP speed. The scheduler waits for in-flight polls on the channel; empty, failed, deleted or disabled feeds do not block a turn. A ready candidate may be selected before its next poll is due. Only the newest pending candidate per feed remains eligible; older candidates are suppressed durably, with no backlog burst.

The cursor and rolling quota history are private .rss-pacing.json state in plugins.DATA_DIR (default plugin-data). Restart/update/limit changes do not clear them; existing state without a cursor remains compatible. Candidates are rebuilt by successful polls after restart. Fair shares depend on available news: four continuously ready feeds rotate across slots; an empty feed is skipped.

A slot is reserved before IRC sending. Rejected sends conservatively consume a slot/turn; acknowledgement still waits for accepted output. A paced announcement is one payload of at most 400 UTF-8 bytes, with an intact URL; titles are trimmed, and an unshortened URL that cannot fit is skipped. These announcements do not enter the deferred AntiFlood queue. Missing/corrupt/busy initialized pacing state holds publication.

Private previews use ordinary NOTICE text, without a CTCP ACTION envelope; public announcements retain their existing ACTION format. Automatic policies and counters belong to each instance: settings on dev do not configure production.

News evidence and output

news/actualites is an on-demand bulletin, separate from automatic RSS subscriptions. The summary and its linked articles refer to the same selected evidence. Link hints use up to 64 UTF-8 bytes, shortened at word boundaries; whole output lines are bounded to 400 bytes and sent through the shared 1.5s delivery queue. Longer summaries may occupy more than one line. “D’après les titres”/the equivalent language label identifies title-only evidence; full-text reading is never fabricated.

Clone this wiki locally