chatroom syncer
v0.1.9: ci piped, avatar for slack, github discussion!
Chatroom-Syncer는 IM Chat Room을 예전 IRC와 같은 공개 도메인에 동기화하여 통신의 정보, 컨텍스트 및 이력을 언제 어디서나 다른 사람이 발견하고 학습하고 참조할 수 있도록 하는 프로젝트입니다.
데모-채팅-sync.mp4
지원되는 싱크
구성요소 | 도커 이미지 | 이미지 댓글 |
---|---|---|
wechaty-gateway | "wechaty": "1.20.2" "wechaty-puppet-wechat": "1.18.4" | |
chatroom-syncer | - 태그: dev 주요 지점장입니다.- latest 최신 릴리스입니다. |
시스템에는 두 가지 프로세스가 있습니다.
따라서 Chatroom Syncer를 실행하기 전에 WeChaty Gateway를 시작해야 합니다.
┌────────────────────────────┐ ┌────────┐ ┌────────┐
│ │ │ 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
에서 WeChat 그룹 이름과 싱크 정보를 구성합니다. 이는 WeChat과 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
WeChat 앱으로 QR 코드를 스캔하면 바로 사용할 수 있습니다!
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
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
config-example.yaml을 config.yaml에 복사합니다.
cp config-example.yaml config.yaml
그리고 테이블의 다음 필드를 채우십시오.
필드 | 설명 |
---|---|
enable_slack | 슬랙싱크 스위치 |
group_channel_mapping | WeChat 그룹 이름을 Slack 채널 이름에 매핑 |
enable_avatar | Slack 싱크용 이모티콘 기반 아바타 생성으로 전환 |
enable_github_discussion | Github 토론 싱크의 스위치 |
group_github_discussion_mapping | WeChat 그룹 이름을 토론에 매핑:소유자/저장소/카테고리 |
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