chatroom syncer
v0.1.9: ci piped, avatar for slack, github discussion!
Chatroom-Syncer 是一個將 IM 聊天室同步到公共領域(如過去的 IRC)的項目,以便其他人可以隨時透過任何軟體發現、學習和引用通訊的資訊、上下文和歷史。
演示聊天同步.mp4
支援的接收器
成分 | Docker 映像 | 圖片評論 |
---|---|---|
wechaty-gateway | "wechaty": "1.20.2" "wechaty-puppet-wechat": "1.18.4" | |
chatroom-syncer | - tag: dev 是主分支頭- latest 是最新版本 |
系統中有兩個進程:
因此,我們需要在聊天室同步器之前啟動微信閘道。
┌────────────────────────────┐ ┌────────┐ ┌────────┐
│ │ │ Sink │ │ │
│ Chatroom Syncer │ │ │ │ │
│ │ │ GitHub │ │ │
│ onMessage() ├────────▶ Slack ─ ─ ─ ─▶ Linen* │
│ self.use(***SinkPlugin())│ │ │ │ │
│ │ │ │ │ │
└──────────────▲─────────────┘ │ │ │ │
│ └────────┘ └────────┘
gRPC
│
┌──────────────▼──────────────┐
│ │
│ Wechaty Gateway │
│ │
│ │
│┌────────────────────────┐ │
││ Wechaty UOS puppet │ │
│└────────────────────────┘ │
└─────────────────────────────┘
# * Linen.dev is a Open Source project and a SaaS/Cloud service to help sync slack/discord to a searchable and shareable public domain.
在運行之前,我們需要滿足以下先決條件:
config.yaml
中配置微信群組名稱和 Sink 訊息,它們應該同時存在於微信和 Sink 中。.env
中設定 Sink API 令牌(Slack API 令牌、GitHub 令牌等)。在後台運行它:
cp config-example.yaml config.yaml
cp env-example .env
docker-compose up -d
檢查兩個容器是否已啟動:
docker-compose ps
如果存在任何Exit 0
容器,請再次嘗試啟動:
docker-compose up -d
使用微信掃描二維碼,即可開始!
docker logs chatroom-syncer_chatroom-syncer_1 2> /dev/null | grep -v Wechaty
停止它:
docker-compose down
首先運行Webchaty網關:
export token= " iwonttellyou "
docker run -d
--name=wechaty-gateway
--net=bridge
-p 9009:9009
-e WECHATY_PUPPET_SERVICE_TOKEN= " $token "
--restart=unless-stopped weygu/wechaty-gateway:latest
運行聊天室同步器:
# install it
python3 -m pip install chatroom-syncer
# create config.yaml and change it
cp config-example.yaml config.yaml
# put tokens for sink according to your config.yaml
# i.e. if both slack and github discussion sinks were enabled
# we need token to send message to slack and github discussion
# as follow:
export SLACK_BOT_TOKEN= " xoxb-1234567890-1234567890-1234567890-1234567890 "
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxx
# run it
python3 -m chatroom_syncer
將 config-example.yaml 複製到 config.yaml
cp config-example.yaml config.yaml
並填寫表格中的以下欄位:
場地 | 描述 |
---|---|
enable_slack | 鬆弛水槽開關 |
group_channel_mapping | 將微信群組名稱對應到 Slack 頻道名稱 |
enable_avatar | 切換為 Slack 接收器產生基於表情符號的頭像 |
enable_github_discussion | Github討論池切換 |
group_github_discussion_mapping | 將微信群組名稱映射到討論:owner/repo/category |
git clone https://github.com/wey-gu/chatroom-syncer && cd chatroom-syncer
# install pdm
curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 -
# install chatroom-syncer
pdm install
如果依賴項已更新,請執行pdm sync
以更新鎖定清單。
pdm sync
docker-compose -f docker-compose.dev.yaml build
docker-compose -f docker-compose.dev.yaml up -d
# get QR code to scan
docker logs chatroom-syncer_chatroom-syncer_1 2> /dev/null | grep -v Wechaty
# watch logs of the chatroom syncer
docker logs chatroom-syncer_chatroom-syncer_1 --follow
# stop the chatroom syncer and remove the container
docker-compose -f docker-compose.dev.yaml down
# install pre-commit
pip install pre-commit
# run pre-commit
pre-commit run --all-files