← すべての拡張機能

メッセージ · Root

Relay Formatter

Mango 作

ネイティブなIRCv3リレー対応のないネットワークで、明示的にマークされたリレー・ボットからのメッセージをフォーマットします。

バージョン
0.2.0
実行形式
サーバー単位のRoot
Grove API
1
更新済み
2026-10-01

要求するアクセス権限

3件の権限

  • 受信メッセージをフィルタリングMangoが表示する前に、受信メッセージのテキストを変換または非表示にできます。
  • メンバーのアクションを追加拡張機能の名前が付いた独自のアクションを、チャンネルのメンバーメニューに追加します。
  • ローカルデータを保持拡張機能のデータをこのデバイス上の独自の隔離された領域に保存します。

ネットワークアクセス

インターネット接続なし

そのマニフェストは外部ホストを宣言していません。Groveのサンドボックスはパッケージ外のネットワークリクエストをブロックします。

拡張機能から

README · 英語

Relay Formatter — a Grove Root

Relay Formatter improves the common fallback format used by bridge bots when an individual message does not carry IRCv3 draft/relaymsg:

<Alice> hello from the bridged room
[Alice] hello from the bridged room
[Alice]: hello from the bridged room

It also understands bridge context prefixes and preserves them in the message:

[project/room] <Alice> hello from the bridged room

After you mark the real bot in Mango’s channel member menu, the Root displays Alice as the visible sender, the body as hello from the bridged room, and a neutral relay symbol matching the member-list marker. Hovering the symbol shows the real bridge bot; older Mango versions fall back to a RELAY:BridgeBot text badge. The message’s authoritative source remains the bot, so identity-sensitive actions such as WHOIS, ignore, and auditing still point to the IRC user that sent the line. Reply and Copy use the visible bridged sender.

CHATHISTORY and bouncer playback messages pass through the filter. Starting the Root or marking/unmarking a relay bot also asks Mango to replay the current transcript through the live filter, so already-loaded rows update immediately.

Try it

  1. Install this folder, then start Relay Formatter in the Grove manager.
  2. Approve inbound message filtering, native member actions, and storage.
  3. Right-click the relay bot in a channel’s member list.
  4. Choose Extensions → Mark as Relay Bot — Relay Formatter.
  5. Mango shows a relay icon beside the member, a checkmark in the Extensions menu, and changes the action to Unmark as Relay Bot.

The selection is stored separately for each network using the canonical member key Mango supplies for that server’s negotiated IRC CASEMAPPING.

Settings

In Grove Manager, open Relay Formatter → Settings to choose automatic detection (the default) or restrict formatting to one of the three envelopes above. This preference applies to all networks; marked-bot selections remain network-specific. Saving refreshes running instances and retained messages without restarting the extension. Older Mango builds without live settings notifications apply the change when the Root is restarted.

No custom regular expressions are required. Restricting the format is useful when a marked bot also emits ordinary bracket-prefixed messages.

Deliberately conservative

The formatter only touches an ordinary message when all of these are true:

  • its real source was explicitly marked by the user;
  • the message has no native relay identity;
  • the text is a non-empty <Name> body, [Name] body, or [Name]: body envelope allowed by the selected format.

An optional bounded [context] prefix is accepted before an angle-bracket envelope. Paired Markdown bold delimiters around the fallback nickname are removed because Mango’s sender column is plain text; all other prefix shapes remain untouched.

The server may advertise draft/relaymsg and still receive fallback envelopes from a bridge connected to a network without it. Relay Formatter therefore checks the authoritative tag on each message instead of treating the network-wide capability as proof that every bridge used it.

ACTION, NOTICE, malformed text, native relay messages, and all messages from unmarked users pass through unchanged. A storage or runtime error also fails open because formatting must never hide a message.

The Root requests no network access and sends no IRC traffic.

manifest.jsonapp.mango.grove.relay-formatter
{
  "grove": 1,
  "id": "app.mango.grove.relay-formatter",
  "name": "Relay Formatter",
  "version": "0.2.0",
  "description": "Formats messages from explicitly marked relay bots on networks without native IRCv3 relay support.",
  "author": {
    "name": "Mango",
    "url": "https://mangoirc.chat"
  },
  "readme": "README.md",
  "entry": "index.html",
  "settings": "settings.html",
  "presentation": {
    "surfaces": [
      "headless"
    ],
    "scope": "server"
  },
  "capabilities": [
    "messages.filter.inbound",
    "ui.member-actions",
    "storage"
  ],
  "hostPermissions": []
}