Convert Figma logo to code with AI

sfyc23 logoEverydayWechat

微信助手:1.每日定时给好友(女友)发送定制消息。2.机器人自动回复好友。3.群助手功能(例如:查询垃圾分类、天气、日历、电影实时票房、快递物流、PM2.5等)

9,966
2,310
9,966
24

Top Related Projects

25,429

A complete and graceful API for Wechat. 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。

13,948

微信机器人 / 可能是最优雅的微信个人号 API ✨✨

19,998

Conversational RPA SDK for Chatbot Makers. Join our Discord: https://discord.gg/7q8NBZbQzt

Python Wechaty is a Conversational RPA SDK for Chatbot Makers written in Python

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT-o1/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。

Quick Overview

EverydayWechat is a Python-based project that automates sending daily messages to your significant other or friends via WeChat. It includes features like sending weather reports, inspirational quotes, and personalized messages, making it a fun and thoughtful way to stay connected with loved ones.

Pros

  • Automates daily communication, helping maintain relationships
  • Customizable content, including weather reports and inspirational quotes
  • Easy to set up and use, even for those with limited programming experience
  • Supports multiple recipients and message types

Cons

  • Relies on third-party APIs, which may have usage limits or potential downtime
  • Requires a WeChat account and may violate WeChat's terms of service
  • Limited to text-based messages, lacking support for multimedia content
  • May require periodic maintenance to keep up with WeChat's security updates

Code Examples

  1. Sending a weather report:
from everyday_wechat import get_weather_info

city_name = "Beijing"
weather_info = get_weather_info(city_name)
print(weather_info)
  1. Sending an inspirational quote:
from everyday_wechat import get_dictum_info

dictum_channel = "poetry"
quote = get_dictum_info(dictum_channel)
print(quote)
  1. Sending a message to a friend:
from everyday_wechat import send_message

friend_name = "John Doe"
message = "Hello! Have a great day!"
send_message(friend_name, message)

Getting Started

  1. Clone the repository:

    git clone https://github.com/sfyc23/EverydayWechat.git
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Configure config.yaml with your WeChat credentials and recipient information.

  4. Run the main script:

    python main.py
    

Competitor Comparisons

25,429

A complete and graceful API for Wechat. 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。

Pros of ItChat

  • More comprehensive and flexible API for WeChat interactions
  • Better documentation and examples for developers
  • Actively maintained with regular updates and bug fixes

Cons of ItChat

  • Steeper learning curve for beginners
  • Requires more setup and configuration
  • Less focused on specific use cases like automated messaging

Code Comparison

ItChat:

import itchat

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return msg.text

itchat.auto_login(hotReload=True)
itchat.run()

EverydayWechat:

from everyday_wechat import run

def run():
    run()

if __name__ == '__main__':
    run()

ItChat provides a more granular approach to handling WeChat messages, allowing developers to create custom handlers for different message types. EverydayWechat, on the other hand, offers a simpler interface focused on automated messaging tasks.

While ItChat is more versatile and suitable for complex WeChat bot development, EverydayWechat is easier to use for specific automated messaging scenarios, such as sending daily greetings or weather updates.

13,948

微信机器人 / 可能是最优雅的微信个人号 API ✨✨

Pros of wxpy

  • More comprehensive and flexible API for interacting with WeChat
  • Better documentation and examples for developers
  • Supports both personal and official WeChat accounts

Cons of wxpy

  • Less focused on specific use cases like automated messaging
  • Requires more coding knowledge to implement desired functionality
  • May have a steeper learning curve for beginners

Code Comparison

EverydayWechat:

def send_message(self, wechat_name, message):
    my_friend = self.bot.friends().search(wechat_name)[0]
    my_friend.send(message)

wxpy:

from wxpy import *
bot = Bot()
friend = bot.friends().search('Friend Name')[0]
friend.send('Hello, World!')

Summary

EverydayWechat is more focused on automated messaging and specific use cases, making it easier for beginners to get started with basic functionality. wxpy, on the other hand, provides a more comprehensive API for WeChat interactions, offering greater flexibility and control for developers who need more advanced features. While EverydayWechat may be simpler to use for specific tasks, wxpy's broader capabilities make it more suitable for complex projects and custom implementations.

19,998

Conversational RPA SDK for Chatbot Makers. Join our Discord: https://discord.gg/7q8NBZbQzt

Pros of Wechaty

  • More comprehensive and flexible, supporting multiple chat platforms beyond WeChat
  • Larger community and better documentation, making it easier for developers to get started and find support
  • Offers a plugin system for extending functionality

Cons of Wechaty

  • Steeper learning curve due to its more complex architecture
  • Requires more setup and configuration compared to EverydayWechat
  • May be overkill for simple WeChat automation tasks

Code Comparison

EverydayWechat:

# Send a message
itchat.send('Hello, World!', toUserName='filehelper')

# Get friends list
friends = itchat.get_friends(update=True)

Wechaty:

// Send a message
await bot.say('Hello, World!')

// Get friends list
const contactList = await bot.Contact.findAll()

While both projects allow for WeChat automation, Wechaty offers a more modern and flexible approach with support for multiple platforms. EverydayWechat is more focused on WeChat-specific tasks and may be easier to set up for simple use cases. Wechaty's code is typically more verbose but offers greater flexibility and power for complex scenarios.

Python Wechaty is a Conversational RPA SDK for Chatbot Makers written in Python

Pros of python-wechaty

  • More comprehensive and flexible framework for building chatbots
  • Better documentation and community support
  • Supports multiple messaging platforms beyond WeChat

Cons of python-wechaty

  • Steeper learning curve for beginners
  • Requires more setup and configuration
  • May be overkill for simple WeChat automation tasks

Code Comparison

EverydayWechat:

def send_message(self, message):
    itchat.send(message, toUserName=self.to_user)

python-wechaty:

async def on_message(self, msg: Message):
    if msg.text() == 'ding':
        await msg.say('dong')

The EverydayWechat code is simpler and more straightforward for basic WeChat messaging. python-wechaty uses async/await syntax and provides more advanced message handling capabilities.

EverydayWechat is better suited for quick WeChat automation tasks, while python-wechaty offers a more robust framework for building complex chatbots across multiple platforms. Choose EverydayWechat for simplicity and ease of use, or python-wechaty for more advanced features and flexibility.

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT-o1/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。

Pros of chatgpt-on-wechat

  • Focuses specifically on integrating ChatGPT with WeChat, providing a more specialized solution
  • Offers more advanced features like context awareness and multi-round conversations
  • Actively maintained with frequent updates and improvements

Cons of chatgpt-on-wechat

  • Requires more setup and configuration compared to EverydayWechat
  • May have a steeper learning curve for users new to ChatGPT integration
  • Limited to ChatGPT functionality, while EverydayWechat offers a broader range of features

Code Comparison

EverydayWechat:

def get_weather_info(cityname):
    weather_url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + cityname
    try:
        resp = requests.get(weather_url)
        if resp.status_code == 200:
            # Process weather data

chatgpt-on-wechat:

async def get_reply_content(query, context):
    session_id = context.get('session_id')
    reply = await bot.reply(query, context)
    if reply:
        return reply
    else:
        return "Sorry, I couldn't generate a response."

The code snippets highlight the different focus areas of each project. EverydayWechat includes functions for various features like weather information, while chatgpt-on-wechat concentrates on handling ChatGPT interactions within WeChat.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

python_vesion itchat_vesion codebeat badge Codacy Badge MIT weibo GitHub issues GitHub contributors 微信群

EverydayWechat 是基于 Python3 与 Itchat 的微信小工具。
可以定时给朋友或者群聊发送每日天气、提醒、每日一句,也可以智能自动回复好友信息。还有群助手功能,让你在好友群中装 X。 操作简单,小白用户也可快速上手。

本项目依赖于网页版微信进行开发,如登录不了,则无法使用此项目;且无任何解决办法。
本项目依赖于网页版微信进行开发,如登录不了,则无法使用此项目;且无任何解决办法。
本项目依赖于网页版微信进行开发,如登录不了,则无法使用此项目;且无任何解决办法。
网页版微信地址:https://wx.qq.com/。

在北京地区求一份 Python & Android 的工作岗位。
加微信:地址。

版本更新日志

最近搞了一个类似,但功能不一样的项目:微信加群助手。
欢迎大家 star。

禁止将本工具用于商业用途,如产生法律纠纷与本人无关。

注意:如果给女朋友添加图灵机器人回复,请慎重考虑!!!!
并不是你的每一个女朋友都能接受,你用机器人给他回复『暖心话』,安慰她。人工智能也有可能是一个智障机器人。想想如果机器人回复给你女朋友:『我们分手吧』。可能你们真的就分手了。虽然我会在心里默默的点个赞(单身狗的自白)

GitHub stars GitHub forks 请点击页面顶部靠右 star 与 fork

功能说明

  • 支持对多个微信好友自动回复。
  • 定时给好友与群聊组发送提醒,内容包括(天气、格言、自定义的话)。
  • 群助手功能,可以群自动回复,查询最热门的垃圾分类、天气、日历、实时票房、快递信息、PM2.5等等功能。

如果你没有好友可测试发送提醒,而且只有一个人也玩不了自动回复,怎么办呢(快哭了.jpg)。
你可以把『文件传输助手』当成女朋友添加(你说的这个女朋友到底是不是你的双手.jpg)。这样一个号也可以进行测试了,发提醒给文件传输助手,跟文件传输助手智能聊天。

相关数据来源

天气信息:

每日一句:

人工智能机器人

  • 图灵机器人:http://www.turingapi.com/(需求实名制认证,并每天免费数量只有 100 条)
  • 青云客智能聊天机器人:http://api.qingyunke.com/(无须申请,无数量限制,但有点智障,分手神器。分手神器,慎用)
  • 智能闲聊(腾讯):https://ai.qq.com/product/nlpchat.shtml ( 申请使用,免费且无限量。大厂靠谱。)
  • 天行机器人 :https://www.tianapi.com/apiview/47 (认证后有 7 万条免费使用。之后收费:1 万条/1 块钱)
  • 海知智能 :https://ruyi.ai/ (功能很强大,不仅仅用于聊天。需申请 key,免费)
  • 思知对话机器人:https://www.ownthink.com/ (免费,可不申请 appid)
  • 一个AI:http://www.yige.ai/(免费且无数量限制。可自定义回复、对话、场景。但高级功能使用比较复杂。但已长时间没人维护)

星座运势

万年历

票房数据:

垃圾分类查询:

空气质量PM2.5查询:

项目配置

目前项目所有的配置都是在 _config.yaml 文件中。
配置文件请严格遵循 yaml 语法格式,yaml 学习地址:
https://ansible-tran.readthedocs.io/en/latest/docs/YAMLSyntax.html
http://einverne.github.io/post/2015/08/yaml.html

配置自动回复机器人。

1. 开启自动回复

  • 将 is_auto_relay 设置为:True。

2.选择渠道

机器人渠道(1: 图灵机器人,2: 一个AI ,3 : 青云客,4 腾讯智能闲聊,5:天行机器人,6:海知智能,7:思知机器人)
bot_channel: 7

默认为思知机器人,可不申请 key 的情况下,最智能的了。。

3. 指定自动回复的好友名单

有两种模式

(1) 不使用自动回复所有好友的情况下,即:is_auto_reply_all:False 时。
这时设置可回复的白名单成员,如下:

is_auto_reply_all:False
# 指定自动回复的好友名单。
auto_reply_white_list:
  - '好友1'
  - '好友2'

(2) 开启自动回复所有好友的情况下,即:is_auto_reply_all:True 时。
选择不自动回复黑名单成员:如下

is_auto_reply_all:True
auto_reply_black_list:
    - '好友1'
    - '好友2'

4. 配置相关器人

除了青云客之外,其他的机器人都需要去对应的官网,注册并获取相应的 key。需要哪个就配置哪个。

I.图灵机器人
  • 打开图灵机器人官网:http://www.turingapi.com 进行注册。
  • 创建机器人,得到 apikey。将填入到 _config.yaml 文件中的:

注意:不要打开『密钥』选项。

turing_conf:
  apiKey: '你所获取apikey'

图灵机器人必须认证后才能使用,免费版用户,每天可使用 100 条信息,且用且珍惜。

II.天行机器人
  • 打开天行数据注册页面:https://www.tianapi.com/signup.html 进行注册。
  • 在个人中心的第一行,即可得到 apikey。
txapi_conf:
  app_key: '个人中心中的key'
  reply_name: '宝宝' # 回复的人的名字(可空)(也可在个人中心->机器人管理 修改)
  bot_name: '老公' # 机器人的名字(可空)
III.智能闲聊(腾讯)
  • 打开 https://ai.qq.com/product/nlpchat.shtml 并登录。
  • 点击免费使用 -> 接入能力 -> 创建应用 -> 创建成功后,会显示出 app_id ,app_key 。
  • 点击应用管理 -> 『你创建的项目名』-> 接入能力 -> 智能闲聊 -> 了解更多 -> 接入能力->『选择项目』-> 确认接口。
    将 app_id,app_key 填入 yaml 中。
qqnlpchat_conf:
    app_id: '你申请的api_id'
    app_key: '你申请的app_key'
IV.配置「一个AI」

打开图灵机器人官网:http://www.yige.ai 进行注册。
创建应用,得到「API密钥」中的 「客户端访问令牌」
将填入到 _config.yaml 文件中的:

yigeai_conf:
  client_token: '客户访问令牌'
V.配置「思知机器人」

打开思知官网:https://www.ownthink.com/ 进行注册。
创建机器人,得到 appid。
将填入到 _config.yaml 文件中的:

ownthink_conf:
    app_key: '你申请的api_id'

关于自动回复,目前可以公开的情报:

  1. 只能自动回复文字类消息;
  2. 如果消息发送太频繁,微信会限制登录网页端登录。放心,并不会封号;
  3. 好友里可以填入名称『文件传输助手』,这样你就可以在文件传输助手,发送消息,查看自动回复消息效果。

配置定时提醒

1.开启并设置提醒时间

  • 将 is_alarm 设置成 True。(当为 False 时,则关闭定时)
alarm_info:
  is_alarm: True

2.填写需要发送的好友信息

填写好友信息,例如:

alarm_timed:
  - "9:00"
  - "12:30"
  - "22:00"
wechat_name:
  - '文件传输助手'
  - '诗风'
group_name:
  - 'EverydayWechat 交流群'
is_tomorrow: False
city_name: '桂林'
dictum_channel : 3
start_date: '2017-10-10'
start_date_msg: '爱你的第{}天'
calendar: True
horescope: "处女座"
sweet_words: '你脚下的蚂蚁'

相关参数说明:

名称示例必填说明
wechat_name'老婆'选填好友名:可填多人。好友微信昵称或者备注名(不能输入微信号)
alarm_timed'9:30'必填定时时间,可填多个
alarm_jitter300可空定时时间的前后300秒内随机发送
group_name'交流群'选填群聊名称,可填多个。必须要把需要的群聊保存到通讯录。
is_tomorrowTrue可空是否发送明日信息(如天气,星座,万年历)。
city_name'成都'可空城市名:朋友所在城市,用于发送天气。
air_quality_city'成都'可空空气质量 PM25 的城市。
dictum_channel2可空格言渠道(见下表)
start_date'2017-10-10'可空相识日期:计算到当天的天数 。
start_date_msg'爱你的第{}天'可空相识日期文案
sweet_words'来自你俊美的老公'可空甜密的后缀。(钢铁直男的直描)
horescope'处女座'可空星座名或好友生日。用于发送星座运势
calendarTrue可空万年历信息

wechat_name,group_name 至少要有一个。

格言渠道 : 1 : ONE●一个,2 : 词霸(每日双语),3: 土味情话, 4 : 一言,5:笑话,6: 民国情书,7: 彩虹屁。

Tips:可以把 wechat_name 填入『文件传输助手』,这样,提醒会发送到自己微信里的 文件传输助手 中。在不打扰别人的情况下,方便快速查看效果。

  • alarm_time 设置成需要提醒的时间。之后如果微信没有断线,即每天这个的时间会定时发送提醒。

如果需要快速体验,可将 alarm_timed 当前系统时间之后的几分钟。例如当前时间为 11:35,并设置 5 分钟后发送提醒,即:alarm_timed:11:40

当然,你也可以根据自己的需求,设置另一套不同的方案。具体参考代码。

一例提醒:

2019-06-29 星期六 农历五月廿七 
【宜】嫁娶,祭祀,沐浴,扫舍,修饰垣墙 
【忌】行丧,安葬 
桂林天气预报 
【今日天气】阵雨
【今日温度】低温 26.0℃,高温 33.0℃ 
【今日风速】南风<3级
【出行提示】阵雨来袭,出门记得带伞 
【桂林PM2.5】142 轻度污染
处女座今日运势 
【幸运颜色】2
【幸运数字】薄荷绿
【综合运势】今天的你有机会重逢旧同学、旧朋友,对方会为你带来一些小惊喜,可能是某个不错的商机,也可能是某个消息。工作/学习上,今天的你目标性很强,能把当初奋斗的初心捡回来,重新出发。感情方面,有伴者今天要提防烂桃花的挑拨离间,多给对方一些信任。
你知道五氧化二磷被氧化前是什么样子嘛,什么样子?五二磷。 
宝贝这是我们在一起的第628天 
你脚下的蚂蚁

配置群助手功能

直接放表格说明吧。

名称示例必填说明
is_openTrue必填是否开启群助手功能
is_allTrue必填是否对所有群开启。当开启时,只有黑名单的名单才不受影响(慎重开启!)
group_name_white_list「群名」选填白名单用户。当 is_all:Fase。只处理这个群里的消息
group_name_black_list「群名」选填黑名单用户。当 is_all :True 。这个群里的用户不受影响。
is_atTrue必填艾特标记。只有当别人艾特自己时,才会处理消息(慎重关闭!)。
is_auto_replyTrue必填# 开启群自动回复(慎重开启!)
is_weatherTrue必填是否开启天气查询。
is_calendarTrue必填是否开启万历年查询
is_rubbishTrue必填是否开启垃圾查询
is_movieboxTrue必填是否开启电脑票房查询
is_expressTrue必填是否开启快递信息查询
is_air_qualityTrue必填是否开启空气质量查询

配置数据库(可不配置)

首先得安装 mongodb 数据库安装。安装方式,请自行谷歌。
官方的安装教程也有:https://docs.mongodb.com/v3.2/administration/install-community/

(1)将 is_open_db 设置成 「True」。
(2)设置 host 与 port。tips: 没有特殊要求,或者对数据库不熟悉者不需要设置。

安装

首先,把 Python3 安装好,并配置好环境,个人建议新手安装 Anaconda,具体安装教程,可自行谷歌搜索~

直接下载此项目或 clone 项目到本地。

使用 pip 安装依赖:

pip3 install -r requirements.txt
# 或者是使用 pip
# pip install -r requirements.txt

运行

在本地 cmd 中跳转项目目录下,运行:

python run.py

第一次运行会跳出二维码,扫码登录。如输出日志中打印成:『登录成功』,则表示运行成功。
登录成功后一段时间内再运行,微信会保持登录状态,不需要再扫码。
如果需要切换用户,则在 _config.yaml 文件中,修改 is_forced_switch 的属性为 True。

  • docker 下运行
    • 构建 docker build -t everyday_wechat:v1 .
    • 运行 docker run everyday_wechat:v1

示例截图:

日志

自动回复

提 issues & 加群提问的建议。

  • 当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。推荐阅读:提问的智慧。
  • **检查是否是最新的代码,检查是否是 Python3.5+,检查依赖有没有安装完整**。
  • 先检查微信是否可登录 微信网页版,如网页端不能用,此项目也不能用。
  • 请更新你的 itchat 至最新版本 1.3.10 。查看 itchat 版本 print(itchat.version )。
  • 与微信相关的问题可以先去 itchat issues, 查看是否有相似问题。
  • 微信名只能是昵称或者备注名,不能输入微信号。
  • 对群聊操作时,必须要把需要的群聊保存到通讯录。
  • 如果有新的思路和建议也欢迎提交。

Credits 致谢

本项目受以下项目启发,参考了其中一部分思路,向这些开发者表示感谢。

  • wechatBot —— 微信每日说,每日自动发送微信消息(Node + Wechaty)。
  • NodeMail —— 用 Node 写一个爬虫脚本每天定时给女朋友发一封暖心邮件。
  • wechat-assistant —— koa+wechaty实现的微信个人秘书,把你闲置的微信号利用起来做个个人秘书。
  • WechatRobot ——个人微信号自动回复、陪聊、查天气(Java)
  • https://github.com/likaixiang/EverydayWechat
  • https://github.com/0xHJK/music-dl

微信交流群

因为人数已超 100 人,请加 wx: sfyc1314 机器人为好友,验证信息写填写:「github」!!!,机器人会自动通过。
通过后回复:「加群」,会自动拉你入群。 加群助手也已开源,地址:https://github.com/sfyc23/WechatAddGroupHelper,欢迎大家 star。
机器人二维码:

微信交流群

捐助

如果您认为这个项目有帮助,不妨为它捐助一点钱?

不管钱有多少,您的捐助将会激励作者持续开发新功能!🎉

感谢您的支持!

捐助方法如下:

LICENSE

MIT License