أداة صغيرة تسمح لـ WeChat بإرسال الرسائل بانتظام في حلقة (يمكن أن يكون استخدام مهام تعبير cron دقيقة للغاية) والرسائل المجمعة، كما أنها توفر واجهة بسيطة وبديهية يمكن نشرها على أي نظام أساسي.
✅مراسلة جماعية: أرسل رسائل مختلفة إلى عدة أصدقاء في وقت واحد
✅إرسال الرسائل تلقائيًا: التحقق من الوقت تلقائيًا وإرسال الرسائل في اللحظة المقابلة (استنادًا إلى تعبير cron، دقيق للدقيقة)
✅إرسال الرسائل في حلقة: يمكن لتعبير cron تعيين أي مهمة حلقة
✅التحقق من سجلات الدردشة بانتظام وتذكيرك بناءً على نتائج الاختبار؟
✅ضمان الموثوقية: يمكن أن يضمن التسجيل والكشف التلقائي عن الأخطاء تنفيذ المهام المجدولة دون فقدان أي شيء؟
✅حماية مصادقة تسجيل الدخول: حماية تسجيل الدخول لضمان أمان البيانات
✅ دعم كامل للمنصة، سهل النشر على الخادم، يتم نشر الخادم على منصة الفوز لقبول طلبات العميل، ويمكن نشر العميل على أي منصة؟
ينقسم هذا المشروع إلى قسمين، الخادم والعميل:
الخادم هو خادم خفيف الوزن، تم تثبيته على Win مع WeChat
تم فصل الخادم تمامًا عن العميل ويقبل طلبات http لأتمتة عمليات WeChat. يمكنك أيضًا كتابة العميل بنفسك للاتصال بواجهة الخادم.
wechat/ping
: تحقق مما إذا كان الخادم يعمل بشكل طبيعي، وأرجع 'status': 'pong'
wechat/send_message
: إرسال الرسائل وقبول name
البيانات text
بتنسيق json وإجراء عمليات تلقائية على WeChatwechat/check_wechat_status
: تحقق مما إذا كان WeChat يعمل بشكل طبيعيwechat/get_dialogs
: احصل على سجل الدردشةwechat/get_dialogs_by_time_blocks
: الحصول على سجلات الدردشة بناءً على الفترة الزمنية وإرجاع قائمة متداخلةwechat/send_file
: إرسال الملفيحتوي الخادم على قائمة انتظار رسائل وقفل كائن مزامنة (mutex lock)، ما عليك سوى إرسال الرسائل إلى الخادم، وسيقوم الخادم تلقائيًا بمعالجة قائمة انتظار الرسائل لضمان إرسال الرسائل بالتسلسل، حتى تتمكن أيضًا من نشر عملاء متعددين لإرسال الرسائل إليهم. نفس الخادم.
العميل عبارة عن واجهة أمامية خفيفة الوزن يمكن تشغيلها على أي نظام أساسي وإرسال الرسائل إلى الخادم من خلال طلبات الشبكة.
首页
: نظرة عامة على الميزات日志
: تحقق من سجل استدعاء وظيفة العميل لتسهيل تصحيح الأخطاء واكتشاف الأخطاء في الظروف العادية. يشير الفشل إلى وجود مشكلة في استدعاء الوظيفة. قد تكون هناك رسائل مفقودة ورسائل خاطئة وفشل في حفظ البيانات ، بحاجة إلى الاهتمام错误检测
: اكتشاف ما إذا كانت الوظائف المختلفة للعميل طبيعية وما إذا كانت المهام المجدولة مفقودة发送消息管理
: إرسال الرسائل على دفعات定时任务管理
: إرسال الرسائل في الأوقات المحددة邮箱报警
: اكتشاف الأخطاء تلقائيًا وإرسال معلومات الخطأ إلى عنوان البريد الإلكتروني المحدد数据管理界面
: إدارة محتوى قاعدة البيانات وتحرير وإرسال الرسائل لتبسيط تكوين الخادم، يرجى تثبيت WeChat في C:/Program Files/Tencent/WeChat/WeChat.exe
. هذا الموقع هو موقع التثبيت الافتراضي لـ WeChat.
إذا تم تثبيت WeChat الخاص بك في مكان آخر، فيرجى استخدام نشر التعليمات البرمجية المصدر، ثم تشغيل الخادم:
تفضل بزيارة
http://127.0.0.1:8000/admin/wechat_app/wechatconfig/1/change/
، واسم المستخدم هوadmin
، وكلمة المرور هيtykWyr-bepqu6-fafvym
، وقم بتعديل موقع تثبيت WeChat يدويًا
لاحظ أن فاصل المسار في نظام التشغيل windows هو
، ولكن في python
هو حرف هروب، لذا يجب استبداله بـ
/
، على سبيل المثال
Windows资源管理器复制出来文件路径是:`C:Program FilesTencentWeChatWeChat.exe`
但是在后台中需要写成:`C:/Program Files/Tencent/WeChat/WeChat.exe
بعد الحفظ، يمكنك تشغيل
pyinstaller YuYuWechatV2_Server.spec
لإعادة ترجمة الخادم إلى EXE، ثم نشره على الخادم
ابحث عن أحدث إصدار على واجهة الإصدار وقم بتنزيل YuYuWechatV2_Server.exe
و YuYuWechatV2_Server_run.bat
ضع الملفين في نفس الدليل، وانقر نقرًا مزدوجًا فوق YuYuWechatV2_Server_run.bat
للتشغيل (المنفذ الافتراضي هو 8000، إذا كان هناك تعارض، فيرجى تعديل ملف الخفافيش لتحديد المنفذ بنفسك)
cd إلى دليل YuYuWechatV2_Server
تثبيت التبعيات pip install -r requirements.txt
قم بتشغيل python manage.py runserver 0.0.0.0:8000
بعد تثبيت الخادم وتشغيله في الخطوة السابقة، يمكنك استخدام أمر بسيط لاختبار ما إذا كان الخادم يعمل بنجاح.
فتح المحطة (بوويرشيل):
curl http://127.0.0.1:8000/wechat/ping
عادة سوف يعود
StatusCode : 200
StatusDescription : OK
Content : { " status " : " pong " }
RawContent : HTTP/1.1 200 OK
Vary: origin
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Content-Length: 18
Content-Type: applicat...
Forms : {}
Headers : {[Vary, origin], [X-Frame-Options, DENY], [X-Content-Type-Options, nosniff], [Referrer-Policy, same
-o rigin]...}
Images : {}
InputFields : {}
Links : {}
Links : {} ParsedHtml : System.__ComObject RawContentLength : 18
$jsonData = ' {"name": "文件传输助手", "text": "hi"} '
Invoke-WebRequest -Uri http://127.0.0.1:8000/wechat/send_message/ -Method Post -Headers @{ " Content-Type " = " application/json " } -Body $jsonData -ContentType " application/json; charset=utf-8 "
سيرسل هذا الأمر رسالة hi
إلى File Transfer Assistant
المحطة المفتوحة:
curl -X GET http://替换成服务器的ip地址:8000/wechat/ping/
curl -X POST http://替换成服务器的ip地址:8000/wechat/send_message/ -H " Content-Type: application/json " -d ' {"name": "文件传输助手", "text": "hi"} '
يتطلب YuYuWechatV2_Server واجهة المستخدم الرسومية، لذلك تحتاج إلى التأكد من أن Windows لا يقوم بقفل الشاشة.
win+r运行命令
gpedit.msc
لقد قمت بتجميع صور عامل الإرساء لـ x86 وarm. يمكن تشغيل كل من معماريات x86 وarm لنظام التشغيل Windows/mac/Linux.
docker-compose.yml
postgres_data
في نفس الدليل لتحميل ملف قاعدة البياناتdocker-compose up
يتم تشغيله docker-compose.yml
- CSRF_TRUSTED_ORIGINS=https://localhost,https://yourdomain.com # 定义CSRF信任域
، وإلا ستحدث مشاكل CSRF
سيقوم ملف الإرساء هذا بسحب ثلاث صور،
`mona233/yuyuwechatv2_client:latest`
`redis:latest`,因为定时任务的celery需要一个消息队列,我默认使用redis,端口为6379
`postgres:latest`,因为客户端需要一个数据库,我默认使用postgres,端口为5432
yuyuwechatv2_client.tar.gz
في واجهة الإصدار. هذه هي صورة عامل الإرساء المترجمة فقط قم باستيرادها إلى عامل الإرساء المحلي. إذا كنت تريد تخصيص بنية قاعدة البيانات وإضافة وظائف، فيمكنك تشغيلها من التعليمات البرمجية المصدر
tykWyr-bepqu6-fafvym
، ويمكنك أيضًا تعديلها يدويًا في إعدادات Django.YuYuWechatV2_Client
pip install -r requirements.txt
python manage.py runserver 127.0.0.1:7500 --insecure
YuYuWechatV2_Client/YuYuWechatV2_Client/settings.py
CSRF_TRUSTED_ORIGINS = os.environ.get('CSRF_TRUSTED_ORIGINS', 'https://localhost').split(',')
، وإلا فستحدث مشكلات csrf
127.0.0.1:7500
في متصفحك المحلي لفتح الصفحة الرئيسية للواجهة الأمامية الأول هو واجهة تسجيل الدخول. تحتاج إلى إنشاء مستخدم متميز يدويًا وفتح محطة طرفية جديدة:
أدخل حاوية عامل الإرساء
docker exec -it yuyuwechatv2_client bash
جبل الدليل
cd /app
أنشئ مستخدمًا مميزًا (يُرجى تعيين المستخدم وكلمة المرور بنفسك)
python manage.py createsuperuser
ثم أدخل اسم المستخدم وكلمة المرور الخاصة بك على واجهة تسجيل الدخول لتسجيل الدخول.
192.168.50.1:8000
، ثم انقر لاختبار ما إذا كان الخادم متصلاً أم لا، وبعد اتصاله، انقر فوق Save Server IP لحفظه باستمرار في قاعدة البيانات. ليست هناك حاجة لتكوين عنوان IP للخادم في المرة القادمة.启动定时任务
لبدء مهمة الإرسال المجدولة ووظيفة إنذار البريد الإلكتروني.بالنسبة للوظائف الأخرى، انقر على الشريط الجانبي للانتقال إلى الواجهة المقابلة. تتضمن صفحة الويب الأمامية فقط عمليات العرض والإرسال في قاعدة البيانات. ويجب إجراء إضافة وحذف وتعديل المستخدمين ومحتوى الرسالة في واجهة إدارة الخلفية مما يضمن أمن البيانات
127.0.0.1:7500/admin
في متصفحك المحلي للدخول إلى واجهة إدارة الخلفية. في Client_app هي بيانات العميل، يمكنك رؤية جدول البيانات التالي
Messages
: جدول بيانات لإدارة إرسال الرسائلScheduled messages
: جدول بيانات لإدارة المهام المجدولةServer configs
: تكوين الخادمWechat users
: جدول بيانات مستخدم WeChatEmail settingss
: إعدادات البريد الإلكترونيLogs
: سجل جدول البياناتError logs
: جدول بيانات اكتشاف الأخطاء Username
: اسم صديق WeChat أو اسم الملاحظة، يجب أن يحتل المرتبة الأولى في نتائج البحث ( مطلوب )Wechatid
: معرف WeChat ( اختياري )Date added
: تاريخ إضافة الصديق ( اختياري )Group:
: مجموعة الأصدقاء يمكن لصفحة الويب الأمامية تصفية الأصدقاء وفقًا للمجموعة لتسهيل إدارة المجموعة ( اختياري ). Is active
: سواء تم تفعيل هذه الرسالة أم لا، فسيتم إرسالها بانتظام بعد التنشيط.User
: حدد مستخدم WeChat الذي تمت إضافته في الخطوة السابقة ( مطلوب )Text
: محتوى الرسالة المرسلة ( مطلوب )Cron expression
: تعبير cron، وقت الإرسال بانتظام، التنسيق هو * * * * *
، يمثل分时日月周
على التوالي ( مطلوب )Execution count:
عدد مرات تنفيذ الرسالة، 0 يعني عدم التنفيذ، وسيتم تخفيضه بمقدار واحد بعد كل تنفيذ حتى يصبح 0، بحيث يمكن التحكم في عدد مرات إرسال الرسالة ( يحتاج العدد ليتم ضبطها يدويًا )Execution skip
: عدد الرسائل التي يتم تخطيها، الافتراضي هو 0. إذا تم التعيين على 1، فلن يتم تنفيذ المهمة في المرة التالية، ولكن في المرة التالية فقط. إذا تم التعيين على 2، فسيتم تخطي المهمة مرتين، وهكذا يمكن أن يتحكم هذا في بدء إرسال الرسائل المجدولة ( اختياري ). من خلال cron表达式
消息的执行次数
消息的跳过次数
، يمكن بدء الرسالة وإنهائها في أي وقت، ويمكن إرسال الرسالة في أي وقت، ويمكن إرسال الرسالة في حلقة.
فيما يتعلق cron表达式
، هذا البرنامج عبارة عن تعبير cron مكون من 5 مقاطع، وهو دقيق تمامًا، يرجى عدم الخلط بينه وبين تعبير cron المكون من 7 مقاطع.
* * * * *:每分钟执行一次
0 * * * *:每小时执行一次
0 0 * * *:每天执行一次
0 0 * * 1:每周一执行一次
*/10 * * * * # 每10分钟执行一次
0 0 */2 * * # 每隔一天午夜12点执行
0 0 * * 1 # 每周一午夜12点执行
0 0 1 * * # 每月1日午夜12点执行
باستخدام وظيفة إنذار البريد الإلكتروني، عند حدوث خطأ، يمكن إرسال بريد إلكتروني تلقائيًا إلى صندوق البريد المخصص لتسهيل معالجة الأخطاء في الوقت المناسب.
انقر فوق تكوين البريد الإلكتروني على الصفحة الرئيسية وسوف ينتقل إلى الواجهة الخلفية.
يوصى باستخدام صندوق البريد 163 هنا. فيما يلي التكوين التفصيلي لصندوق البريد (إذا كنت تستخدم صندوق البريد 163، فلن تحتاج إلى تغيير العناصر الثلاثة الأولى).
Email host
: عنوان SMTPEmail port
: منفذ SMTPEmail security
: حدد طريقة التشفيرEmail host user
: حساب البريد الإلكترونيEmail host password
: كلمة مرور البريد الإلكتروني (عادة ما يكون هذا رمز تفويض، يرجى تطبيقه بنفسك)Default from email:
عنوان البريد الإلكتروني لإرسال رسائل البريد الإلكتروني، وهو بشكل عام نفس عنوان Email host user
Recipient list:
عنوان البريد الإلكتروني لتلقي رسائل البريد الإلكتروني يمكنك ملء إدخالات متعددة، مفصولة بفواصل. بعد كتابة رسالة مجدولة، تحتاج أحيانًا إلى إنشاء رسالة التحقق في نفس الوقت. وهذا سيناريو شائع جدًا، لذلك كتبت أداة ترحيل لتسهيل إنشاء رسالة التحقق من الرسالة المجدولة.
YuYuWechatV2_Client
python manage.py generate_message_checks
في المحطةافتراضيًا، سيقوم برنامج الترحيل هذا بإنشاء رسالة مجدولة وMessageCheck وفقًا للقواعد التالية
is_active=scheduled_message.is_active, # 保持与 ScheduledMessage 一致的激活状态
user=scheduled_message.user, # 关联的用户与 ScheduledMessage 相同
keyword="", # keyword 留空
cron_expression=cron_expression_day_after, # 设置为第二天 15:00 的 cron 表达式
message_count=1, # 默认仅检查一条消息
report_on_found=False # 默认不报告找到的关键词
إذا كنت ترغب في تخصيص قواعد الإنشاء، فيمكنك تعديل وظيفة YuYuWechatV2_Client/client_app/management/commands/generate_message_checks.py
عادةً ما تكون الرسائل المرسلة بواسطة WeChat مهمة جدًا لضمان عدم وجود مشاكل في إرسال الرسائل، يستخدم YuYuWechat مجموعة متنوعة من الوسائل لضمان موثوقية النظام، ولكن قد تستمر الأخطاء في حدوثها مرحبا بكم في إثارة قضية.
من الناحية النظرية، لا مفر من الأخطاء، لذا فإن اكتشاف الأخطاء أمر بالغ الأهمية
يعد الاختبار وسيلة مهمة للتحقق مما إذا كانت التعليمات البرمجية تعمل كما هو متوقع. يُجري YuYuWechat اختبارًا آليًا من خلال إجراءات GitHub للحصول على عينات اختبار مفصلة، يرجى الرجوع إلى مجلد .github
جوهر easyChat YuYuWechatV2_Server هو easyChat، يرجى دعمه
تتطلب صيانة البرنامج تكلفة معينة. إذا كنت تعتقد أن هذا البرنامج مفيد لك، فنحن نرحب بك لإكرام المؤلف بفنجان من القهوة☕️
YuYuWechat مجاني تمامًا، والتبرعات تهدف فقط إلى دعم المؤلف لمواصلة تطوير البرنامج وصيانته، وليست إلزامية
يُستخدم الرمز فقط للتواصل والتعرف على تقنية UIAutomation، ويُحظر استخدامه في مشاريع الإنتاج الفعلية. يرجى عدم استخدامه لأغراض غير قانونية أو تجارية. إذا نشأت أي نزاعات قانونية نتيجة لذلك، فلا علاقة للمؤلف بها!