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