first commit
This commit is contained in:
101
download_datatables.pl
Normal file
101
download_datatables.pl
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/perl -w
|
||||
use warnings;
|
||||
use File::Slurp qw(:std);
|
||||
use File::stat;
|
||||
use File::Path qw(make_path);
|
||||
# use IO::Socket::SSL;
|
||||
use LWP::UserAgent;
|
||||
use Data::Printer;
|
||||
use Crypt::SSLeay;
|
||||
use Net::SSL;
|
||||
#use Win32::File::VersionInfo;
|
||||
use POSIX qw(strftime);
|
||||
|
||||
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
|
||||
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
|
||||
$| = 1;
|
||||
|
||||
my $bib = {
|
||||
'autofill' => 'AutoFill',
|
||||
'buttons' => 'Buttons',
|
||||
'select' => 'Select',
|
||||
'staterestore' => 'StateRestore',
|
||||
'scroller' => 'Scroller',
|
||||
'searchbuilder' => 'SearchBuilder',
|
||||
'searchpanes' => 'SearchPanes',
|
||||
'rowreorder' => 'RowReorder',
|
||||
'responsive' => 'Responsive',
|
||||
'rowgroup' => 'RowGroup',
|
||||
'colreorder' => 'ColReorder',
|
||||
'fixedcolumns' => 'FixedColumns',
|
||||
'keytable' => 'KeyTable',
|
||||
'fixedheader' => 'FixedHeader',
|
||||
'datetime' => 'Datetime',
|
||||
};
|
||||
|
||||
my @dateien;
|
||||
|
||||
my $downloadfolder = 'D:\\wsldata\\htlib\\jquery-datatables';
|
||||
|
||||
my $ua = LWP::UserAgent->new(timeout => 10);
|
||||
$ua->agent('Mozilla/5.0');
|
||||
$ua->show_progress( 1 );
|
||||
|
||||
my $response = $ua->get( 'https://cdn.datatables.net/');
|
||||
my @releases = $response->as_string =~ /href="(.*)">Release notes/g;
|
||||
|
||||
for my $rel ( @releases ) {
|
||||
my $folder = $rel =~ s/\/\/cdn.datatables.net\///r;
|
||||
my @urlsplit = split('/', $folder);
|
||||
|
||||
$folder = $folder =~ s/\//\\\\/gr;
|
||||
|
||||
if ( $urlsplit[0] !~ /^\d*\.\d*\.\d*$/ ) {
|
||||
if ( $bib->{$urlsplit[0]} ) {
|
||||
$folder = $folder =~ s/$urlsplit[0]/$bib->{$urlsplit[0]}/r;
|
||||
}
|
||||
|
||||
$folder = 'extensions\\'. $folder;
|
||||
}
|
||||
if ( !-e $downloadfolder.'\\'. $folder) {
|
||||
my $response = $ua->get( 'https://cdn.datatables.net/'. $rel);
|
||||
my @files = $response->as_string =~ /<a href="(.*)">\/\//g;
|
||||
for my $f ( @files ) {
|
||||
if ( $f !~ /mjs$|json$/ ) {
|
||||
push @dateien, $f;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$folder = $folder =~ s/\\\\$//rg;
|
||||
$folder = $folder =~ s/\\\\/\\/rg;
|
||||
print "$folder -> aktuell\n";
|
||||
}
|
||||
}
|
||||
|
||||
for my $da ( @dateien ) {
|
||||
next if $da !~ /cdn\.datatables\.net/ or $da =~ /mjs$/ ;
|
||||
my $folder = $da =~ s/\/\/cdn.datatables.net\///r;
|
||||
my @urlsplit = split('/', $folder);
|
||||
my $file = $urlsplit[-1];
|
||||
|
||||
$folder = $folder =~ s/$file//r;
|
||||
$folder = $folder =~ s/\//\\\\/gr;
|
||||
|
||||
if ( $urlsplit[0] !~ /^\d*\.\d*\.\d*$/ ) {
|
||||
if ( $bib->{$urlsplit[0]} ) {
|
||||
$folder = $folder =~ s/$urlsplit[0]/$bib->{$urlsplit[0]}/r;
|
||||
}
|
||||
|
||||
$folder = 'extensions\\'. $folder;
|
||||
}
|
||||
#
|
||||
if ( !-e $downloadfolder.'\\'. $folder.$file) {
|
||||
make_path( $downloadfolder.'\\'. $folder );
|
||||
my $response = $ua->get( 'https:'. $da, ':content_file' => $downloadfolder.'\\'. $folder.$file);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
system("pause");
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user