if($curl[2] != 0){
									OC_ocDownloaderPB::setText($l->t('Waiting for').' '.$curl[2].'s');
									sleep($curl[2]);
								}
								
								$pr_url = $m[1].'://'.$curl[0].'/cgi-bin/rsapi.cgi?sub=download&bin=1';
								if(isset($user_info['us_username']) && isset($user_info['us_password'])){
									$pr_url .= '&login='******'us_username'].'&password='******'us_password']; 
								}
								$pr_url .= '&fileid='.$m[2].'&filename='.$m[3].'&dlauth='.$curl[1];
	
								$curl = OC_ocDownloaderHTTP::execURL($pr_url, 'rapidshare');
								if(preg_match('/^ERROR.*\((.*)\)(\n){0,1}.*$/', $curl, $m)){
									if(isset($errors[$m[1]])){
										OC_ocDownloaderPB::setError($errors[$m[1]]);
									}else{
										OC_ocDownloaderPB::setError($l->t('Unknown error').' ('.$m[1].')');
									}
								}else{
									OC_ocDownloaderHTTP::getFile($pr_url, $path, $l, $ow);
								}
							}
						}
					}
				}
			}
		}
		?>
	</body>
</html>
	/**
	 * Get initial content
	 */
	private static function getContent(){
		self::$percentDone = floatval(self::$percentDone);
		$percentDone = number_format(self::$percentDone, self::$decimals, '.', '') .'%';
		$content = '<div id="'.self::$pbid.'" class="pb_container"><div id="'.self::$textid.'" class="'.self::$textid.'">'.$percentDone.'</div><div id="pb_bar" class="pb_bar"><div id="'.self::$pbarid.'" class="pb_before" style="width: '.$percentDone.';"></div><div id="'.self::$tbarid.'" class="pb_after"></div></div><br style="height: 1px; font-size: 1px;"/></div>';
		$content .= '<style>.pb_container{position:relative;}.pb_bar{width:100%;height:1em;border:1px solid silver;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;}.pb_before{float:left;height:1em;background-color:#1D2D44;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;}.pb_after{float:left;height:1em;background-color:#FEFEFE;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;}.pb_text{text-align:right;}</style>'."\r\n";
		return $content;
	}
	/**
	 * Get the file by an URL
	 * @param $url URL of the file
	 * @param $path Simple path of the file
	 * @param $l Lang
	 * @param $overwrite Overwrite the target file
	 */
	public static function getFile($url, $path, $l, $overwrite = 0){
		try{
			$code = 0;
			if(!self::checkFileAccess($url, $code)){
				OC_ocDownloaderPB::setError($l->t(self::$errors[$code]));
				exit();
			}
			
			$pathinfo = pathinfo($path);
			$fs = OCP\Files::getStorage('files');
			if($fs->file_exists('/Downloads/' . $pathinfo['basename']) && !$overwrite){
				$pathinfo['basename'] = md5(rand()) . '_' . $pathinfo['basename'];
			}
			$fs = $fs->fopen('/Downloads/' . $pathinfo['basename'], 'w');
			
			$size = self::getRemoteFileSize($url);
			if($size == 0){
				OC_ocDownloaderPB::setError($l->t('Filesize is null'));
				exit();
			}
			$chunkSize = self::getChunkSize($size);
		
		    $fp = fopen($url, 'rb');
			$received = $last = 0;
			
		    while(!feof($fp)){
		        $data = @fread($fp, $chunkSize);
		        if($data == ''){
		        	break;
		        }
				$saved = fwrite($fs, $data);
				if($saved > -1){
					$received += $saved;
				}
				if($received >= $size){
	                $percent = 100;
	            }else{
	                $percent = @round(($received/$size)*100, 2);
	            }
				if($received > $last + $chunkSize){
					OC_ocDownloaderPB::setProgressBarProgress($percent);
					$last = $received;
				}
				usleep(100);
		    }
			OC_ocDownloaderPB::setProgressBarProgress(100);
			OC_ocDownloader::setUserHistory($pathinfo['basename'], 1);
		
		    fclose($fp);fclose($fs);
		}catch(exception $e){
			OC_ocDownloaderPB::setError($l->t('Unknown error'));
		}
	}
    private static function get_curl_binary(){
      	$size = self::getRemoteFileSize(self::$flv_url);
		if($size == 0){
			OC_ocDownloaderPB::setError($l->t('Filesize is null'));
			exit();
		}
		$chunkSize = self::getChunkSize($size);
	
	    self::$fp = fopen(self::$flv_url, 'rb');
		$received = $last = 0;
		
	    while(!feof(self::$fp)){
	        $data = @fread(self::$fp, $chunkSize);
	        if($data == ''){
	        	break;
	        }
			$saved = fwrite(self::$fs, $data);
			if($saved > -1){
				$received += $saved;
			}
			if($received >= $size){
                $percent = 100;
            }else{
                $percent = @round(($received/$size)*100, 2);
            }
			if($received > $last + $chunkSize){
				OC_ocDownloaderPB::setProgressBarProgress($percent);
				$last = $received;
			}
			usleep(100);
	    }
		OC_ocDownloaderPB::setProgressBarProgress(100);
		OC_ocDownloader::setUserHistory(self::$final_flv_filename, 1);
		
		fclose(self::$fp);fclose(self::$fs);
    }
Beispiel #5
0
			$ow = urldecode(trim($_GET['o']));
			
			if(strcmp(substr($url,0,6), 'ftp://') != 0 && strcmp(substr($url,0,7), 'ftps://') != 0){
				$url = 'ftp://'.$url;
			}
			
			$url = parse_url($url);
			if(!isset($url['scheme']) || !isset($url['host']) || !isset($url['user']) || !isset($url['pass']) || !isset($url['path'])){
				OC_ocDownloaderPB::setError($l->t('Wrong URL'));
			}else{
				$port = 0;
				if(isset($url['port'])){
					$port = $url['port'];
				}
				
				if(!OC_ocDownloaderFTP::connectToHost($url['scheme'], $url['host'], $port, $url['user'], $url['pass'])){
					OC_ocDownloaderPB::setError($l->t('Connection timeout'));
				}else{
					if(OC_ocDownloaderFTP::isDir($url['path'])){
						OC_ocDownloaderPB::setError($l->t('Enter a File URL'));
						OC_ocDownloaderFTP::closeConnection();
					}else{
						OC_ocDownloaderFTP::getFile($url['path'], $l, $ow);
					}
				}
			}
		}
		?>
	</body>
</html>
	/**
	 * Get file
	 * @param $path The remote file path
	 * @param $l Lang
	 * @param $overwrite Overwrite the target file
	 */
	public static function getFile($path, $l, $overwrite){
		try{
			$pathinfo = pathinfo($path);
			$fs = OCP\Files::getStorage('files');
			if($fs->file_exists('/Downloads/' . $pathinfo['basename']) && !$overwrite){
				$pathinfo['basename'] = md5(rand()) . '_' . $pathinfo['basename'];
			}
			
			$size = self::getRemoteFileSize($path);
			if($size == 0){
				OC_ocDownloaderPB::setError($l->t('Filesize is null'));
				self::closeConnection();
				exit();
			}
			$chunkSize = self::getChunkSize($size);
			
			$received = $last = 0;
			$ret = ftp_nb_get(self::$conn, $fs->getLocalFile('/Downloads/' . $pathinfo['basename']), $path, FTP_BINARY);
			while($ret == FTP_MOREDATA){
				$received += $fs->filesize('/Downloads/' . $pathinfo['basename']);
				if($received >= $size){
	                $percent = 100;
	            }else{
	                $percent = @round(($received/$size)*100, 2);
	            }
				
				if($received > $last + $chunkSize){
					OC_ocDownloaderPB::setProgressBarProgress($percent);
					$last = $received;
				}
				
				usleep(100);
			   	$ret = ftp_nb_continue(self::$conn);
			}
			if($ret != FTP_FINISHED){
			   	OC_ocDownloaderPB::setError($l->t('Download error'));
				self::closeConnection();
			   	exit();
			}else{
				OC_ocDownloaderPB::setProgressBarProgress(100);
				OC_ocDownloader::setUserHistory($pathinfo['basename'], 1);
			}
			
			self::closeConnection();
		}catch(exception $e){
			OC_ocDownloaderPB::setError($l->t('Unknown error'));
		}
	}
Beispiel #7
0
		OC_ocDownloaderPB::init();
		echo '<div style="width:99%;">';
		OC_ocDownloaderPB::render();
		echo '</div>';
		OC_ocDownloaderPB::setText($l->t('Prepare download ...'));
		
		$pr = urldecode(trim($_GET['p']));
		$url = urldecode(trim($_GET['u']));
		$ow = urldecode(trim($_GET['o']));
		
		if(strcmp(substr($url,0,7), 'http://') != 0 && strcmp(substr($url,0,8), 'https://') != 0){
			$url = 'http://'.$url;
		}
		
		$url = parse_url($url);
		if(!isset($url['scheme']) || !isset($url['host']) || !isset($url['path'])){
			OC_ocDownloaderPB::setError($l->t('Connection error ...'));
		}else{
			$path = $url['path'];
			$url = $url['scheme'].'://'.$url['host'].(isset($url['port'])?':'.$url['port']:'').$url['path'];
		
			if(!preg_match('/^pr_([0-9]{1,4})$/', $pr, $m)){
				OC_ocDownloaderPB::setError($l->t('Unknown error'));
			}else{
				OC_ocDownloaderHTTP::getFile($url, $path, $l, $ow);
			}
		}
		?>
	</body>
</html>
	<body>
		<?php
		OC_ocDownloaderPB::init();
		echo '<div style="width:99%;">';
		OC_ocDownloaderPB::render();
		echo '</div>';
		OC_ocDownloaderPB::setText($l->t('Prepare download ...'));
		
		$pr = urldecode(trim($_GET['p']));
		$url = urldecode(trim($_GET['u']));
		$ow = urldecode(trim($_GET['o']));
		
		if(strcmp(substr($url,0,7), 'http://') != 0 && strcmp(substr($url,0,8), 'https://') != 0){
			$url = 'http://'.$url;
		}

		$purl = parse_url($url);
		if(!isset($purl['query'])){
			OC_ocDownloaderPB::setError($l->t('Provide a good URL !'));
		}else{
			if(strcmp(substr($purl['query'],0,2),'v=') != 0){
				OC_ocDownloaderPB::setError($l->t('Provide a good URL !'));
			}else{
				$filename = substr($purl['query'],2) . '.flv';
				OC_ocDownloaderYT::init($url, $filename, 0, $ow);
			}
		}
		?>
	</body>
</html>