File Coverage

blib/lib/Mojo/Weixin/Group/Member.pm
Criterion Covered Total %
statement 3 37 8.1
branch 0 18 0.0
condition 0 8 0.0
subroutine 1 8 12.5
pod 0 7 0.0
total 4 78 5.1


line stmt bran cond sub pod time code
1             package Mojo::Weixin::Group::Member;
2 1     1   7 use Mojo::Weixin::Base 'Mojo::Weixin::Model::Base';
  1         2  
  1         6  
3              
4             has name => '';
5             has [qw(
6             account
7             province
8             city
9             sex
10             id
11             uid
12             signature
13             display
14             markname
15             _group_id
16             _avatar
17             )];
18              
19             sub new {
20 0     0 0   my $self = shift;
21 0           $self = $self->Mojo::Weixin::Base::new(@_);
22 0           $self->client->emoji_convert(\$self->{markname},$self->client->emoji_to_text);
23 0           $self->client->emoji_convert(\$self->{display},$self->client->emoji_to_text);
24             #$self->client->emoji_convert(\$self->{name},$self->client->emoji_to_text);
25 0 0         $self->uid("") if not $self->uid;
26 0           $self;
27             }
28              
29             sub get_avatar{
30 0     0 0   my $self = shift;
31 0           $self->client->get_avatar($self,@_);
32             }
33             sub displayname{
34 0     0 0   my $self = shift;
35 0   0       return $self->display || $self->markname || $self->name || '昵称未知';
36             }
37             sub update{
38 0     0 0   my $self = shift;
39 0           my $hash = shift;
40 0           for(grep {substr($_,0,1) ne "_"} keys %$hash){
  0            
41 0 0         if(exists $hash->{$_}){
42 0 0         $self->client->emoji_convert(\$hash->{$_},$self->client->emoji_to_text) if $_ eq "markname";
43 0 0         $self->client->emoji_convert(\$hash->{$_},$self->client->emoji_to_text) if $_ eq "display";
44 0 0 0       if(defined $hash->{$_} and defined $self->{$_}){
    0 0        
45 0 0         if($hash->{$_} ne $self->{$_}){
46 0           my $old_property = $self->{$_};
47 0           my $new_property = $hash->{$_};
48 0           $self->{$_} = $hash->{$_};
49 0 0         $self->client->emit("group_member_property_change"=>$self,$_,$old_property,$new_property) if defined $self->client;
50             }
51             }
52             elsif( ! (!defined $hash->{$_} and !defined $self->{$_}) ){
53 0           my $old_property = $self->{$_};
54 0           my $new_property = $hash->{$_};
55 0           $self->{$_} = $hash->{$_};
56 0 0         $self->client->emit("group_member_property_change"=>$self,$_,$old_property,$new_property) if defined $self->client;
57             }
58             }
59             }
60 0           $self;
61             }
62              
63             sub group {
64 0     0 0   my $self = shift;
65 0           return scalar $self->client->search_group(id=>$self->_group_id);
66             }
67             sub make_friend{
68 0     0 0   my $self = shift;
69 0           $self->client->make_friend($self,@_);
70             }
71             sub set_markname {
72 0     0 0   my $self = shift;
73 0           $self->client->set_markname($self,@_);
74             }
75             1;