跳转到主要内容

复活Itchat,只需pip install itchat-uos,祝你好运!

项目描述

itchat


Python2 Python3

itchat是一个开源的微信API,微信是一个常用的中国社交应用。

通过Python中的itchat访问您的个人微信账号从未如此简单。

一个微信机器人可以只用不到30行代码处理所有基本消息。

它与itchatmp(微信公众平台的API)类似,一次学习,两个工具。

现在微信是个人生活的重要组成部分,希望这个仓库可以帮助您扩展个人微信账号的功能,并改善用户对微信的使用体验。

安装

pip install itchat-uos

简单用法

使用itchat,如果您想向filehelper发送消息,可以这样操作:

import itchat



itchat.auto_login()



itchat.send('Hello, filehelper', toUserName='filehelper')

要回复个人文本消息,只需写入以下内容。

import itchat



@itchat.msg_register(itchat.content.TEXT)

def text_reply(msg):

    return msg.text



itchat.auto_login()

itchat.run()

对于更高级的使用,您可以继续阅读或浏览文档

尝试

您可以先尝试基于此项目开发的机器人。

QRCodeOfRobot

以下是代码

高级使用

消息字典的特殊用法

您可能会发现,itchat的所有用户和消息都可以通过打印到屏幕上以字典的形式找到。

但实际上,它们是itchat创建的有用类。

它们有有用的键和有用的接口,例如

@itchat.msg_register(TEXT)

def _(msg):

    # equals to print(msg['FromUserName'])

    print(msg.fromUserName)

还有

author = itchat.search_friends(nickName='LittleCoder')[0]

author.send('greeting, littlecoder!')

各种类型的消息注册

以下是如何配置itchat以获取和回复每日信息的演示。

import itchat, time

from itchat.content import *



@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])

def text_reply(msg):

    msg.user.send('%s: %s' % (msg.type, msg.text))



@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])

def download_files(msg):

    msg.download(msg.fileName)

    typeSymbol = {

        PICTURE: 'img',

        VIDEO: 'vid', }.get(msg.type, 'fil')

    return '@%s@%s' % (typeSymbol, msg.fileName)



@itchat.msg_register(FRIENDS)

def add_friend(msg):

    msg.user.verify()

    msg.user.send('Nice to meet you!')



@itchat.msg_register(TEXT, isGroupChat=True)

def text_reply(msg):

    if msg.isAt:

        msg.user.send(u'@%s\u2005I received: %s' % (

            msg.actualNickName, msg.text))



itchat.auto_login(True)

itchat.run(True)

命令行二维码

您可以通过使用以下命令在命令行中访问二维码

itchat.auto_login(enableCmdQR=True)

由于某些字符的宽度在不同系统中有所不同,您可能需要调整enableCmdQR来解决问题。

# for some linux system, width of block character is one instead of two, so enableCmdQR should be 2

itchat.auto_login(enableCmdQR=2)

命令行的默认背景颜色是深色(黑色),如果不是,您可以将enableCmdQR设置为负数。

itchat.auto_login(enableCmdQR=-1)

热重载

使用以下命令,您可以在一段时间内重新加载程序而无需重新扫描二维码。

itchat.auto_login(hotReload=True)

用户搜索

通过使用search_friends,您有四种方式来搜索用户

  1. 获取您的个人信息

  2. 通过UserName获取用户信息

  3. 获取备注名、微信号或昵称与函数名键匹配的用户信息

  4. 获取备注名、微信号和昵称与函数提供的匹配的用户信息

方法3和方法4可以同时使用,以下是一个演示程序

# get your own user information

itchat.search_friends()

# get user information of specific username

itchat.search_friends(userName='@abcdefg1234567')

# get user information of function 3

itchat.search_friends(name='littlecodersh')

# get user information of function 4

itchat.search_friends(wechatAccount='littlecodersh')

# combination of way 3, 4

itchat.search_friends(name='LittleCoder机器人', wechatAccount='littlecodersh')

有关搜索和获取大量平台和聊天室的信息,请参阅文档。

下载并发送附件

itchat的消息附件下载功能位于msg的Text键中

文件的名称(默认图片名称)位于msg的FileName键中

下载函数接受一个位置值(包括文件名)并相应地存储附件。

@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])

def download_files(msg):

    msg.download(msg.fileName)

    itchat.send('@%s@%s' % (

        'img' if msg['Type'] == 'Picture' else 'fil', msg['FileName']),

        msg['FromUserName'])

    return '%s received' % msg['Type']

如果您不想要图片的本地副本,可以将函数传递为空以获取二进制字符串。

@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])

def download_files(msg):

    with open(msg.fileName, 'wb') as f:

        f.write(msg.download())

多实例

您可以使用以下命令来打开多个实例。

import itchat



newInstance = itchat.new_instance()

newInstance.auto_login(hotReload=True, statusStorageDir='newInstance.pkl')



@newInstance.msg_register(itchat.content.TEXT)

def reply(msg):

    return msg['Text']



newInstance.run()

设置登录和登出后的回调

登录和登出的回调通过loginCallbackexitCallback设置。

import time



import itchat



def lc():

    print('finish login')

def ec():

    print('exit')



itchat.auto_login(loginCallback=lc, exitCallback=ec)

time.sleep(3)

itchat.logout()

如果未设置loginCallback,则二维码图片将被删除,命令将被清除。

如果您通过手机退出,则也会调用exitCallback。

常见问题解答(FAQ)

问:为什么我无法发送名称编码为utf8的文件?

答:这是因为请求的上传设置,您可以将此文件(对于py3您需要此文件)放入requests包的packages/urllib3中。

问:如何使用此包将我的微信用作监控工具?

答:有两种方法:与您的个人账户或与filehelper进行通信。

问:为什么有时我无法发送消息?

答:某些账户无法向自己发送消息,因此请使用filehelper

评论

如果您有任何问题或建议,可以在此问题中与我交谈。

或在gitter上。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

itchat-uos-1.4.1.tar.gz (440.6 kB 查看哈希值)

上传时间

构建分布

itchat_uos-1.4.1-py3-none-any.whl (38.0 kB 查看哈希值)

上传时间 Python 3