|
45 | 45 | use MIME::Lite; |
46 | 46 | use Net::FTP; |
47 | 47 | use URI; |
| 48 | +use JSON; |
48 | 49 |
|
49 | 50 | use DBI; |
50 | 51 |
|
@@ -1245,7 +1246,7 @@ sub GenerateHTML |
1245 | 1246 | $dbh = connect_db(); |
1246 | 1247 |
|
1247 | 1248 | prepare_sql($dbh, \%sths, |
1248 | | - qw(portdata_genresults portdata_selectmaintainer portdata_selectall_limited) |
| 1249 | + qw(portdata_genresults portdata_selectall portdata_selectmaintainer portdata_selectall_limited) |
1249 | 1250 | ); |
1250 | 1251 |
|
1251 | 1252 | if ($Portscout::SQL::sql{portdata_genresults_init}) { |
@@ -1377,6 +1378,49 @@ sub GenerateHTML |
1377 | 1378 |
|
1378 | 1379 | $template->output('restricted-ports.html'); |
1379 | 1380 |
|
| 1381 | + print "Creating JSON dump of all data...\n"; |
| 1382 | + |
| 1383 | + open my $jf, '>', $settings{html_data_dir} . '/dump.json' |
| 1384 | + or die 'Cannot open JSON output'; |
| 1385 | + |
| 1386 | + print $jf '['; |
| 1387 | + |
| 1388 | + my $firstitem = 1; |
| 1389 | + |
| 1390 | + $sths{portdata_selectall}->execute(); |
| 1391 | + while (my $row = $sths{portdata_selectall}->fetchrow_hashref) { |
| 1392 | + if ($row->{ignore}) { |
| 1393 | + $row->{method} = 'X'; |
| 1394 | + $row->{newver} = ''; |
| 1395 | + $row->{newurl} = ''; |
| 1396 | + } else { |
| 1397 | + if ($row->{method} == METHOD_LIST) { |
| 1398 | + $row->{method} = 'L'; |
| 1399 | + } elsif ($row->{method} == METHOD_GUESS) { |
| 1400 | + $row->{method} = 'G'; |
| 1401 | + } else { |
| 1402 | + $row->{method} = ''; |
| 1403 | + } |
| 1404 | + } |
| 1405 | + |
| 1406 | + if ($row->{newver} && ($row->{ver} ne $row->{newver})) { |
| 1407 | + $row->{newdistfile} = 'updated'; |
| 1408 | + } else { |
| 1409 | + next if ($settings{hide_unchanged}); |
| 1410 | + $row->{newdistfile} = ''; |
| 1411 | + } |
| 1412 | + $row->{updated} =~ s/:\d\d(?:\.\d+)?$/ $settings{local_timezone}/; |
| 1413 | + $row->{checked} =~ s/:\d\d(?:\.\d+)?$/ $settings{local_timezone}/; |
| 1414 | + |
| 1415 | + $row = { map { $_ => $row->{$_} } qw(name cat maintainer ver method newver newurl checked updated discovered) }; |
| 1416 | + |
| 1417 | + print $jf ',' unless $firstitem; |
| 1418 | + print $jf encode_json($row); |
| 1419 | + $firstitem = 0; |
| 1420 | + } |
| 1421 | + print $jf ']'; |
| 1422 | + close $jf; |
| 1423 | + |
1380 | 1424 | finish_sql($dbh, \%sths); |
1381 | 1425 | $dbh->disconnect; |
1382 | 1426 | } |
|
0 commit comments