littlecodersh / ItChat

A complete and graceful API for Wechat. 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。
http://itchat.readthedocs.io
MIT License
25.58k stars 5.64k forks source link

好像解决了夜间微信掉线问题 #906

Open congyong opened 4 years ago

congyong commented 4 years ago

import datetime import time from threading import Timer

def auto_relogin():

每分钟检测在线情况 ,如果状态异常则relogin, 且刷新一些信息.

 try:                                                                                
     now = datetime.datetime.now()                                                   
     cur_logsta= itchat.check_login()                                                
     if cur_logsta not in ["200","201"]   :                                          
         print("current login sta ",cur_logsta,"  ",now )                            
         itchat.auto_login(hotReload=True , enableCmdQR=2)                           
         itchat.send("relogin successed", toUserName="filehelper")                   
         chatrooms = itchat.get_chatrooms(update=True, contactOnly=True)             
         chatroom_ids = [c['UserName'] for c in chatrooms]                           
         print("watch room:", len(chatrooms))                                        
         print(" ".join([item['NickName'] for item in chatrooms]))                   
         auto_send_news()   #我的自动推送新闻的function                                                       
         # 开始监测                                                                  
         itchat.run()
        #endif 在这里                                                                
     ran_int=random.randint(0,10)                                                    
     t=Timer(60+ran_int,auto_relogin)                                                
     t.start()                                                                       
 except:                                                                       
     print("relogin falied") 

今天早上打开微信状态正常.

如果出现要确认登录的提示 android 手机可以使用, https://repo.xposed.info/module/me.firesun.wechat.enhancement 这个xposed 插件, 自动确认网页登录.
苹果插件没找到

shirubei commented 4 years ago

我的方案是,在每天凌晨4:00-6:30之间,每隔30分钟,发送一条消息给文件传输助手。这样就可以保持在线。亲测有效。

congyong commented 4 years ago

我的方案是,在每天凌晨4:00-6:30之间,每隔30分钟,发送一条消息给文件传输助手。这样就可以保持在线。亲测有效。

我贴的 auto_send_new() 是一个 自动每分钟抓取新闻 发送到 文件传输助手的函数, 没起作用, 还是如常掉线. ...

两个方法一起用,双重保险, 看起来是解决了我的问题

shirubei commented 4 years ago

订正一下,是从3:00开始,到6:30为止,每隔30分钟发一次消息。

zhouyongtao commented 4 years ago

订正一下,是从3:00开始,到6:30为止,每隔30分钟发一次消息。

我试了一下貌似没有作用,凌晨 12 点貌似就会掉线了。

shirubei commented 4 years ago

我以前确认的时候是,3-6点之间掉线。你要是12点多就掉线的话,那就把给自己发消息的时间提前看看呗。问题最终的解决大部分还是要靠自己的,很难照抄别人的答案。

Irving notifications@github.com于2020年2月28日 周五22:18写道:

我试了一下貌似没有作用,凌晨 12 点貌似就会掉线了。

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/littlecodersh/ItChat/issues/906?email_source=notifications&email_token=AI4ITZACSCMJVCD6SD532T3RFEFMDA5CNFSM4K2AXSZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENIPPBQ#issuecomment-592508806, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI4ITZCI4BVMOZKEHTMYHX3RFEFMDANCNFSM4K2AXSZQ .

gaokx commented 4 years ago

我的经验是,隔5分钟调用一次通讯录接口(可能别的接口也可以),可以保持几周不掉线。

IsStatic commented 7 months ago

import datetime 从线程导入导入时间 Timer

def auto_relogin(): # 每分钟检测在线情况 ,如果状态异常则relogin, 且刷新一些信息. try: now = datetime.datetime.now() cur_logsta= itchat.check_login() if cur_logsta not in [“200”,“201”] : print(“当前登录 sta ”,cur_logsta,“ ”,now ) itchat.auto_login(hotReload=True , enableCmdQR=2) itchat.send(“重新登录成功”, toUserName=“filehelper”) 聊天室 = itchat.get_chatrooms(update=True, contactOnly=True) chatroom_ids = [c['UserName'] for c in chatrooms]print(“watch room:”, len(chatrooms)) print(“ ”.join([item['NickName'] for item in chatrooms])) auto_send_news() #我的自动推送新闻的function # 开始监测 itchat.run() #endif 在这里 ran_int=random.randint(0,10) t=Timer(60+ran_int,auto_relogin) t.start() 除了: print(“relogin falied”)

今天早上打开微信状态正常.

如果出现要确认登录的提示 android 手机可以使用, https://repo.xposed.info/module/me.firesun.wechat.enhancement 这个xposed 插件, 自动确认网页登录. 苹果插件没找到

打不开这个链接了·