| line | true | false | branch | 
 
| 127 | 0 | 0 | unless $attr =~ /[^A-Z]/ | 
 
| 128 | 0 | 0 | unless $ok_field{$attr} | 
 
| 129 | 0 | 0 | if @_ | 
 
| 136 | 0 | 0 | if (@_) | 
 
| 143 | 0 | 0 | unless exists $$self{$key} | 
 
| 148 | 0 | 0 | unless exists $$self{$_} | 
 
| 157 | 0 | 0 | if $$self{'mmech'}->success and $$self{'mmech'}->status == 200 | 
 
| 160 | 0 | 0 | unless $$self{'mmech'}->success and $$self{'mmech'}->status == 200 | 
 
| 164 | 0 | 0 | unless ($$self{'update_overwrite'}) | 
 
| 178 | 0 | 0 | unless (exists $$self{'forum_user'} and exists $$self{'forum_passwd'}) | 
 
| 182 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 190 | 0 | 0 | if ($$self{'mmech'}->success and $$self{'mmech'}->status == 200) | 
 
| 191 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 198 | 0 | 0 | unless $$self{'mmech'}->success and $$self{'mmech'}->status == 200 | 
 
| 205 | 0 | 0 | if eval {
	do {
	$self->forum_login_raw(@_);
1
}
} | 
 
| 216 | 0 | 0 | unless exists $$self{'forum_user'} and exists $$self{'forum_passwd'} | 
 
| 217 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 222 | 0 | 0 | if ($$self{'mmech'}->success and $$self{'mmech'}->status == 200) | 
 
| 223 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 230 | 0 | 0 | unless $$self{'mmech'}->success and $$self{'mmech'}->status == 200 | 
 
| 239 | 0 | 0 | if eval {
	do {
	$self->forum_logout_raw(@_);
1
}
} | 
 
| 259 | 0 | 0 | unless $token->get_attr('class') eq 'catLeft' | 
 
| 278 | 0 | 0 | if $parse->peek =~ /catLeft/ | 
 
| 279 | 0 | 0 | unless $token->is_start_tag('a') and $token->get_attr('class') eq 'forumlink' | 
 
| 301 | 0 | 0 | if $token->is_text | 
 
| 315 | 0 | 0 | if $token->is_start_tag('a') | 
 
| 323 | 0 | 0 | if ($$self{'db_insert'}) | 
 
| 340 | 0 | 0 | unless eval {
	do {
	$mech->get($url);
1
}
} | 
 
| 344 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 347 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 351 | 0 | 0 | if (defined $page_number) | 
 
| 352 | 0 | 0 | if (-@$pages <= $page_number and $page_number < @$pages) { } | 
 
| 362 | 0 | 0 | unless eval {
	do {
	$mech->get($url);
1
}
} | 
 
| 366 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 369 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 379 | 0 | 0 | if $token->is_end_tag('table') | 
 
| 380 | 0 | 0 | unless $token->is_start_tag('tr') | 
 
| 382 | 0 | 0 | unless $token->get_attr('class') =~ /row/ | 
 
| 389 | 0 | 0 | if $token->is_end_tag('td') | 
 
| 390 | 0 | 0 | if $token->get_attr('src') =~ /sticky/ | 
 
| 391 | 0 | 0 | if $token->get_attr('src') =~ /announce/ | 
 
| 408 | 0 | 0 | if $token->is_end_tag('td') | 
 
| 409 | 0 | 0 | if ($token->is_start_tag('a')) | 
 
| 410 | 0 | 0 | if $token->is_start_tag('a') and $token->get_attr('href') =~ /viewprofile.*u=(\d+)/ | 
 
| 415 | 0 | 0 | if (not exists $row{'topic_poster'} and $token->is_text and $token->as_is =~ /\S/) | 
 
| 420 | 0 | 0 | if ($$_{'username'} eq $username) | 
 
| 427 | 0 | 0 | unless exists $row{'topic_poster'} | 
 
| 440 | 0 | 0 | if ($$_{'topic_id'} == $row{'topic_id'}) | 
 
| 446 | 0 | 0 | if ($unique and not defined $page_number) | 
 
| 450 | 0 | 0 | if ($sth->fetch) | 
 
| 455 | 0 | 0 | if $unique | 
 
| 463 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 477 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 480 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 484 | 0 | 0 | if (defined $page_number) | 
 
| 485 | 0 | 0 | if (-@$pages <= $page_number and $page_number < @$pages) { } | 
 
| 496 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 499 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 511 | 0 | 0 | unless $token->is_start_tag('tr') | 
 
| 526 | 0 | 0 | unless defined $token | 
 
| 532 | 0 | 0 | if $row{'username'} eq $$self{'new_admin_username'} | 
 
| 537 | 0 | 0 | if $token->is_end_tag('td') | 
 
| 538 | 0 | 0 | if ($token->is_start_tag('a') and $token->as_is =~ /mailto:([^"]+)\"/) | 
 
| 546 | 0 | 0 | if $token->is_start_tag('td') | 
 
| 547 | 0 | 0 | if $token->is_end_tag('td') | 
 
| 548 | 0 | 0 | if $td_count < 0 | 
 
| 549 | 0 | 0 | if ($token->is_text and not $token->as_is =~ /^( )+$/ and $token->as_is =~ /\S/) | 
 
| 567 | 0 | 0 | if $token->is_end_tag('tr') | 
 
| 568 | 0 | 0 | if ($token->is_start_tag('a') and $token->get_attr('target') eq '_userwww') | 
 
| 578 | 0 | 0 | if ($$self{'profile_info'}) | 
 
| 580 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 589 | 0 | 0 | if $p_mech->success and $p_mech->status == 200 | 
 
| 592 | 0 | 0 | unless $p_mech->success and $p_mech->status == 200 | 
 
| 604 | 0 | 0 | if $p_token->is_end_tag('td') | 
 
| 605 | 0 | 0 | if ($p_token->is_tag('img')) | 
 
| 608 | 0 | 0 | unless $row{'user_avatar'} =~ m[^http://] | 
 
| 626 | 0 | 0 | unless $p_token->as_is =~ /^\s+$|^( )+$/ | 
 
| 633 | 0 | 0 | if $p_token->is_text | 
 
| 647 | 0 | 0 | unless $p_token->as_is =~ /^\s+$|^( )+$/ | 
 
| 654 | 0 | 0 | if $p_token->is_start_tag('a') | 
 
| 661 | 0 | 0 | if $p_token->is_start_tag('a') | 
 
| 668 | 0 | 0 | if $p_token->is_start_tag('a') | 
 
| 676 | 0 | 0 | if ($$self{'db_insert'} and ++$rows >= $$self{'max_rows'}) | 
 
| 683 | 0 | 0 | if ($$self{'db_insert'}) | 
 
| 694 | 0 | 0 | if eval {
	do {
	$self->get_users_raw(@_);
1
}
} | 
 
| 709 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 716 | 0 | 0 | if $url1 =~ /%d/ | 
 
| 718 | 0 | 0 | if $url2 =~ /%d/ | 
 
| 721 | 0 | 0 | unless eval {
	do {
	$mech->get($url);
1
}
} | 
 
| 725 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 728 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 732 | 0 | 0 | if (defined $page_number) | 
 
| 733 | 0 | 0 | if (-@$pages <= $page_number and $page_number < @$pages) { } | 
 
| 741 | 0 | 0 | unless eval {
	do {
	$mech->get($url);
1
}
} | 
 
| 745 | 0 | 0 | if $mech->success and $mech->status == 200 | 
 
| 748 | 0 | 0 | unless $mech->success and $mech->status == 200 | 
 
| 752 | 0 | 0 | unless (defined $page_number and $page_number != -1) | 
 
| 754 | 0 | 0 | if ($$_{'topic_id'} == $topic_id) | 
 
| 760 | 0 | 0 | if ($$self{'db_insert'}) | 
 
| 791 | 0 | 0 | if $token->is_start_tag('tr') | 
 
| 792 | 0 | 0 | if $token->is_end_tag('tr') | 
 
| 793 | 0 | 0 | if $counter < 0 | 
 
| 795 | 0 | 0 | if ($token->is_start_tag('table') and $start_from == 0) | 
 
| 800 | 0 | 0 | if ($$_{'topic_id'} == $topic_id) | 
 
| 821 | 0 | 0 | if $token->is_start_tag('table') | 
 
| 822 | 0 | 0 | if $token->is_end_tag('table') | 
 
| 823 | 0 | 0 | if $counter2 < 0 | 
 
| 824 | 0 | 0 | unless $token->is_start_tag('td') | 
 
| 836 | 0 | 0 | if ($token->is_start_tag('tr')) | 
 
| 840 | 0 | 0 | if ($token->is_end_tag('tr')) | 
 
| 844 | 0 | 0 | if $counter3 < 0 | 
 
| 853 | 0 | 0 | if $token->get_attr('class') eq 'catBottom' | 
 
| 855 | 0 | 0 | unless $token->get_attr('class') eq 'name' | 
 
| 867 | 0 | 0 | if ($$_{'topic_id'} == $topic_id) | 
 
| 877 | 0 | 0 | if (@{$$self{'posts'};} and $row{'post_time'} <= $$self{'posts'}[-1]{'post_time'}) | 
 
| 883 | 0 | 0 | if ($start_from == 0) | 
 
| 885 | 0 | 0 | if ($$_{'topic_id'} == $topic_id) | 
 
| 887 | 0 | 0 | unless $$_{'topic_first_post_id'} | 
 
| 890 | 0 | 0 | unless $$_{'topic_time'} | 
 
| 915 | 0 | 0 | if $token->is_start_tag('tr') | 
 
| 916 | 0 | 0 | if $token->is_end_tag('tr') | 
 
| 917 | 0 | 0 | if $tr_count < 0 | 
 
| 930 | 0 | 0 | if $token->is_end_tag('table') | 
 
| 931 | 0 | 0 | if ($token->is_start_tag('a') and $token->get_attr('href') =~ /viewprofile.*u=(\d+)/) | 
 
| 938 | 0 | 0 | unless (exists $row{'poster_id'}) | 
 
| 945 | 0 | 0 | if ($$self{'db_insert'} and ++$rows == $$self{'max_rows'}) | 
 
| 973 | 0 | 0 | unless @{$$self{'users'};} | 
 
| 975 | 0 | 0 | if ($$_{'user_regdate'} < $max_regdate) { } | 
 
|  | 0 | 0 | elsif ($$_{'user_regdate'} == $max_regdate) { } | 
 
| 983 | 0 | 0 | if ($$_{'user_id'} == $user_id and $user_id != 1) | 
 
| 984 | 0 | 0 | if ($$_{'username'} ne $username) | 
 
| 1010 | 0 | 0 | if eval {
	do {
	$self->update_users_raw(@_);
1
}
} | 
 
| 1027 | 0 | 0 | unless @{$$self{'topics'};} | 
 
| 1033 | 0 | 0 | if ($sth->fetch) { } | 
 
| 1035 | 0 | 0 | if ($post_time >= $$self{'last_timestamp'}) { } | 
 
|  | 0 | 0 | elsif ($$_{'topic_type'} == 0) { } | 
 
| 1054 | 0 | 0 | unless ($$self{'update_overwrite'}) | 
 
| 1059 | 0 | 0 | if ($sth->fetch and $topic_title ne $$t{'topic_title'}) | 
 
| 1091 | 0 | 0 | unless @{$$self{'posts'};} | 
 
| 1095 | 0 | 0 | if $$self{'posts'}[$_]{'post_time'} < $$self{'last_timestamp'} | 
 
| 1100 | 0 | 0 | if ($$t{'topic_id'} == $topic_id) | 
 
| 1101 | 0 | 0 | if $$self{'posts'}[$_]{'post_id'} > $$t{'topic_last_post_id'} | 
 
| 1112 | 0 | 0 | if ($sth->fetch) | 
 
| 1116 | 0 | 0 | unless ($$self{'update_overwrite'}) | 
 
| 1120 | 0 | 0 | if ($sth->fetch) | 
 
| 1128 | 0 | 0 | if ($sth->fetch) | 
 
| 1133 | 0 | 0 | if ($in_table) | 
 
| 1136 | 0 | 0 | if ($in_orig) | 
 
| 1140 | 0 | 0 | unless ($in_new and not $in_orig) | 
 
| 1146 | 0 | 0 | if ($sth->fetch) | 
 
| 1148 | 0 | 0 | if $post_text eq $$self{'posts_text'}[$_]{'post_text'} | 
 
| 1151 | 0 | 0 | unless ($$self{'update_overwrite'}) | 
 
| 1175 | 0 | 0 | unless ($$self{'update_overwrite'}) | 
 
| 1182 | 0 | 0 | if ($sth->fetch) | 
 
| 1200 | 0 | 0 | if ($_ eq 'users') { } | 
 
|  | 0 | 0 | elsif ($_ eq 'groups') { } | 
 
|  | 0 | 0 | elsif ($_ eq 'user_group') { } | 
 
| 1203 | 0 | 0 | unless $sth->fetch | 
 
| 1224 | 0 | 0 | if $i | 
 
| 1231 | 0 | 0 | if $@ | 
 
| 1246 | 0 | 0 | if (@$success) { } | 
 
|  | 0 | 0 | elsif ($$self{'alternative_page_number_regex_forum'} ne qr// and $type eq 'forum') { } | 
 
|  | 0 | 0 | elsif ($$self{'alternative_page_number_regex_topic'} ne qr// and $type eq 'topic') { } | 
 
| 1254 | 0 | 0 | if (@$success) | 
 
| 1262 | 0 | 0 | if (@$success) | 
 
| 1271 | 0 | 0 | if (scalar @page_keys > 1) | 
 
| 1312 | 0 | 0 | if ($prepare_html) | 
 
| 1327 | 0 | 0 | if ($token->is_start_tag('span')) { } | 
 
|  | 0 | 0 | elsif ($token->is_end_tag('span')) { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('table')) { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('ul')) { } | 
 
|  | 0 | 0 | elsif ($token->is_end_tag('ul')) { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('ol') and $token->get_attr('type') eq '1') { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('ol') and $token->get_attr('type') eq 'a') { } | 
 
|  | 0 | 0 | elsif ($token->is_end_tag('ol')) { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('li')) { } | 
 
|  | 0 | 0 | elsif ($token->is_tag('img')) { } | 
 
|  | 0 | 0 | elsif ($token->is_start_tag('a')) { } | 
 
|  | 0 | 0 | elsif ($token->is_end_tag('a')) { } | 
 
|  | 0 | 0 | elsif ($token->is_text) { } | 
 
| 1328 | 0 | 0 | if ($token->get_attr('style') eq 'font-weight: bold') { } | 
 
|  | 0 | 0 | elsif ($token->get_attr('style') eq 'font-style: italic') { } | 
 
|  | 0 | 0 | elsif ($token->get_attr('style') eq 'text-decoration: underline') { } | 
 
|  | 0 | 0 | elsif ($token->get_attr('style') =~ /color: (.*)$/) { } | 
 
|  | 0 | 0 | elsif ($token->get_attr('style') =~ /font-size: (\d*)px/) { } | 
 
| 1354 | 0 | 0 | if ($token->is_text and $token->as_is =~ /^(.*?) ?$$self{'quote_string'}:$/s) { } | 
 
|  | 0 | 0 | elsif ($token->is_end_tag('td')) { } | 
 
| 1365 | 0 | 0 | if ($token->get_attr('class') eq 'quote') { } | 
 
|  | 0 | 0 | elsif ($token->get_attr('class') eq 'code') { } | 
 
| 1366 | 0 | 0 | if ($author eq '') { } | 
 
| 1379 | 0 | 0 | if $token->is_start_tag('td') | 
 
| 1380 | 0 | 0 | if $token->is_end_tag('td') | 
 
| 1381 | 0 | 0 | if $counter < 0 | 
 
| 1409 | 0 | 0 | if ($src =~ m[/$_\.gif]) | 
 
| 1415 | 0 | 0 | unless ($is_smile) | 
 
| 1422 | 0 | 0 | if ($token->get_attr('href') =~ /mailto:/) | 
 
| 1450 | 0 | 0 | unless /$date_format/i | 
 
| 1458 | 0 | 0 | if exists $date_vars{$_} | 
 
| 1462 | 0 | 0 | if (exists $date_vars{'am_pm'}) | 
 
| 1463 | 0 | 0 | if $date_vars{'am_pm'} =~ /pm/i and $date_vars{'hour'} != 12 | 
 
| 1465 | 0 | 0 | if $date_vars{'am_pm'} =~ /am/i and $date_vars{'hour'} == 12 | 
 
| 1469 | 0 | 0 | if exists $date_vars{'month_name'} | 
 
| 1472 | 0 | 0 | if exists $date_vars{'month'} | 
 
| 1475 | 0 | 0 | unless exists $date_vars{$_} | 
 
| 1477 | 0 | 0 | unless exists $date_vars{'hour'} | 
 
| 1547 | 0 | 0 | if ($url =~ /\?/) { } | 
 
| 1568 | 0 | 0 | if ($$self{'max_children'} < 2) { } | 
 
| 1572 | 0 | 0 | if ($children < $$self{'max_children'}) | 
 
| 1573 | 0 | 0 | if (my $pid = fork) { } | 
 
| 1576 | 0 | 0 | if ($children == $$self{'max_children'}) | 
 
| 1582 | 0 | 0 | if undef $pid | 
 
| 1601 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1605 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1609 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1632 | 0 | 0 | if eval {
	do {
	$self->scrape_forum_common_raw(@_);
1
}
} | 
 
| 1644 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1648 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1655 | 0 | 0 | if ($$self{'verbose'}) | 
 
| 1673 | 0 | 0 | if eval {
	do {
	$self->update_forum_common_raw(@_);
1
}
} |