Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
LittleCoder edited this page Mar 13, 2016 · 2 revisions

#已有插件介绍

该微信机器人提供了完备的接口,可以很容易的加入新的插件。

先就两个简单的插件做一个介绍,若想要了解具体如何编写新的插件,可以快速阅读这一节。

##vote

该插件实现了基于用户识别的投票功能,即使机器人下线也不会影响用户的投票数据。

###配置

  • 配置投票选项:在plugin/config/vote.json中更改投票选项
  • 若要更改文字说明,可以在plugin/msgdealers/vote.py中修改
  • 投票记录在storage/account/用户名.db的表vote中

##autoreply

该插件实行了基于正则表达式匹配的自动回复。

###配置

  • 配置自动回复的内容与匹配规则:在plugin/config/autoreply.db中增加或删除
  • @fil@开头后面接具体路径(一般建议放在storage/upload/文件夹下)可以自动回复文件
  • @img@开头后面接具体路径(一般建议放在storage/upload/文件夹下)可以自动回复图片
  • 若以文件方式发送图片将不会以缩略图方式收到信息

#自定义插件配置

##编写插件

编写插件并不困难,具体的调用可以参照已有的两个插件。

需要注意,文件的相对路径以ItChat.py所在位置为起始。

###编写插件的流程

  1. 编写插件、编写插件测试与样例
  2. 更新itchat/robot.py、PluginTest.py、pluginlist.json中的插件与测试文件
  3. 使用python PluginTest.py测试插件是否正常工作

第一步将在下面具体介绍。

其中第二步的配置是指:

在itchat/robot.py中以(方法名,方法)的元组加入插件序列(次序代表优先匹配)

setting_itchat/robot.py

在PluginTest.py中加入编写好的测试方法:

add_test_into_PluginTest.py

若需要测试,将插件插入PluginTest.py的测试名单中:

add_plugin_into_PluginTest.py_pluginlist

在pluginlist.json中加入改插件名字:

add_plugin_name_into_pluginlist.json

至此第二步配置就完成了。

##给出的接口

插件需要提供一个方法并通过这个方法返回值。

该方法将会获得三个输入,分别为文本内容、全局存储对象、发送人的UserName

这样就可以基于用户发送过来的消息作出反馈

通过全局存储对象,可以获得所有用户的信息与来往消息,下面以获取用户信息为例:

# 全局存储对象存储为storageClass, 发送人UserName存储为userName
# 更多的方法可以在itchat/storage.py中获取
# 获取昵称、唯一标示符
nickName = storageClass.find_nickname(userName)
pyid = storageClass.find_PYQuanPin(userName)
# 获取用户个人数据
status = storageClass.get_dict_of_other(storageClass.get_other(userName))
# 存储用户个人数据
storageClass.update_user(pyid, Other = storageClass.get_str_of_other(status))

##返回类型

  • 插件需要返回一个Unicode格式的文本或是False
  • 若匹配该插件成功,那么回复用户要通过返回Unicode格式的文本完成
  • 回复内容同样可以以@fil@等标示符开头,但请一定记得配置相关测试以免运行出现意外
  • 若匹配插件失败,回复False即可

##插件放置位置

  • 插件本身需要被放置于plugin/msgdealers/文件夹中
  • 插件调用的文件内容原则上建议存储在plugin文件夹中

place_for_configs

##测试相关配置

如果涉及到活动用户信息的设置暂时没有编写完成,建议可以基于已有用户信息模拟测试。

测试中的异常情况通过sys_print('WARN', msg)输出信息,系统将会识别出测试出现了问题。

测试中的普通输出可以通过sys_print方法输出信息。

运行python PluginTest.py将会进入交互的测试,你可以测试返回内容是否如你所愿。

#结语

只是一个简单的介绍,若有错误或是任何建议,我会很高兴收到你的邮件!

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /