Chatroom-Syncer ist ein Projekt zur Synchronisierung von IM-Chatrooms mit dem öffentlichen Bereich wie früher IRC, sodass die Informationen, der Kontext und der Kommunikationsverlauf jederzeit und jederzeit entdeckt, von anderen gelernt und von anderen referenziert werden können.
demo-chat-sync.mp4
Unterstützte Senken
Komponenten | Docker-Bilder | Bildkommentare |
---|---|---|
wechaty-gateway | "wechaty": "1.20.2" "wechaty-puppet-wechat": "1.18.4" | |
chatroom-syncer | - tag: dev ist der Hauptzweigkopf- latest ist die neueste Version |
Es gibt zwei Prozesse im System:
Daher müssen wir das WeChaty Gateway vor dem Chatroom Syncer starten.
┌────────────────────────────┐ ┌────────┐ ┌────────┐
│ │ │ 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.
Bevor wir starten, müssen wir folgende Voraussetzungen erfüllen:
config.yaml
. Sie sollten sowohl in WeChat als auch in Sink vorhanden sein..env
.Führen Sie es im Hintergrund aus:
cp config-example.yaml config.yaml
cp env-example .env
docker-compose up -d
Überprüfen Sie, ob beide Container aktiv sind:
docker-compose ps
Falls Exit 0
Container vorhanden sind, versuchen Sie es erneut mit dem Starten:
docker-compose up -d
Scannen Sie den QR-Code mit Ihrer WeChat-App und schon kann es losgehen!
docker logs chatroom-syncer_chatroom-syncer_1 2> /dev/null | grep -v Wechaty
Hör auf damit:
docker-compose down
Führen Sie zuerst das Webchaty-Gateway aus:
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
Führen Sie Chatroom-Syncer aus:
# 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
Kopieren Sie config-example.yaml nach config.yaml
cp config-example.yaml config.yaml
Und füllen Sie die folgenden Felder in der Tabelle aus:
Feld | Beschreibung |
---|---|
enable_slack | Schalter des Slack-Waschbeckens |
group_channel_mapping | Zuordnung des WeChat-Gruppennamens zum Slack-Kanalnamen |
enable_avatar | Wechseln Sie, um einen Emoji-basierten Avatar für Slack Sink zu generieren |
enable_github_discussion | Wechsel der Github-Diskussionssenke |
group_github_discussion_mapping | Zuordnung des WeChat-Gruppennamens zur Diskussion:Eigentümer/Repository/Kategorie |
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
Wenn Abhängigkeiten aktualisiert werden, führen Sie pdm sync
aus, um das Sperrmanifest zu aktualisieren.
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