هذه نسخة بسيطة من روبوت WeChat تم إنشاؤها باستخدام إصدار AppleScript وMac من عميل WeChat. نشأ هذا الروبوت من حقيقة أنني أردت إنشاء ChatBot لمساعدتي في تسجيل الاستهلاك والنظام الغذائي والتمارين الرياضية وغيرها من البيانات، ومساعدتي في تلخيص محتوى مقالات الحساب العام لـ WeChat. حاليًا، الحل السائد لتطبيق ChatBot باستخدام WeChat الشخصي هو Wechaty. ومع ذلك، من بين الدمى التي يستخدمها Wechaty، فإن إصدار الويب المجاني أو إصدار UOS ليس مستقرًا بدرجة كافية (مما يعني أنه غالبًا ما يتم إيقافه دون اتصال بالإنترنت لسبب غير مفهوم). وغنية بالميزات، فأنت بحاجة إلى إنفاق عملات ذهبية إضافية لشراء الرموز المميزة. لذلك، بعد بعض المحاولات الصغيرة، قمت بتنفيذ روبوت WeChat هذا، وهو بطيء وله وظائف قليلة، ولكنه مستقر بدرجة كافية ( اخترت إصدار Mac من عميل WeChat لأنه ليس لدي سوى أجهزة Mac ).
يتم إكمال هذا الروبوت بشكل أساسي باستخدام AppleScript، ويتم استخدام Python لأنه لا يمكن استخدام عملية النقر بالماوس التي تأتي مع AppleScript على عميل WeChat، لذلك يتم استخدام مكتبة Python إضافية لتنفيذ عملية النقر. لذلك، يجب أن يكون لديك أولاً مترجم Python3 وتثبيت PyUserInput:
pip3 install PyUserInput
بالطبع، إذا كانت لديك حلول أخرى لمحاكاة نقرات الماوس، فيمكنك أيضًا استخدام حلولك الخاصة (اكتشفت أنه تم إهمال PyUserInput فقط عندما كتبت هذا الملف التمهيدي).
بعد ذلك، تحتاج إلى تعديل بعض التكوينات في wemac .applescript
على النحو التالي:
mouseclick.py
فيه؛بعد تعيين المتغيرات المذكورة أعلاه، يمكنك محاولة تشغيل البرنامج النصي مرة واحدة، قبل التشغيل، يرجى التأكد من تسجيل الدخول إلى إصدار WeChat لنظام التشغيل Mac . قم بتنفيذ البرنامج النصي وستجد أن AppleScript سيعثر تلقائيًا على الدردشة المستهدفة، وانقر على نافذة الدردشة، وابدأ في حذف سجل الدردشة الأحدث . نعم، سيحذف AppleScript سجل الدردشة في ذلك الوقت لم يتم الرد على أي مكان لتسجيل كل رسالة، يمكنك فقط تجنب الرد المتكرر عن طريق حذف الرسالة؛ ستتم معالجة رسالة واحدة فقط من خلال تنفيذ AppleScript .
إذن، كيف يمكن الحفاظ على تشغيل الروبوت؟ الحل الممكن هو كتابة ملف run.sh
وكتابة حلقة لا نهائية فيه لتنفيذ wemac .applescript
بشكل مستمر (في الواقع، أفعل ذلك بنفسي).
إذا كنت تريد تخصيص محتوى الرد، مثل الاتصال بنموذج لغة كبير، فيمكنك إضافة منطق الرد الخاص بك في تعليق "منطق معالجة الرسائل" في السطر 270 من wemac .applescript
نظرًا لأن AppleScript نفسه يتمتع بقدرات محدودة، فيمكنك ذلك استخدم الصدفة لتوصيل لغة أخرى، مثل Python، ويمكنك استدعاء برنامج Python النصي لتخصيص محتوى الرد بالطريقة التالية:
set replyMessage to do shell script "python3 your_script.py " & (my escaped(question))
سيتم تعيين الإخراج القياسي (stdout) للصدفة المنفذة إلى replyMessage
، ثم يرسله الروبوت كرد.
عند ربط أوامر الصدفة، يمكنك استخدام وظيفة escaped
للهروب من المعلمات لتجنب هجمات الحقن.
في هذه المرحلة، يتم تشغيل برنامج chatbot بسيط أثناء العملية، قد تواجه بعض الأخطاء التي لا يمكنها تحديد موقع العناصر، ولكن بشكل عام، تجاهلها وأعد تشغيل AppleScript.
run.sh
في نفس الوقت للتعامل مع محادثات مختلفة، ولكن هذا سيؤدي إلى إبطاء سرعة التشغيل؛لكن الميزة هي أنه مستقر بدرجة كافية ويمكن تشغيله بشكل أساسي إلى الأبد طالما قمت بتسجيل الدخول. من الناحية النظرية، لن يتم اكتشاف استخدام AppleScript لمحاكاة النقرات بواسطة WeChat وسيؤدي إلى حظر الحساب.
إصدار عميل Mac WeChat المستخدم هو Version. 3.8.6 (28078)
.