Esta es una versión simple del robot WeChat creada con AppleScript y la versión Mac del cliente WeChat. Este robot surgió del hecho de que quería crear un ChatBot que me ayudara a registrar el consumo, la dieta, el ejercicio y otros datos, y que me ayudara a resumir el contenido de los artículos de las cuentas públicas de WeChat. Actualmente, la solución principal para implementar ChatBot usando WeChat personal es Wechaty. Sin embargo, entre los títeres utilizados por Wechaty, la versión web gratuita o la versión UOS no es lo suficientemente estable (lo que significa que a menudo se desconecta inexplicablemente). Soluciones como ipadloacl son estables. y rico en funciones. Debe gastar monedas de oro adicionales para comprar tokens. Entonces, después de algunos pequeños intentos, implementé este robot WeChat que es lento, tiene pocas funciones, pero es lo suficientemente estable ( elegí la versión Mac del cliente WeChat porque solo tengo dispositivos Mac ).
Este robot se completa principalmente con AppleScript, complementado con algo de código Python. Python se usa porque la operación de clic del mouse que viene con AppleScript no se puede usar en el cliente WeChat, por lo que se usa una biblioteca Python adicional para implementar la operación de clic. Por lo tanto, primero debe tener un intérprete de Python3 e instalar PyUserInput:
pip3 install PyUserInput
Por supuesto, si tiene otras soluciones para simular clics del mouse, también puede usar la suya propia (solo descubrí que PyUserInput quedó obsoleto cuando escribí este README).
A continuación, debe modificar algunas configuraciones en wemac .applescript
de la siguiente manera:
mouseclick.py
;Después de configurar las variables anteriores, puede intentar ejecutar el script una vez. Antes de ejecutarlo, asegúrese de haber iniciado sesión en la versión Mac de WeChat . Ejecute el script y encontrará que AppleScript encontrará automáticamente el chat de destino, hará clic en la ventana de chat y comenzará a eliminar el registro de chat más reciente . Sí, este AppleScript eliminará el registro de chat. no se ha respondido a ningún lugar para registrar cada mensaje, solo puede evitar respuestas repetidas eliminando el mensaje después de eliminarlo, si el mensaje está en el robot, entonces responderá y la ejecución de AppleScript habrá finalizado. Esa ejecución de AppleScript solo se procesará un mensaje .
Entonces, ¿cómo mantener el robot en funcionamiento? Una solución factible es escribir un run.sh
y escribir un bucle infinito en él para ejecutar wemac .applescript
continuamente (de hecho, lo hago yo mismo).
Si desea personalizar el contenido de la respuesta, como conectarse a un modelo de lenguaje grande, puede agregar su propia lógica de respuesta en el comentario "Lógica de procesamiento de mensajes" en la línea 270 de wemac .applescript
Dado que AppleScript tiene capacidades limitadas, puede hacerlo. use el shell para conectar otro lenguaje, como Python, puede llamar a un script de Python para personalizar el contenido de la respuesta de la siguiente manera:
set replyMessage to do shell script "python3 your_script.py " & (my escaped(question))
La salida estándar (stdout) del shell ejecutado se asignará a replyMessage
y luego el robot la enviará como respuesta.
Al empalmar comandos de shell, puede utilizar la función escaped
para escapar de los parámetros y evitar ataques de inyección.
En este punto, se está ejecutando un chatbot simple. Durante el proceso, es posible que encuentre algunos errores que no puedan localizar elementos, pero en general, ignórelos y vuelva a ejecutar AppleScript.
run.sh
al mismo tiempo para manejar diferentes chats, pero esto reducirá la velocidad de ejecución;Pero la ventaja es que es lo suficientemente estable y básicamente puede ejecutarse para siempre siempre que inicies sesión. En teoría, WeChat no detectará el uso de AppleScript para simular clics y provocará la prohibición de cuentas.
La versión del cliente Mac WeChat utilizada es Version. 3.8.6 (28078)
.