File Coverage

blib/lib/Mojo/Webqq/Model/Remote/_get_group_list_info_ext.pm
Criterion Covered Total %
statement 3 27 11.1
branch 0 10 0.0
condition n/a
subroutine 1 4 25.0
pod n/a
total 4 41 9.7


line stmt bran cond sub pod time code
1 1     1   7 use strict;
  1         2  
  1         280  
2             sub Mojo::Webqq::Model::_get_group_list_info_ext {
3 0     0     my $self = shift;
4 0           my $callback = shift;
5 0           my $api = 'http://qun.qq.com/cgi-bin/qun_mgr/get_group_list';
6 0 0         my $is_blocking = ref $callback eq "CODE"?0:1;
7             my $handle = sub {
8 0     0     my $json = shift;
9 0 0         return if not defined $json;
10 0 0         return if $json->{ec}!=0;
11             #{"ec":0,"join":[{"gc":1299322,"gn":"perl技术","owner":4866832},{"gc":144539789,"gn":"PERL学习交流","owner":419902730},{"gc":213925424,"gn":"PERL","owner":913166583}],"manage":[{"gc":390179723,"gn":"IT狂人","owner":308165330}]}
12 0           my @result;
13 0           for my $t (qw(join manage create)){
14 0           for(@{$json->{$t}}){
  0            
15 0           my $group = {};
16 0           $group->{name} = $self->xmlescape_parse($_->{gn});
17 0           $group->{uid} = $_->{gc};
18 0           $group->{owner_uid} = $_->{owner};
19 0 0         $group->{role} = $t eq "join"?"attend":$t;
20 0           push @result,$group;
21             }
22             }
23 0           return \@result;
24 0           };
25 0 0         if($is_blocking){
26 0           return $handle->($self->http_post($api,{Referer=>"http://qun.qq.com/member.html",json=>1},form=>{bkn=>$self->get_csrf_token},));
27             }
28             else{
29             $self->http_post($api,{Referer=>"http://qun.qq.com/member.html",json=>1},form=>{bkn=>$self->get_csrf_token},sub{
30 0     0     my $json = shift;
31 0           $callback->( $handle->($json) );
32 0           });
33             }
34             };
35             1;