URL
https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk
Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc
[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [perl/] [gdown.pl] - Rev 48
Compare with Previous | Blame | View Log
#!/usr/bin/env perl # # Google Drive direct download of big files # ./gdown.pl 'gdrive file url' ['desired file name'] # # v1.0 by circulosmeos 04-2014. # v1.1 by circulosmeos 01-2017. # v1.2, v1.3, v1.4 by circulosmeos 01-2019, 02-2019. # //circulosmeos.wordpress.com/2014/04/12/google-drive-direct-download-of-big-files # Distributed under GPL 3 (//www.gnu.org/licenses/gpl-3.0.html) # use strict; #use POSIX; use FindBin; use lib $FindBin::Bin; sub execute_command { my ($TEMP,$FILENAME,$URL)=@_; my $COMMAND="wget --progress=dot:giga --no-check-certificate --load-cookie $TEMP --save-cookie $TEMP \"$URL\""; $COMMAND.=" -O \"$FILENAME\"" if $FILENAME ne ''; my $cmd = "xterm -e bash -c \'$COMMAND; sleep 5\'"; #print "command = $cmd\n"; my ($stdout,$exit,$stderr)=run_cmd_in_back_ground_get_stdout($cmd); if(length $stderr>1){ message_dialog("Error: $stderr",'error'); } return 1; } sub download_from_google_drive{ my ($URL,$FILENAME)=@_; my ($name,$path,$suffix) = fileparse("$FILENAME",qr"\..[^.]*$"); my $TEMP="$ENV{PRONOC_WORK}/tmp/$name.cookie.temp"; my $COMMAND; my $confirm; my $check; die "\n./gdown.pl 'gdrive file url' [desired file name]\n\n" if $URL eq ''; $FILENAME='gdown.'.strftime("%Y%m%d%H%M%S", localtime).'.'.substr(rand,2) if $FILENAME eq ''; if ($URL=~m#^https?://drive.google.com/file/d/([^/]+)#) { $URL="https://docs.google.com/uc?id=$1&export=download"; } elsif ($URL=~m#^https?://drive.google.com/open\?id=([^/]+)#) { $URL="https://docs.google.com/uc?id=$1&export=download"; } execute_command($TEMP,$FILENAME,$URL); while (-s $FILENAME < 100000) { # only if the file isn't download yet open fFILENAME, '<', $FILENAME; $check=0; foreach (<fFILENAME>) { if (/href="(\/uc\?export=download[^"]+)/) { $URL='https://docs.google.com'.$1; $URL=~s/&/&/g; $confirm=''; $check=1; last; } if (/confirm=([^;&]+)/) { $confirm=$1; $check=1; last; } if (/"downloadUrl":"([^"]+)/) { $URL=$1; $URL=~s/\\u003d/=/g; $URL=~s/\\u0026/&/g; $confirm=''; $check=1; last; } } close fFILENAME; #die "Couldn't download the file :-(\n" if ($check==0); if($check == 0 ) { message_dialog("Error: Couldn't download the file :-(",'error'); return; } $URL=~s/confirm=([^;&]+)/confirm=$confirm/ if $confirm ne ''; execute_command($TEMP,$FILENAME,$URL); } unlink $TEMP; } 1;