Chatroom-Syncer est un projet visant à synchroniser IM Chat Room avec le domaine public comme IRC autrefois, afin que les informations, le contexte et l'historique de la communication puissent être découverts, appris et référencés par d'autres, à tout moment et à tout moment.
démo-chat-sync.mp4
Éviers pris en charge
Composants | Images Docker | Commentaires sur les images |
---|---|---|
wechaty-gateway | "wechaty": "1.20.2" "wechaty-puppet-wechat": "1.18.4" | |
chatroom-syncer | - tag : dev est le chef de branche principal- latest est la dernière version sur |
Il existe deux processus dans le système :
Ainsi, nous devons démarrer la passerelle WeChaty avant le Chatroom Syncer.
┌────────────────────────────┐ ┌────────┐ ┌────────┐
│ │ │ 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.
Avant de démarrer, nous devons suivre les prérequis :
config.yaml
, ils devraient exister à la fois dans WeChat et dans le récepteur..env
.Exécutez-le en arrière-plan :
cp config-example.yaml config.yaml
cp env-example .env
docker-compose up -d
Vérifiez que les deux conteneurs sont en place :
docker-compose ps
S'il y a des conteneurs Exit 0
, essayez à nouveau de démarrer :
docker-compose up -d
Scannez le code QR avec votre application WeChat et vous êtes prêt à partir !
docker logs chatroom-syncer_chatroom-syncer_1 2> /dev/null | grep -v Wechaty
Arrêtez-le :
docker-compose down
Exécutez d'abord la passerelle 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
Exécutez Chatroom-Syncer :
# 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
Copiez le config-example.yaml dans config.yaml
cp config-example.yaml config.yaml
Et remplissez les champs suivants dans le tableau :
Champ | Description |
---|---|
enable_slack | Interrupteur de mou d'évier |
group_channel_mapping | Mappage du nom du groupe WeChat au nom de la chaîne Slack |
enable_avatar | Basculer pour générer un avatar basé sur des emoji pour le récepteur Slack |
enable_github_discussion | Changement du récepteur de discussion Github |
group_github_discussion_mapping | Mappage du nom du groupe WeChat à la discussion : propriétaire/dépôt/catégorie |
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
Si les dépendances sont mises à jour, exécutez pdm sync
pour mettre à jour le manifeste de verrouillage.
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