---
title: "Relay Formatter — Mango 3.1 Grove 拡張機能"
description: "ネイティブなIRCv3リレー対応のないネットワークで、明示的にマークされたリレー・ボットからのメッセージをフォーマットします。"
url: "https://mangoirc.chat/ja/extensions/relay-formatter"
language: "ja"
---

[← すべての拡張機能](https://mangoirc.chat/ja/extensions)

メッセージ · Root

# Relay Formatter

[Mango](https://mangoirc.chat/) 作

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

Mango 3.1 にインストール 7 KB · Mango 3.1

バージョン

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 `:

```text
<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:

```text
[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.json**app.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": []
}
```
