clubot更新: 使用SQLAlchemy重写数据库部分和改用Tornado MainLoop

Fri 26 April 2013

clubot在我的vps上跑了有一段时间了, 最近接触了SQLAlchemy 然后反观clubot的数据库代码部分, 感觉代码又遭有乱实在看不过眼, 所以就使用SQLAlchemy重写了数据库模块, 并将epoll的MainLoop改成仙子君所写的TornadoMainLoop

更新内容

  1. 数据库使用SQLAlchemy重写
  2. MainLoop改用TornadoMainLoop
  3. 改变代码结构, 清理部分代码
  4. history命令改为old, 并支持时间查询
  5. 废弃一些不常用的命令
  6. 改变数据库表结构
  7. 废弃channel功能, cd命令仅支持切换聊天和安静模式
  8. 删除一些不用的配置

如何升级

数据库表结构做了更改, 所以为了兼容之前的数据库本次表名前加上clubot_前缀, 并配以update.py脚本用以支持将旧的数据导入.

新的依赖

本次更新添加了依赖, 现在依赖包括:

  • pyxmpp2
  • dnspython
  • tornado
  • sqlalchemy
  • MySQL-python

乱码

如果数据导入后乱码, 可以参考这篇文章

项目地址

最后放上项目地址

Category: Python Tagged: clubot pyxmpp2 gtalk xmpp 更新 重写 SQLAlchemy tornado

comments


使用WebQQ协议桥接XMPP和QQ群

Thu 14 March 2013

介绍

无意中看见有人利用WebQQ协议开发出Linux下Pidgin的插件, 让Pidgin来收发QQ消息, 突然想将clubot和QQ群来桥接起来一定非常有趣,这样就可以通过gtalk收发QQ来的消息, 不过前期还是想将clubot和QQ群桥接起来.

实施

想到了就开始弄呗, 于是上网找了写有关WebQQ的协议, 首先写出了一个根据urllib2的版本并使用线程同时跑WebQQ和xmpp, 源码可以查看: thread_version

优化

上面的线程版效率不是很高, 由于都是网络请求, 所以想加入可以加入到pyxmpp2的mainloop中, 使用复用I/O模型来提高效率, 首先需要解决的是将http请求通过urllib2改为socket, 于是写出HTTPSock类来实现这个需求:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
#   Author  :   Wood.D
#   E-mail  :   wh_linux@126.com
#   Date    :   13/03/04 09:58:26
#   Desc    :   Http Socket 实现 …

Category: Python Tagged: WebQQ xmpp python XMPP pyxmpp2

comments

Read More

使用WebQQ协议桥接XMPP和QQ群

Thu 14 March 2013

介绍

无意中看见有人利用WebQQ协议开发出Linux下Pidgin的插件, 让Pidgin来收发QQ消息, 突然想将clubot和QQ群来桥接起来一定非常有趣,这样就可以通过gtalk收发QQ来的消息, 不过前期还是想将clubot和QQ群桥接起来.

实施

想到了就开始弄呗, 于是上网找了写有关WebQQ的协议, 首先写出了一个根据urllib2的版本并使用线程同时跑WebQQ和xmpp, 源码可以查看: thread_version

优化

上面的线程版效率不是很高, 由于都是网络请求, 所以想加入可以加入到pyxmpp2的mainloop中, 使用复用I/O模型来提高效率, 首先需要解决的是将http请求通过urllib2改为socket, 于是写出HTTPSock类来实现这个需求:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
#   Author  :   Wood.D
#   E-mail  :   wh_linux@126.com
#   Date    :   13/03/04 09:58:26
#   Desc    :   Http Socket 实现 …

Category: Python Tagged: WebQQ xmpp python XMPP pyxmpp2

comments

Read More

python 使用pyxmpp2编写gtalk群

Mon 29 October 2012

gtalk是一款google开发的基于xmpp协议的聊天软件,其优点就是协议开源,我们可以通过任何支持xmpp的客户端协议来链接gtalk,但是gtalk不支持群聊天,所以各路高手都会自己来开发一个机器人来支持群功能.

其实主要原理就是机器人接收到消息后再将消息广播出去,从而达到群的效果.

python有两个模块可以用来支持xmpp,分别是pyxmpp和pyxmpp2,之前也用pyxmpp写了一个,功能和兼容性不是很好,经常出现问题,所以又使用pyxmpp2重写了一遍,今天修复了一些bug,所以公布出来,大家可以下载测试,也可以加入我们使用gtalk进行群交流,

我们的gtalk机器人是:clubot@vim-cn.com

喜欢gtalk,同时喜欢Linux/Python/Vim等爱好者的同学可以加进来交流

如果对我们的代码比较感兴趣,可以访问github,我们将代码放在了github上:https://github.com/coldnight/clubot

下面介绍一下安装:

环境为:python 2.7, 因为有少量的shell所以系统需要Linux,也可稍作更改支持windows

下载源码:

git clone git://github.com/coldnight/clubot.git

安装依赖 …

Category: Python Tagged: xmpp pyxmpp2 python gtalk bot

comments

Read More
Page 1 of 1

Fork me on GitHub