TGbot-D1 — Telegram 双方向ボット(D1対応)
概要
このリポジトリは、Cloudflare Worker と D1(SQLite)を用いた Telegram の双方向リレーBot実装です。ユーザーがBotへ送った個別メッセージを管理者グループの「トピック(Topic)」に転送し、管理者がそのトピックで返信すると元のユーザーへ中継されます。トピック名はユーザー名とIDで動的に更新され、メッセージ編集やユーザーのブロック、キーワード応答など運用に便利な機能を備えます。永続化と高頻度書き込みには Cloudflare D1 を利用し、以前の KV ストレージから移行しています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 1
- ウォッチャー数: 3
- コミット数: 6
- ファイル数: 2
- メインの言語: JavaScript
主な特徴
- 私聊→管理者グループのトピックに個別転送し、管理者の返信をユーザーに中継する双方向リレー
- トピック名をユーザー名とIDで動的に表示し、管理運用を支援
- D1(SQLite)を用いた永続ストレージで高い書き込み性能を実現
- メッセージ編集対応、ユーザー遮断(ブロック)、キーワード自動応答など実運用向け機能
技術的なポイント
Cloudflare Worker 上に配置される単一のエントリポイント(worker-D1版本.js)が Telegram の Webhook からの更新を受け取り、メッセージの種類に応じて処理を振り分けます。各ユーザーと管理者グループ内トピックの対応関係は D1(SQLite)に保存され、ユーザーごとにトピックIDや状態情報(ブロック状態、会話モードなど)を持たせることで、複数ユーザーからの同時アクセスでも一貫した中継動作を実現します。トピック名の動的更新は Telegram のトピック編集APIを利用して行い、管理者がどのユーザーの会話か即座に判別できます。メッセージ編集や削除、メディア添付の扱いは更新タイプを監視して再送/編集対応を行う設計で、運用中の整合性を保ちます。Cloudflare D1 を使う利点としては、Worker 環境下での高頻度書き込みとクエリ性能、永続化が挙げられ、以前の KV ベース実装よりも大量の会話ログ保存や頻繁な状態更新に適しています。管理用の /start メニューは Bot へのプライベートチャットで動作し、管理者の Telegram ID を環境変数で固定する二重認証的な保護が組み込まれています。注意点として Worker の実行時間制約や Telegram API のレート制限、メッセージサイズ・メディアの扱いは実装・運用時に考慮が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- worker-D1版本.js: file
まとめ
Cloudflare Worker と D1 を組み合わせた実用的な Telegram 双方向リレーBotの軽量実装です(50字程度)。
リポジトリ情報:
- 名前: TGbot-D1
- 説明: 实现了:人机验证、私聊到话题模式的转发、管理员回复中继、话题名动态更新、已编辑消息处理、用户屏蔽功能、关键词自动回复,存储已从 Cloudflare KV 切换到 D1 (SQLite) 以获取更高的写入容量。
- スター数: 3
- 言語: JavaScript
- URL: https://github.com/moistrr/TGbot-D1
- オーナー: moistrr
- アバター: https://avatars.githubusercontent.com/u/178376940?v=4
README 抜粋の核心:
- Cloudflare Worker と D1 による Telegram 双向机器人(私聊→群组话题中继、回复中继)
- トピック名にユーザー名とIDを表示、管理者が話題で返信するとユーザーへ中継
- D1 を利用して高並発な書き込みと持続的なデータ保存を実現
- 管理者用のメニューはプライベートチャットで /start から起動、管理者IDの環境変数設定が必須(保護)