Chatroom-Syncer هو مشروع لمزامنة IM Chat Room مع المجال العام مثل IRC في الأيام الخوالي، بحيث يمكن اكتشاف المعلومات وسياق وتاريخ الاتصالات والتعلم منها والرجوع إليها بواسطة الآخرين، بأي برنامج وفي أي وقت.
تجريبي-دردشة-sync.mp4
المصارف المدعومة
عناصر | صور عامل الميناء | تعليقات الصورة |
---|---|---|
wechaty-gateway | "wechaty": "1.20.2" "wechaty-puppet-wechat": "1.18.4" | |
chatroom-syncer | - العلامة: dev هو رئيس الفرع الرئيسي- latest هو أحدث إصدار على |
هناك عمليتان في النظام:
وبالتالي، نحن بحاجة إلى تشغيل بوابة WeChaty قبل مزامنة غرف الدردشة.
┌────────────────────────────┐ ┌────────┐ ┌────────┐
│ │ │ 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 وSink..env
.تشغيله في الخلفية:
cp config-example.yaml config.yaml
cp env-example .env
docker-compose up -d
تحقق من أن كلتا الحاويتين مرفوعتان:
docker-compose ps
في حالة وجود أي حاويات Exit 0
، حاول مرة أخرى البدء:
docker-compose up -d
امسح رمز الاستجابة السريعة ضوئيًا باستخدام تطبيق WeChat، وستكون جاهزًا للانطلاق!
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 | تعيين اسم مجموعة WeChat لاسم قناة Slack |
enable_avatar | قم بالتبديل لإنشاء صورة رمزية تعتمد على الرموز التعبيرية لـ Slackink |
enable_github_discussion | تبديل حوض مناقشة جيثب |
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