当前位置: 首页 > news >正文

itchat 同时实现自动回复和定时任务

众所周知,itchat 实现自动回复只需要以下几行代码:

import itchat

@itchat.msg_register(itchat.content.TEXT, isFriendChat=True)
def text_reply(msg):
   pass

itchat.auto_login()
itchat.run()

这只是被动的监听消息,不能主动发送内容。

另一方面,如果想设定一个定时任务,通常要用死循环,每隔一段时间判断当前时刻,如下为整点发送消息的代码:

while(True):
    if (time.strftime("%M", time.localtime())=='00'):
        itchat.send(msg, toUser)
    time.sleep(60)

现在出现了矛盾,被动监听是个封装好的死循环,定时任务也是个死循环,怎么让他们同时实现呢?

自然想到要用多线程

import _thread
import time

global login
def keep_run(app):
    global login
    assert(login==True)
    app.run()
    login = False


itchat.auto_login()
login = True
_thread.start_new_thread(keep_run,(itchat,))

while(login):
    if (time.strftime("%M", time.localtime())=='00'):
        itchat.send(msg, toUser)
    time.sleep(60)

看完这段代码就明白了吧!

相关文章:

  • 恢复SQL2005误删除的数据
  • 国家地区标准代码(国际域名缩写)
  • 提高你的调试代码的效率
  • python 代码计时
  • 如何处理创建DB2工具目录数据库的时候遇到的SQL1005N错误?
  • pandas 查找数据
  • SUN发布JavaFX...
  • ConceptNet
  • 如何制作倒影
  • pyecharts 标记指定经纬度
  • Photoshop制作倒影字
  • folium 可视化地理数据
  • geoJson 下载
  • 绚丽多彩Photoshop打造水中倒影
  • 概率图模型
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • exports和module.exports
  • IP路由与转发
  • oschina
  • overflow: hidden IE7无效
  • Promise面试题2实现异步串行执行
  • Terraform入门 - 3. 变更基础设施
  • Theano - 导数
  • 简析gRPC client 连接管理
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 如何用纯 CSS 创作一个货车 loader
  • #13 yum、编译安装与sed命令的使用
  • #大学#套接字
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (ZT)薛涌:谈贫说富
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (离散数学)逻辑连接词
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET/C# 使窗口永不获得焦点
  • .net6使用Sejil可视化日志
  • //解决validator验证插件多个name相同只验证第一的问题
  • @ConfigurationProperties注解对数据的自动封装
  • @staticmethod和@classmethod的作用与区别
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [BetterExplained]书写是为了更好的思考(转载)
  • [C++]:for循环for(int num : nums)
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [ffmpeg] x264 配置参数解析
  • [HTML]Web前端开发技术18(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用——喵喵画网页
  • [Jquery] 实现温度计动画效果