Un robot WeChat con funciones sencillas y fácil uso
Funciones soportadas:
Características opcionales:
Usar condiciones previas
git clone https://github.com/leantli/wc_robot.git
go mod tidy
config.yaml
-> robot_name
y on_contact_nicknames
go run main.go
env GOOS=linux GOARCH=amd64 go build -o wc_robot main.go
en el directorio raíz del proyectowc_robot
y el archivo de configuración config.yaml
al servidor. Depende de usted qué directorio cargar en el servidor.chmod +x ./wc_robot
otorga permiso de ejecución al archivonohup ./wc_robot > robot.log &
ejecute el programa en segundo plano y envíe el registro al archivo robot.log
tail -50f ./robot.log
observe el registro. El código QR de inicio de sesión de WeChat también está en el registro. Escanee el código para iniciar sesión usted mismo.2022.11.9 TODO(leantli):
weather_msg_handle.city_code
, coincide con el área de la ciudad correspondiente de acuerdo con los mensajes de otros usuarios de WeChat para la transmisión del clima (☑️)2022.11.11 TODO(leantli):
2022.11.28 TODO(leantli):
2022.12.9 TODO(leantli):
2023.2.23: No debería continuar actualizando este proyecto. Comenzaré una nueva rama para probar otras formas de robots WeChat. Lo veré más tarde cuando tenga tiempo.
Las siguientes modificaciones de configuración se basan en
config.yaml
weather_msg_handle.switch_on
Ya sea para habilitar la respuesta automática para esta palabra clave, el valor predeterminado es true
covid_msg_handle.switch_on
Si se debe habilitar la respuesta automática para esta palabra clave, el valor predeterminado es true
weather_schedules.switch_on
Ya sea para habilitar esta tarea programada, el valor predeterminado es false
, habilitar está establecido en true
weather_schedules.to_nicknames
¿A quién se debe enviar el pronóstico del tiempo? El contenido completo es el apodo del usuario de WeChat. Se admiten apodos de chat grupal. Si es necesario completar a varias personas, sepárelas con comas en inglés ','.weather_schedules.to_remarknames
¿A quién se debe enviar el pronóstico del tiempo? El contenido completo son los comentarios del usuario de WeChat. Los comentarios del chat grupal no se devuelven durante la comunicación normal de WeChat y no se pueden reconocer si varias personas lo necesitan. completarse, utilizar comas en inglés ',' separarweather_schedules.times
es la hora específica para enviar el pronóstico del tiempo regularmente todos los días, el formato es "00:00:00", varias horas están separadas por comas en inglés ','weather_schedules.city_code
El área donde se transmite este pronóstico del tiempo es por defecto el área de Nanshan en Shenzhen. Si necesita cambiarlo, consulte https://wis.qq.com/city/like?source=pc&city=Nanshan, modifíquelo. el último "Nanshan" usted mismo y busque Obtenga el código de ciudad correspondiente clock_in_schedules.switch_on
Si se debe habilitar esta tarea programada, el valor predeterminado es false
, habilitar está establecido en true
clock_in_schedules.to_nicknames
¿A quién enviar este mensaje? Complete el apodo del usuario de WeChat. Se admiten apodos de chat grupal. Si es necesario ingresar varias personas, sepárelas con comas en inglés ','.clock_in_schedules.to_remarknames
¿A quién se debe enviar este mensaje? El contenido completo son los comentarios del usuario de WeChat. Los comentarios del chat grupal no se admiten durante la comunicación normal en WeChat y no se pueden reconocer si son necesarias varias personas. deben completarse, sepárelos con comas inglesas ','clock_in_schedules.times
es la hora específica para enviar mensajes regularmente todos los días, el formato es "00:00:00", varias horas están separadas por comas en inglés ','clock_in_schedules.text
, como "Extraño mucho a mi esposa❤️", "¿Aún no sales del trabajo?" days_matters.switch_on
Ya sea para habilitar esta tarea programada, el valor predeterminado es false
, habilitar está establecido en true
days_matters.to_nicknames
¿A quién se debe enviar el recordatorio? El contenido completo debe ser el apodo del usuario de WeChat. Se admiten apodos de chat grupal. Si es necesario completar a varias personas, sepárelas con comas en inglés ','.days_matters.to_remarknames
¿A quién se debe enviar el recordatorio? El contenido completado son los comentarios del usuario de WeChat. Los comentarios del chat grupal no se admiten durante la comunicación normal de WeChat y no se pueden reconocer si es necesario que lo hagan varias personas. completados, sepárelos con comas inglesas ','days_matters.times
es la hora específica para enviar recordatorios todos los días, el formato es "00:00:00", varias horas están separadas por comas en inglés ','days_matters.date
Las fechas específicas de los días importantes, en el formato "aaaa-MM-dd", como "2021-4-3"days_matters.content
son los días importantes, como "Estar con mi esposa", "Pagar el salario"Tomemos como ejemplo "con mi esposa".
Si la fecha se establece en la hora anterior, el mensaje se enviará como "%s (con mi esposa) han pasado %d días".
Si la fecha se establece en la hora del día, el mensaje se enviará como "Hoy es %s (con mi esposa)".
Si la fecha se establece en una hora futura, el mensaje se enviará como "Faltan %d días hasta %s (con mi esposa)"
alapi.switch_on
Ya sea para habilitar la respuesta automática para esta palabra clave, el valor predeterminado es false
, si está habilitado, configúrelo en true
y preste atención a la configuración token
alapi.token
, debe registrarse en el sitio web de ALAPI para obtenerlo. Los usuarios gratuitos de la API admiten llamadas 1qps, lo cual es más que suficiente para uso personal. openai.api_key
: token de autenticación de open_ai, debe registrarse en el sitio web oficial de openai y obtenerlo en https://beta.openai.com/account/api-keysopenai.gpt_text_switch_on
Ya sea para habilitar la función de respuesta de texto GPT, el valor predeterminado es false
openai.gpt_text_is_default_reply
Si se debe configurar la respuesta de texto gpt como la respuesta predeterminada (es decir, llamar automáticamente a GPT cuando no se activan otras palabras clave), false Cuando está cerrado, la respuesta gpt debe activarse mediante el formato "gpt xxx" habilitado de forma predeterminada;