Compare commits
	
		
			No commits in common. "3c1f996342ab02e15a9583bbb04fa1261d476c83" and "792b9c875f1aefc83eda48b2d9fa9b66bf748b85" have entirely different histories.
		
	
	
		
			3c1f996342
			...
			792b9c875f
		
	
		
							
								
								
									
										40
									
								
								php/cors.php
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								php/cors.php
									
									
									
									
									
								
							@ -1,40 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
include_once __DIR__ . "/logging.php";
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 *  An example CORS-compliant method.  It will allow any GET, POST, or OPTIONS requests from any
 | 
					 | 
				
			||||||
 *  origin.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *  In a production environment, you probably want to be more restrictive, but this gives you
 | 
					 | 
				
			||||||
 *  the general idea of what is involved.  For the nitty-gritty low-down, read:
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 *  - https://developer.mozilla.org/en/HTTP_access_control
 | 
					 | 
				
			||||||
 *  - https://fetch.spec.whatwg.org/#http-cors-protocol
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
function cors() {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Allow from any origin
 | 
					 | 
				
			||||||
    if (isset($_SERVER['HTTP_ORIGIN'])) {
 | 
					 | 
				
			||||||
		log_print("HTTP_ORIGIN: ".$_SERVER['HTTP_ORIGIN']);
 | 
					 | 
				
			||||||
        // Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
 | 
					 | 
				
			||||||
        // you want to allow, and if so:
 | 
					 | 
				
			||||||
		#if ($_SERVER['HTTP_ORIGIN'] !== 'http://app1.localhost') return;
 | 
					 | 
				
			||||||
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
 | 
					 | 
				
			||||||
        header('Access-Control-Allow-Credentials: true');
 | 
					 | 
				
			||||||
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    // Access-Control headers are received during OPTIONS requests
 | 
					 | 
				
			||||||
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
 | 
					 | 
				
			||||||
            // may also be using PUT, PATCH, HEAD etc
 | 
					 | 
				
			||||||
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
 | 
					 | 
				
			||||||
            header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        exit(0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
?>
 | 
					 | 
				
			||||||
							
								
								
									
										38
									
								
								php/get.php
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								php/get.php
									
									
									
									
									
								
							@ -1,7 +1,5 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
include_once __DIR__ . "/logging.php";
 | 
					include_once __DIR__ . "/logging.php";
 | 
				
			||||||
include_once __DIR__ . "/cors.php";
 | 
					 | 
				
			||||||
cors();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
define("ROOT_URL", "http://localhost/");
 | 
					define("ROOT_URL", "http://localhost/");
 | 
				
			||||||
define("ROOT_DIR", "/var/www/localhost/");
 | 
					define("ROOT_DIR", "/var/www/localhost/");
 | 
				
			||||||
@ -26,6 +24,8 @@ define("VIDEO_EXTENSIONS", [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
define("FILE_EXTENSIONS", array_merge(IMAGE_EXTENSIONS, VIDEO_EXTENSIONS));
 | 
					define("FILE_EXTENSIONS", array_merge(IMAGE_EXTENSIONS, VIDEO_EXTENSIONS));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function main(): void {
 | 
					function main(): void {
 | 
				
			||||||
	$data = json_decode(file_get_contents('php://input'), true);
 | 
						$data = json_decode(file_get_contents('php://input'), true);
 | 
				
			||||||
	$array = [];
 | 
						$array = [];
 | 
				
			||||||
@ -42,17 +42,15 @@ function main(): void {
 | 
				
			|||||||
		$is_dir = is_dir(ROOT_DIR.IMG_DIR.$path);
 | 
							$is_dir = is_dir(ROOT_DIR.IMG_DIR.$path);
 | 
				
			||||||
		if (!$is_dir && !is_valid_file_type($file)) continue;
 | 
							if (!$is_dir && !is_valid_file_type($file)) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$url = ROOT_URL.IMG_DIR.$path;
 | 
					 | 
				
			||||||
		$thumbnail_url = null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (!$is_dir) {
 | 
					 | 
				
			||||||
			$thumbnail_url = create_thumbnail($category, $file);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		$file_item = [];
 | 
							$file_item = [];
 | 
				
			||||||
		$file_item["is_dir"] = $is_dir;
 | 
							$file_item["is_dir"] = $is_dir;
 | 
				
			||||||
		$file_item["url"] = $url;
 | 
							if ($is_dir) {
 | 
				
			||||||
		$file_item["thumbnail_url"] = $thumbnail_url;
 | 
								$file_item["url"] = ROOT_URL.IMG_DIR.$path;
 | 
				
			||||||
 | 
								$file_item["thumbnail_url"] = null;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								$file_item["url"] = ROOT_URL.IMG_DIR.$path;
 | 
				
			||||||
 | 
								$file_item["thumbnail_url"] = create_thumbnail($category, $file);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		array_push($array, $file_item);
 | 
							array_push($array, $file_item);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,14 +63,11 @@ function create_thumbnail(string $category, string $file): string | null {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	$path = add_seperator_ab("/", $category, $file);
 | 
						$path = add_seperator_ab("/", $category, $file);
 | 
				
			||||||
	$original_file = ROOT_DIR.IMG_DIR.$path;
 | 
						$original_file = ROOT_DIR.IMG_DIR.$path;
 | 
				
			||||||
	$hash = hash_file("sha1", $original_file);
 | 
						$thumbnail_directory = ROOT_DIR.THUMBNAIL_DIR.IMG_DIR.add_seperator_ab("/", $category, "");
 | 
				
			||||||
 | 
						$thumbnail_file = $thumbnail_directory.$file;
 | 
				
			||||||
	$thumbnail_directory = ROOT_DIR.THUMBNAIL_DIR;
 | 
					 | 
				
			||||||
	$thumbnail_name = "$hash.jpg";
 | 
					 | 
				
			||||||
	$thumbnail_file = $thumbnail_directory.$thumbnail_name;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (file_exists($thumbnail_file)) {
 | 
						if (file_exists($thumbnail_file)) {
 | 
				
			||||||
		log_print("thumbnail for $original_file exists, skipping generation");
 | 
							log_print("$thumbnail_file exists, skipping gneeration");
 | 
				
			||||||
		goto return_thumbnail;
 | 
							goto return_thumbnail;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -83,16 +78,16 @@ function create_thumbnail(string $category, string $file): string | null {
 | 
				
			|||||||
		log_error($e->getMessage());
 | 
							log_error($e->getMessage());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	log_print("generating thumbnail for $original_file");
 | 
						log_print(THUMBNAIL_SCRIPT." '$original_file' '$thumbnail_file'");
 | 
				
			||||||
	$output = shell_exec(THUMBNAIL_SCRIPT." '$original_file' '$thumbnail_file' 2>&1");
 | 
						$output = shell_exec(THUMBNAIL_SCRIPT." '$original_file' '$thumbnail_file' 2>&1");
 | 
				
			||||||
	if ($output) log_print($output);
 | 
						log_print($output);
 | 
				
			||||||
	if ($output === false) {
 | 
						if ($output === false) {
 | 
				
			||||||
		log_error("Thumbnail failed");
 | 
							log_error("Thumbnail failed");
 | 
				
			||||||
		return ROOT_URL.IMG_DIR.$path;
 | 
							return ROOT_URL.IMG_DIR.$path;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return_thumbnail:
 | 
						return_thumbnail:
 | 
				
			||||||
	return ROOT_URL.THUMBNAIL_DIR.$thumbnail_name;
 | 
						return ROOT_URL.THUMBNAIL_DIR.IMG_DIR.$path;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function add_seperator_ab(string $separator, string $a, string $b): string {
 | 
					function add_seperator_ab(string $separator, string $a, string $b): string {
 | 
				
			||||||
@ -113,6 +108,5 @@ function is_image_file_type(string $filename): bool {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return false;
 | 
						return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
main();
 | 
					 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,13 +4,15 @@ import sys
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
 | 
					    target_width = 2048
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    argn = len(sys.argv)
 | 
					    argn = len(sys.argv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if argn == 1:
 | 
					    if argn == 1:
 | 
				
			||||||
        print("Error: You must specify an input file")
 | 
					        print("You must specify an input file")
 | 
				
			||||||
        exit(1)
 | 
					        exit(1)
 | 
				
			||||||
    elif argn == 2:
 | 
					    elif argn == 2:
 | 
				
			||||||
        print("Error: You must specify an output file")
 | 
					        print("You must specify an output file")
 | 
				
			||||||
        exit(1)
 | 
					        exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    input_image_path = sys.argv[1]
 | 
					    input_image_path = sys.argv[1]
 | 
				
			||||||
@ -19,12 +21,10 @@ def main():
 | 
				
			|||||||
    try:
 | 
					    try:
 | 
				
			||||||
        image = Image.open(input_image_path)
 | 
					        image = Image.open(input_image_path)
 | 
				
			||||||
    except IOError:
 | 
					    except IOError:
 | 
				
			||||||
        print(f"Error: Cannot open image file {input_image_path}")
 | 
					        print(f"Cannot open image file {input_image_path}")
 | 
				
			||||||
        image.close()
 | 
					 | 
				
			||||||
        exit(1)
 | 
					        exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    width, height = image.size
 | 
					    width, height = image.size
 | 
				
			||||||
    target_width = int(max(width/4, 1280))
 | 
					 | 
				
			||||||
    new_height = int(target_width * height / width)
 | 
					    new_height = int(target_width * height / width)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    image = image.resize((target_width, new_height), Image.Resampling.BICUBIC)
 | 
					    image = image.resize((target_width, new_height), Image.Resampling.BICUBIC)
 | 
				
			||||||
@ -37,8 +37,7 @@ def main():
 | 
				
			|||||||
    try:
 | 
					    try:
 | 
				
			||||||
        image.save(output_image_path, **kwargs)
 | 
					        image.save(output_image_path, **kwargs)
 | 
				
			||||||
    except IOError:
 | 
					    except IOError:
 | 
				
			||||||
        print(f"Error: Cannot save file {output_image_path}")
 | 
					        print(f"Cannot save file {output_image_path}")
 | 
				
			||||||
        image.close()
 | 
					 | 
				
			||||||
        exit(1)
 | 
					        exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user