| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
sub Mojo::Weixin::_synccheck{ |
|
2
|
0
|
|
|
0
|
|
|
my $self = shift; |
|
3
|
0
|
0
|
0
|
|
|
|
if($self->_sync_running or $self->_synccheck_running){ |
|
4
|
|
|
|
|
|
|
#$self->_synccheck_running(0); |
|
5
|
0
|
|
|
|
|
|
$self->emit("synccheck_over",undef,undef,1); |
|
6
|
0
|
|
|
|
|
|
$self->debug("消息处理程序进行中,避免重复运行(1)"); |
|
7
|
0
|
|
|
|
|
|
return; |
|
8
|
|
|
|
|
|
|
} |
|
9
|
0
|
|
|
|
|
|
$self->debug("检查消息(" . $self->_synccheck_interval . ")..."); |
|
10
|
0
|
|
|
|
|
|
$self->_synccheck_running(1); |
|
11
|
0
|
|
|
|
|
|
my $api = "https://webpush.". $self->domain . "/cgi-bin/mmwebwx-bin/synccheck"; |
|
12
|
|
|
|
|
|
|
my $callback = sub { |
|
13
|
0
|
|
|
0
|
|
|
my $data = shift; |
|
14
|
|
|
|
|
|
|
#window.synccheck={retcode:"0",selector:"0"} |
|
15
|
0
|
|
|
|
|
|
$self->_synccheck_running(0); |
|
16
|
0
|
0
|
|
|
|
|
if(defined $data){ |
|
17
|
0
|
|
|
|
|
|
my($retcode,$selector) = $data=~/window\.synccheck=\{retcode:"([^"]+)",selector:"([^"]+)"\}/g; |
|
18
|
0
|
|
|
|
|
|
$self->emit("synccheck_over",$retcode,$selector,1); |
|
19
|
|
|
|
|
|
|
} |
|
20
|
|
|
|
|
|
|
else{ |
|
21
|
0
|
|
|
|
|
|
$self->emit("synccheck_over",undef,undef,0); |
|
22
|
|
|
|
|
|
|
} |
|
23
|
0
|
|
|
|
|
|
}; |
|
24
|
|
|
|
|
|
|
my @query_string = ( |
|
25
|
|
|
|
|
|
|
r => $self->now(), |
|
26
|
|
|
|
|
|
|
skey => $self->skey, |
|
27
|
|
|
|
|
|
|
sid => $self->wxsid, |
|
28
|
|
|
|
|
|
|
uin => $self->wxuin, |
|
29
|
|
|
|
|
|
|
deviceid => $self->deviceid, |
|
30
|
0
|
|
|
|
|
|
synckey => join("|",map {$_->{Key} . "_" . $_->{Val};} @{$self->synccheck_key->{List}}), |
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
_ => $self->now(), |
|
32
|
|
|
|
|
|
|
); |
|
33
|
0
|
|
|
|
|
|
my $id = $self->http_get($self->gen_url2($api,@query_string),{Referer=>"https://" .$self->domain . "/"},$callback); |
|
34
|
0
|
|
|
|
|
|
$self->_synccheck_connection_id($id); |
|
35
|
|
|
|
|
|
|
} |
|
36
|
|
|
|
|
|
|
1; |