基于twisted的小型机器人

shirka的Python项目详细描述


这是一个基于twisted的机器人,主要是一个python学习项目

消费者

  • flow dock:从flow dock stream api读取消息

响应者

  • 数学
  • 瓦特
  • xkcd
  • ascii
  • 9gag

安装

安装依赖项:

pip install twisted
pip install twistedhttpstream
pip install requests
pip install sympy
pip install mocker
pip install pyopenssl
pip install python-flowdock
pip install markdown
pip install paramiko
pip install pyyaml
pip install ioc

运行测试

pythontests.py# run all testspython-munittestresponders.xkcd# run one test

用法

  • start.py
# vim: set fileencoding=utf-8 :importtwistedhttpstream,yaml,sys,loggingfromtwisted.internetimportreactorimportioclogging.basicConfig(level=logging.DEBUG)container=ioc.build(['config.yml',])if__name__=="__main__":forflowincontainer.parameters['consumers']:twistedhttpstream.stream(reactor,"https://stream.flowdock.com/flows/%s/%s"%(container.parameters["flowdock.%s.organisation"%flow],flow),container.get("consumer.%s.flowdock"%flow),username=container.parameters["flowdock.%s.user.token"%flow],password="")reactor.run()
  • 配置文件
parameters:consumers:[test]bot.name:nonobot.email:no-reply@shirka.comremote.users:[XXX]remote.servers:# paramiko option - http://www.lag.net/paramiko/docs/paramiko.SSHClient-class.htmlnono:{host:XXXX, username:XXXX, look_for_keys:false, password:XXXX}# configure flow parameterstestflowdock.test.organisation:shirkaflowdock.test.flow.name:FLOW_NAMEflowdock.test.flow.token:FLOW_TOKENflowdock.test.user.name:randeflowdock.test.user.token:USER_TOKENservices:# Configure the botbot:class:shirka.consumers.Botarguments:['%bot.name%','%bot.email%']# Configure shared respondersresponders.math:{ class:shirka.responders.MathResponder}responders.xkcd:{ class:shirka.responders.XkcdResponder}responders.big_bro:{ class:shirka.responders.BigbroResponder}responders.reminder:{ class:shirka.responders.ReminderResponder}responders.status:{ class:shirka.responders.StatusResponder}responders.rage_face:{ class:shirka.responders.RagefaceResponder}responders.wat:{ class:shirka.responders.WatResponder}responders.9gag:{ class:shirka.responders.NineGagResponder}responders.remote:class:shirka.responders.RemoteResponderarguments:-'%remote.servers%'-'%remote.users%'# Configure flowdock push APIflowdock.test:class:flowdock.FlowDockkwargs:api_key:'%flowdock.test.flow.token%'app_name:'%bot.name%'project:Project testconsumer.test.flowdock.logger:class:logging.getLoggerarguments:-'flowdock.%flowdock.test.flow.name%'# Configure Stream API Consumer with valid respondersconsumer.test.flowdock:class:shirka.consumers.FlowDockConsumerarguments:-'@bot'-"%flowdock.test.flow.token%"--'@responders.rage_face'-'@responders.test.whois'-'@responders.math'-'@responders.big_bro'-'@responders.reminder'-'@responders.remote'-'@responders.status'-'@responders.test.help'-'@responders.test.whois'-'@flowdock.test'kwargs:logger:'@consumer.test.flowdock.logger'responders.test.whois:class:shirka.responders.FlowdockWhoisResponderarguments:-'%flowdock.test.organisation%'-'%flowdock.test.flow.name%'-'%flowdock.test.user.token%'responders.test.help:class:shirka.responders.HelpResponder

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java MongoOperations Upert/FindModify删除mongo中的所有字段   java括号中的二叉树,而!=空值无效   java com.*.*.**。安全CustomUserDetail无法强制转换为com。***。安全CustomUserDetail   java如何编写多线程算法来发现可用socket   java Spring Boot Solr:子文档的索引列表   java如何向maven shade插件添加外部jar文件   java zebra条形码扫描仪Android studio集成   java为什么一个地方的原始类型会导致其他地方的通用调用站点被视为原始类型?   java将swing控件拆分为相等的部分   java如何在jshell中为spring项目设置类路径   java关于如何从API级别19的时间选择器中删除此白边的提示?   存储二进制字符串所有可能序列的算法,Java   测试JUnitJava。lang.NullPointerException   java Google AppEngine数据库   JavaSpring如何向数据对象注入@Value?   在eclipse java项目中包含mavenant构建库   带有JSP/EL的java省略号(缩写文本)