hexsum / pfqq

【该项目已停止维护,请关注重构项目: Mojo-Webqq】使用Perl语言编写的webqq客户端框架(非GUI),支持旧版webqq的多重md5带盐登录密码算法以及新版smartqq的md5+rsa+tea+base64组合登录密码算法
38 stars 23 forks source link

如何在weechat中编写支持webqq的perl插件 #2

Closed wxg4net closed 9 years ago

wxg4net commented 9 years ago

今天测试了下,此框架甚好。但是鉴于对perl一无所知。编写个perl 插件太难了。求作者支持

hexsum commented 9 years ago

感谢支持 这个框架是为perl开发者设计的,如果对perl一无所知的话这个有点难进行下去 你可以把你想写的插件表达出来 如果比较有通用性我可以考虑开放一个集成进来

发自我的 iPhone

在 2014年12月21日,19:44,wxg notifications@github.com 写道:

今天测试了下,此框架甚好。但是鉴于对perl一无所知。编写个perl 插件太难了。求作者支持

— Reply to this email directly or view it on GitHub.

hexsum commented 9 years ago

有一点不太明白 完全对perl一无所知么?如果是这样 是怎么测试跑起来的呀 要安装这个模块也是比较麻烦的

发自我的 iPhone

在 2014年12月21日,19:44,wxg notifications@github.com 写道:

今天测试了下,此框架甚好。但是鉴于对perl一无所知。编写个perl 插件太难了。求作者支持

— Reply to this email directly or view it on GitHub.

wxg4net commented 9 years ago

对于这个perl么 只能说是了解一些基本的用法。weechat( https://weechat.org/ )是一款irc客户端, 也支持通过插件支持其它协议,比如xmpp( https://github.com/weechat/scripts/blob/master/python/jabber.py ) 或者 twitter 流 ( https://github.com/DarkDefender/weetweet/blob/master/weetweet.py )等。我的想法是 让weebchat支持webqq基本的留言查看与对话回复。用python或者lua编写插件对我较为容易,对于perl,我只能简单修改。所以冒昧请求你关注下这个weechat, 首先看目前的程序框架对消息的处理是否符合weechat需要.. 如合适的话... 能否写个插件Demo来.. 感谢

hexsum commented 9 years ago

weechat我接触过一点点,但不明白的是为什么一定要集成到weechat里?有什么好处么

发自我的 iPhone

在 2014年12月21日,21:57,wxg notifications@github.com 写道:

对于这个perl么 只能说是了解一些基本的用法。weechat(https://weechat.org/)是一款irc客户端, 也支持通过插件支持其它协议,比如xmpp(https://github.com/weechat/scripts/blob/master/python/jabber.py) 或者 twitter 流 (https://github.com/DarkDefender/weetweet/blob/master/weetweet.py)等。我的想法是 让weebchat支持webqq基本的留言查看与对话回复。用python或者lua编写插件对我较为容易,对于perl,我只能简单修改。所以冒昧请求你关注下这个weechat, 首先看目前的程序框架对消息的处理是否符合weechat需要.. 如合适的话... 能否写个插件Demo来.. 感谢

— Reply to this email directly or view it on GitHub.

wxg4net commented 9 years ago

借助weechat框架输入显示机制能手动回复与日志保存哦。其实不依赖weechat单独实现这个并不难。但是不想单独用一个终端显示QQ。

hexsum commented 9 years ago

weechat的perl script api我大概看了下还比较简单,我最近研究下看看能否把webqq写个weechat的script

发自我的 iPhone

在 2014年12月22日,7:34,wxg notifications@github.com 写道:

借助weechat框架输入显示机制能手动回复与日志保存哦。其实不依赖weechat单独实现这个并不难。但是不想单独用一个终端显示QQ。

— Reply to this email directly or view it on GitHub.

wxg4net commented 9 years ago

谢谢,期待你的成果。

wxg4net commented 9 years ago

你好,我尝试编写一个尝鲜版本(主要文件在这里 https://gist.github.com/wxg4net/b143fc4e4228c6a7a8e9 )。但是在子线程中回复消息时,提示消息 "Webqq::Message::Queue->put()失败,请检查是否已经设置了队列get()回调\n" 。现在不清楚如何在一个单独线程中回复指定对象的消息了... 请闲暇时给予指点。谢谢。

autolife commented 9 years ago

链接打不开?

wxg4net commented 9 years ago

@autolife 应该可以打开的 我创建的public gist 效果如图 http://t.cn/RzkGFY7

hexsum commented 9 years ago

@wxg4net 你这个插件里错误比较多,要讲清楚原因估计要长篇大论,Webqq::Client本身利用的是AnyEvent的单线程异步框架,本身就是一个单独的线程在跑,从你的perl代码上看你对perl有一定基础,要理解AnyEvent并不难,建议你先去看下这个框架,要想webqq放到后台运行,你可以使用Daemon::Generic等模块,system(xxx &)这种方式是不对的

另外,如果需要webqq和weechat进行本地socket交互,可以在webqq里使用AnyEvent::Socket进行异步socket处理,如果你直接使用IO::Socket::UNIX会导致进程阻塞在accpet,perl的threads模块就不需要使用了

从你代码的大概思想是可以看得出 你的整体思路没问题,缺少的只是对Webqq::Client整个运行机制的了解 我最近在学习weechat的使用以及它的api文档,对weechat的buffer等还没有很好的理解,所以暂时还未开工,另外这个weechat虽然比较强大,但也比较geek,我还没真正感觉喜欢上它

wxg4net commented 9 years ago

@jdy521 自己是没办法改写此框架了。目前我想最简单的办法是。作者创建一个新分支使用Sockt发送和接受消息(包括 验证码 和回复信息) 。而对于weechat接受到的消息可以由我处理(包含 好友与群列表 及消息发送)。自己对perl的理解,实现 AnyEvent::Socket 通信 相当困难。所以作者不使用weechat的话..可以放弃weechat这部分工作。我的意见仅供参考... :)

wxg4net commented 9 years ago

经指点,因 Daemon::Generic 模块依赖问题,搞不明白使用用法,暂时使用system或者fork搞定。回复消息的问题已经解决。通过 AnyEvent::Socket 可以实现webqq多帐号呢。 但是基本功不扎实,还是不要碰多帐号吧。准备 fork 这个项目....

weechat-webqq地址: https://github.com/wxg4net/weechat-webqq

hexsum commented 9 years ago

@wxg4net 不错~,那我就暂时不需要再考虑这个功能了,接下来完全由你这边继续完善就可以了

wxg4net commented 9 years ago

多谢你的提醒才得已解决我的问题。不过后面仍希望能向你请教问题,并得到你的指点。对perl的怪异语法,一经了解, 还有点不愿停下来呢..

autolife commented 9 years ago

PERL学习交流 144539789 来这里玩吧