Mojo::Webqq使用簡介

uoou發表於2015-12-08

之前有介紹過《使用Mojo-Webqq實現nagiosQQ群告警》,但這只是Mojo::Webqq的其中一個openqq的功能,Mojo::Webqq還有很多功能有待介紹,下面先來說說幾個我正在用的,也是比較常用的功能,以及這些功能的實現方式。

Mojo::Webqq的安裝和登入以及openqq的使用方法就不說了,《使用Mojo-Webqq實現nagiosQQ群告警》上都有說明。

1.使用郵件傳送二維碼

#傳送二維碼到郵箱
$client->load("PostQRcode",data=>{
smtp    =>  'smtp.1111.com', #郵箱的smtp地址
port    =>  '25', #smtp伺服器埠,預設25
from    =>  '1111@1111.com', #發件人
to      =>  '1111@1111.com', #收件人
user    =>  '1111@1111.com', #smtp登入帳號
pass    =>  '11111111', #smtp登入密碼
});

需要注意的是,此方法需要放在login操作前。
2.使用郵件傳送驗證碼

#傳送驗證碼到郵箱
$client->load("PostImgVerifycode",data=>{
smtp    =>  'smtp.1111.com', #郵箱的smtp地址
port    =>  '25', #smtp伺服器埠,預設25
from    =>  '1111@1111.com', #發件人
to      =>  '1111@1111.com', #收件人
user    =>  '1111@1111.com', #smtp登入帳號
pass    =>  '11111111', #smtp登入密碼
post_host => '111.111.111.111' , #本機公網IP地址,需要遠端訪問
post_port => '1987'            , #提交驗證碼的連結地址中使用的埠,預設1987
});

此方法也是需要放在login操作前。
3.進/退群提醒

#進退群提醒
my $new_group_member_cout = 0;
Mojo::IOLoop->recurring(900,sub{
$new_group_member_cout=0;
});

$client->on(
  new_group_member=>sub{
    if($new_group_member_cout>10){
        $client->fatal("new_group_member事件觸發次數超過限制");
        return;
    }
    my $memer = $_[1];
    my $displayname = $memer->displayname;
    my $content = $displayname ne "暱稱未知"?"歡迎新成員 \@$displayname 加入組織[鼓掌][鼓掌]":"歡迎新成員入群[鼓掌][鼓掌]";
    my $group = $client->search_group(gid=>$memer->gid);
    $group->send($content) if defined $group;
    $new_group_member_cout++;
},
lose_group_member=>sub{
    my $memer = $_[1];
    my $displayname = $memer->displayname ;
    return if $displayname eq "暱稱未知";
    my $content = "很遺憾 \@$displayname 離開了本群[流淚][流淚]";
    my $group = $client->search_group(gid=>$memer->gid);
    $group->send($content) if defined $group;
},
);

主要用於表示對群內新使用者加入時的歡迎,以及對使用者退群表示遺憾。

4.智慧回覆

#smartQQ
$client->load("SmartReply");

呼叫的是圖靈機器人的介面,使用方式是私聊機器人,或在群裡@機器人進行聊天,具體功能請參考圖靈機器人的使用方法:tuling123。
5.鄙視大神

#對大神進行鄙視
$client->load("FuckDaShen");

自動識別群內“大神”關鍵字,並利用預設的庫進行調侃。

6.自定義回覆

#建立知識庫
$client->load("KnowledgeBase");

建立知識庫對指定關鍵字進行回覆,目前僅限於完全匹配。使用方法:

#示例:
#learn 今天天氣怎麼樣 天氣很好 #新增知識庫
#學習 "你吃了嗎" 當然吃了 #新增知識庫
#learn '哈哈 你真笨' "就你聰明" #新增知識庫
#del 今天天氣怎麼樣 #刪除知識庫
#刪除 '哈哈 你真笨' #刪除知識庫

7.查詢perl文件

#顯示perl文件
$client->load("Perlcode");
#示例:perldoc -f|-v xxx

使用Pod::Perldoc外掛實現perl文件的查詢。

8.執行perl命令

#執行perl命令
#$client->load("Perldoc");
#示例:>>> print "hello world";

執行本機perl命令,需要“>>>”進行標識。

9.程式碼測試

#程式碼測試
$client->load("ProgramCode");
#示例:code|c>>>
#        #include 
#        int main() {
#            printf("Hello World!\n");
#            return 0;
#        }

使用glot.io網站介面進行程式碼測試,需要“code|c>>>”進行標識,支援27種語言的測試,具體功能見:glot.io。

好了,就先介紹這麼多,這些都是通過外部環境,來實現QQ上所沒有的功能,比較實用也比較有趣。但Mojo::Webqq的功能絕不僅限於此,很多群許可權控制及操作由於平時接觸不多,而且我也沒在用,所以就不詳細解釋了。