2 回答
TA贡献1909条经验 获得超7个赞
据我所知,此代码是无可救药的,因为作者使用了“ imaplib2”项目库,该库强制使用了此代码永远不会使用的线程模型。
只会创建一个线程,而不必是一个线程,只需选择即可imaplib2
。但是,如imaplib2文档所述:
该模块提供了与标准python库模块imaplib提供的API几乎相同的API,主要区别在于该版本允许在IMAP4服务器上并行执行命令,并实现了IMAP4rev1 IDLE扩展。(imaplib2可以替换现有客户端中的imaplib,而无需更改代码,但请注意下面的警告。)
这样看来,您应该可以扔掉很多东西,class Idler
只需要使用连接即可M
。我建议您先阅读Doug Hellman出色的Python每周模块for imaplib模块,然后再阅读正式文档。您需要对代码进行反向工程以找出其意图,但对我来说,它看起来像:
打开与GMail的连接
检查收件箱中看不见的邮件
计算来自(2)的看不见的消息
在gateway.push.apple.com上向某些服务发送虚拟消息
等待通知,转到(2)
关于该代码,也许最有趣的事情是它似乎没有做任何事情,尽管sendPushNotification
(第4步)所做的只是一个谜,并且使用imaplib2特定服务的一行代码:
self.M.idle(callback=callback)
使用模块文档中没有的命名参数。您知道这段代码是否曾经运行过吗?
除了不必要的复杂性之外,还有一个下降的原因imaplib2
:它独立存在于sourceforge和PyPi上,两年前一位维护者声称它“将努力使其与原始版本保持最新”。你有哪一个?您要安装哪个?
添加回答
举报