Repository navigation
Commands news and rss
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.
actu · actualite · actualites · bashfr · dtc · news · rss · vdm
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]
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]
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.
Alias of dtc; the same options, defaults and checks apply.
Access: public. IRC surfaces: channel.
!bashfr
!bashfr <id>
!bashfr (<id>)
!bashfr <search text...>
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.
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]
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.
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
| 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”.
!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.
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/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.
Mediabot v3 documentation · Home · Installation · Commands · Troubleshooting · GitHub
- Start: notation and parameters
- Public commands
- Complete command reference
- Private and admin commands
- News and RSS
- Quotes and automatic quotes
- Dynamic commands
- AI and Hailo
- Access levels
- Chansets