line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
1
|
|
|
1
|
|
8
|
use Encode (); |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
28
|
|
2
|
1
|
|
|
1
|
|
6
|
use Encode::Locale; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
324
|
|
3
|
|
|
|
|
|
|
sub Mojo::Webqq::Client::_get_qrlogin_pic { |
4
|
0
|
|
|
0
|
|
|
my $self = shift; |
5
|
0
|
0
|
|
|
|
|
return 1 if $self->login_type ne "qrlogin"; |
6
|
0
|
|
|
|
|
|
$self->info("正在获取登录二维码..."); |
7
|
0
|
|
|
|
|
|
my $api = 'https://ssl.ptlogin2.qq.com/ptqrshow'; |
8
|
0
|
|
|
|
|
|
my @query_string = ( |
9
|
|
|
|
|
|
|
appid => 501004106, |
10
|
|
|
|
|
|
|
e => 2, |
11
|
|
|
|
|
|
|
l => 'M', |
12
|
|
|
|
|
|
|
s => 3, |
13
|
|
|
|
|
|
|
d => 72, |
14
|
|
|
|
|
|
|
v => 4, |
15
|
|
|
|
|
|
|
t => rand(), |
16
|
|
|
|
|
|
|
daid => 164, |
17
|
|
|
|
|
|
|
pt_3rd_aid => 0, |
18
|
|
|
|
|
|
|
); |
19
|
0
|
|
|
|
|
|
my $url = $self->gen_url($api,@query_string); |
20
|
0
|
|
|
|
|
|
my $data = $self->http_get($url,{Referer=>'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?daid=164&target=self&style=40&pt_disable_pwd=1&mibao_css=m_webqq&appid=501004106&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2F' . $self->domain . '%2Fproxy.html&f_url=loginerroralert&strong_login=1&login_state=10&t=20131024001',ua_debug_res_body=>0}); |
21
|
0
|
0
|
|
|
|
|
if( not defined $data){ |
22
|
0
|
|
|
|
|
|
$self->error("登录二维码下载失败"); |
23
|
0
|
|
|
|
|
|
return 0; |
24
|
|
|
|
|
|
|
} |
25
|
0
|
|
|
|
|
|
$self->clean_qrcode(); |
26
|
0
|
|
|
|
|
|
eval{ |
27
|
0
|
0
|
|
|
|
|
die "未设置二维码保存路径\n" if not defined $self->qrcode_path; |
28
|
0
|
0
|
|
|
|
|
open(my $fh,">",$self->qrcode_path) or die "$!\n"; |
29
|
0
|
|
|
|
|
|
binmode $fh; |
30
|
0
|
|
|
|
|
|
print $fh $data; |
31
|
0
|
|
|
|
|
|
close $fh; |
32
|
|
|
|
|
|
|
}; |
33
|
|
|
|
|
|
|
|
34
|
0
|
0
|
|
|
|
|
if($@){ |
35
|
0
|
|
|
|
|
|
$self->error("二维码写入文件失败: $@"); |
36
|
0
|
|
|
|
|
|
return 0; |
37
|
|
|
|
|
|
|
} |
38
|
|
|
|
|
|
|
|
39
|
0
|
|
|
|
|
|
my $filename_for_log = Encode::encode("utf8",Encode::decode(locale_fs,$self->qrcode_path)); |
40
|
|
|
|
|
|
|
#$self->info("二维码已下载到本地[ $filename_for_log ]\n二维码原始下载地址[ $url ]"); |
41
|
0
|
|
|
|
|
|
$self->info("二维码已下载到本地[ $filename_for_log ]"); |
42
|
0
|
|
|
|
|
|
$self->emit(input_qrcode=>$self->qrcode_path,$data); |
43
|
0
|
|
|
|
|
|
return 1; |
44
|
|
|
|
|
|
|
} |
45
|
|
|
|
|
|
|
1; |