OpenCores
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/&amp;/&/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;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.