Switch from using command line RAR to using RarArchive pecl module
This commit is contained in:
		
							parent
							
								
									d593369c14
								
							
						
					
					
						commit
						8b5949d1d0
					
				| 
						 | 
				
			
			@ -8,6 +8,7 @@ $data = array();
 | 
			
		|||
$data["error"] = false;
 | 
			
		||||
$data["message"] = "";
 | 
			
		||||
$data["validated"] = $validated;
 | 
			
		||||
$data["filename"] = "";
 | 
			
		||||
 | 
			
		||||
if ( !$validated ) {
 | 
			
		||||
    $data["error"] = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -19,6 +20,7 @@ if ( !$validated ) {
 | 
			
		|||
 | 
			
		||||
if ( isset($_REQUEST['comic']) ) {
 | 
			
		||||
   $comicfull = realpath(COMICSDIR . base64_decode(urldecode($_REQUEST['comic'])));
 | 
			
		||||
   $data["filename"] = basename($comicfull);
 | 
			
		||||
   if ( $comicfull === false ) exit();
 | 
			
		||||
   if ( substr($comicfull, 0, strlen(COMICSDIR)) != COMICSDIR ) exit();
 | 
			
		||||
   $comic = substr($comicfull, strlen(COMICSDIR));
 | 
			
		||||
| 
						 | 
				
			
			@ -58,7 +60,7 @@ if ( $ext == "cbz" ) {
 | 
			
		|||
      //$myext = substr($imgname, -3);
 | 
			
		||||
      if ( ! isset(pathinfo($imgname)['extension']) ) continue;
 | 
			
		||||
      $myext = strtolower(pathinfo($imgname)['extension']);
 | 
			
		||||
      if ( ($myext == "jpg") || ($myext == "png") || ($myext == "webp") ) {
 | 
			
		||||
      if ( ($myext == "jpeg") || ($myext == "jpg") || ($myext == "png") || ($myext == "webp") ) {
 | 
			
		||||
         $imgname = str_replace("#", "", $imgname);
 | 
			
		||||
         $imgcontents = $zip->getFromIndex($i);
 | 
			
		||||
         $written = file_put_contents($comicoutputfull . $imgname, $imgcontents);
 | 
			
		||||
| 
						 | 
				
			
			@ -66,20 +68,18 @@ if ( $ext == "cbz" ) {
 | 
			
		|||
      }
 | 
			
		||||
   }
 | 
			
		||||
} elseif ( $ext == "cbr" ) {
 | 
			
		||||
   $junk = `/usr/local/bin/rar e -ep -o+ "$comicfull" "$comicoutputfull"`;
 | 
			
		||||
   $fh = opendir($comicoutputfull);
 | 
			
		||||
   while ( false !== ($file = readdir($fh)) ) {
 | 
			
		||||
      $myfile = $comicoutputfull . $file;
 | 
			
		||||
      $mynewfile = $comicoutputfull . str_replace("#", "", $file);
 | 
			
		||||
      //$myext = strtolower(substr($file, -3));
 | 
			
		||||
      if ( ! isset(pathinfo($myfile)['extension']) ) continue;
 | 
			
		||||
      $myext = strtolower(pathinfo($myfile)['extension']);
 | 
			
		||||
      if ( ($myext == "jpg") || ($myext == "png") || ($myext == "webp") ) {
 | 
			
		||||
         rename($myfile, $mynewfile);
 | 
			
		||||
         $files[] = basename($mynewfile);
 | 
			
		||||
   $rar = RarArchive::open($comicfull);
 | 
			
		||||
   $entries = $rar->getEntries();
 | 
			
		||||
   foreach ( $entries as $entry ) {
 | 
			
		||||
      $outfile = str_replace("#", "", basename($entry->getName()));
 | 
			
		||||
      $entry->extract(false, $comicoutputfull . $outfile);
 | 
			
		||||
      if ( ! isset(pathinfo($outfile)['extension']) ) continue;
 | 
			
		||||
      $myext = strtolower(pathinfo($outfile)['extension']);
 | 
			
		||||
      if ( ($myext == "jpeg") || ($myext == "jpg") || ($myext == "png") || ($myext == "webp") ) {
 | 
			
		||||
         $files[] = basename($outfile);
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
   closedir($fh);
 | 
			
		||||
   unset($entry);
 | 
			
		||||
} else {
 | 
			
		||||
   exit();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user