| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package Weixin::Client; | 
| 2 |  |  |  |  |  |  | sub _synccheck{ | 
| 3 | 0 |  |  | 0 |  |  | my $self = shift; | 
| 4 | 0 | 0 |  |  |  |  | return if $self->{_sync_running} ; | 
| 5 | 0 |  |  |  |  |  | my $api = "https://webpush.weixin.qq.com/cgi-bin/mmwebwx-bin/synccheck"; | 
| 6 | 0 |  |  |  |  |  | $self->{_synccheck_running} = 1; | 
| 7 |  |  |  |  |  |  | my $callback = sub { | 
| 8 | 0 |  |  | 0 |  |  | my $response = shift; | 
| 9 | 0 |  |  |  |  |  | $self->{_synccheck_running} = 0; | 
| 10 | 0 | 0 |  |  |  |  | unless($response->is_success){ | 
| 11 | 0 |  |  |  |  |  | $self->_synccheck() ; | 
| 12 | 0 |  |  |  |  |  | return ; | 
| 13 |  |  |  |  |  |  | } | 
| 14 |  |  |  |  |  |  | #window.synccheck={retcode:"0",selector:"0"} | 
| 15 | 0 |  |  |  |  |  | my($retcode,$selector) = $response->content()=~/window\.synccheck={retcode:"([^"]+)",selector:"([^"]+)"}/g; | 
| 16 | 0 |  |  |  |  |  | $self->_parse_synccheck_data($retcode,$selector); | 
| 17 | 0 |  |  |  |  |  | }; | 
| 18 | 0 |  |  |  |  |  | my @query_string = ( | 
| 19 |  |  |  |  |  |  | skey        =>  $self->skey, | 
| 20 |  |  |  |  |  |  | callback    =>  "jQuery1830847224326338619_" . $self->now(), | 
| 21 |  |  |  |  |  |  | r           =>  $self->now(), | 
| 22 |  |  |  |  |  |  | sid         =>  $self->wxsid, | 
| 23 |  |  |  |  |  |  | uin         =>  $self->wxuin, | 
| 24 |  |  |  |  |  |  | deviceid    =>  $self->deviceid, | 
| 25 | 0 |  |  |  |  |  | synckey     =>  join("|",map {$_->{Key} . "_" . $_->{Val};} @{$self->sync_key->{List}}), | 
|  | 0 |  |  |  |  |  |  | 
| 26 |  |  |  |  |  |  | _           =>  $self->now(), | 
| 27 |  |  |  |  |  |  | ); | 
| 28 | 0 |  |  |  |  |  | my $url = gen_url2($api,@query_string); | 
| 29 |  |  |  |  |  |  | $self->timer2("_synccheck",$self->{_synccheck_interval},sub{ | 
| 30 | 0 | 0 |  | 0 |  |  | print "GET $url\n" if $self->{debug}; | 
| 31 | 0 |  |  |  |  |  | $self->asyn_http_get($url,$callback); | 
| 32 | 0 |  |  |  |  |  | }); | 
| 33 |  |  |  |  |  |  | } | 
| 34 |  |  |  |  |  |  | 1; |