Merge pull request #653 from sanmadjack/develop

Fixes for various issues
This commit is contained in:
Shish 2019-06-02 19:16:41 +01:00 committed by GitHub
commit a1297781d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 38 deletions

View File

@ -18,7 +18,7 @@ interface Config
/** /**
* Set a configuration option to a new value, regardless of what the value is at the moment. * Set a configuration option to a new value, regardless of what the value is at the moment.
*/ */
public function set_int(string $name, ?int $value): void; public function set_int(string $name, ?string $value): void;
/** /**
* Set a configuration option to a new value, regardless of what the value is at the moment. * Set a configuration option to a new value, regardless of what the value is at the moment.
@ -113,7 +113,7 @@ abstract class BaseConfig implements Config
{ {
public $values = []; public $values = [];
public function set_int(string $name, ?int $value): void public function set_int(string $name, ?string $value): void
{ {
$this->values[$name] = parse_shorthand_int($value); $this->values[$name] = parse_shorthand_int($value);
$this->save($name); $this->save($name);

View File

@ -570,6 +570,8 @@ class Image
{ {
global $database; global $database;
$unfiltered_tags = array_unique($unfiltered_tags);
$tags = []; $tags = [];
foreach ($unfiltered_tags as $tag) { foreach ($unfiltered_tags as $tag) {
if (mb_strlen($tag, 'UTF-8') > 255) { if (mb_strlen($tag, 'UTF-8') > 255) {

View File

@ -142,7 +142,8 @@ class CronUploader extends Extension
{ {
global $config; global $config;
// Set default values // Set default values
if ($config->get_string("cron_uploader_key", "")) { $this->upload_key = $config->get_string("cron_uploader_key", "");
if (strlen($this->upload_key)<=0) {
$this->upload_key = $this->generate_key(); $this->upload_key = $this->generate_key();
$config->set_default_int('cron_uploader_count', 1); $config->set_default_int('cron_uploader_count', 1);
@ -264,8 +265,8 @@ class CronUploader extends Extension
shuffle($this->image_queue); shuffle($this->image_queue);
// Upload the file(s) // Upload the file(s)
for ($i = 0; $i < $upload_count && $i < sizeof($this->image_queue); $i++) { for ($i = 0; $i < $upload_count && sizeof($this->image_queue)>0; $i++) {
$img = $this->image_queue[$i]; $img = array_pop($this->image_queue);
try { try {
$this->add_image($img[0], $img[1], $img[2]); $this->add_image($img[0], $img[1], $img[2]);
@ -273,9 +274,6 @@ class CronUploader extends Extension
} catch (Exception $e) { } catch (Exception $e) {
$this->move_uploaded($img[0], $img[1], true); $this->move_uploaded($img[0], $img[1], true);
} }
// Remove img from queue array
unset($this->image_queue[$i]);
} }
// Display & save upload log // Display & save upload log
@ -321,7 +319,7 @@ class CronUploader extends Extension
$metadata = []; $metadata = [];
$metadata ['filename'] = $pathinfo ['basename']; $metadata ['filename'] = $pathinfo ['basename'];
$metadata ['extension'] = $pathinfo ['extension']; $metadata ['extension'] = $pathinfo ['extension'];
$metadata ['tags'] = []; // = $tags; doesn't work when not logged in here $metadata ['tags'] = Tag::explode($tags);
$metadata ['source'] = null; $metadata ['source'] = null;
$event = new DataUploadEvent($tmpname, $metadata); $event = new DataUploadEvent($tmpname, $metadata);
send_event($event); send_event($event);
@ -335,9 +333,6 @@ class CronUploader extends Extension
} }
$msgNumber = $this->add_upload_info($infomsg); $msgNumber = $this->add_upload_info($infomsg);
// Set tags
$img = Image::by_id($event->image_id);
$img->set_tags(Tag::explode($tags));
} }
private function generate_image_queue(): void private function generate_image_queue(): void
@ -353,19 +348,9 @@ class CronUploader extends Extension
foreach (new RecursiveIteratorIterator($ite) as $fullpath=>$cur) { foreach (new RecursiveIteratorIterator($ite) as $fullpath=>$cur) {
if (!is_link($fullpath) && !is_dir($fullpath)) { if (!is_link($fullpath) && !is_dir($fullpath)) {
$pathinfo = pathinfo($fullpath); $pathinfo = pathinfo($fullpath);
$matches = [];
if (preg_match("/\d+ - (.*)\.([a-zA-Z]+)/", $pathinfo ["basename"], $matches)) { $relativePath = substr($fullpath,strlen($base));
$tags = $matches [1]; $tags = path_to_tags($relativePath);
} else {
$tags = $subdir;
$tags = str_replace("/", " ", $tags);
$tags = str_replace("__", " ", $tags);
if ($tags == "") {
$tags = " ";
}
$tags = trim($tags);
}
$img = [ $img = [
0 => $fullpath, 0 => $fullpath,

View File

@ -10,13 +10,13 @@ class Themelet extends BaseThemelet
$page->add_block(new Block(null, $body, "main", 90)); $page->add_block(new Block(null, $body, "main", 90));
} }
private function gen_page_link(string $base_url, string $query, string $page, string $name): string private function gen_page_link(string $base_url, ?string $query, string $page, string $name): string
{ {
$link = make_link("$base_url/$page", $query); $link = make_link("$base_url/$page", $query);
return "<a href='$link'>$name</a>"; return "<a href='$link'>$name</a>";
} }
private function gen_page_link_block(string $base_url, string $query, int $page, int $current_page, string $name): string private function gen_page_link_block(string $base_url, ?string $query, int $page, int $current_page, string $name): string
{ {
$paginator = ""; $paginator = "";
if ($page == $current_page) { if ($page == $current_page) {
@ -27,7 +27,7 @@ class Themelet extends BaseThemelet
return $paginator; return $paginator;
} }
private function build_paginator(int $current_page, int $total_pages, string $base_url, string $query): string private function build_paginator(int $current_page, int $total_pages, string $base_url, ?string $query): string
{ {
$next = $current_page + 1; $next = $current_page + 1;
$prev = $current_page - 1; $prev = $current_page - 1;

View File

@ -10,13 +10,13 @@ class Themelet extends BaseThemelet
$page->add_block(new Block(null, $body, "main", 90)); $page->add_block(new Block(null, $body, "main", 90));
} }
private function gen_page_link(string $base_url, string $query, string $page, string $name): string private function gen_page_link(string $base_url, ?string $query, string $page, string $name): string
{ {
$link = make_link("$base_url/$page", $query); $link = make_link("$base_url/$page", $query);
return "<a href='$link'>$name</a>"; return "<a href='$link'>$name</a>";
} }
private function gen_page_link_block(string $base_url, string $query, int $page, int $current_page, string $name): string private function gen_page_link_block(string $base_url, ?string $query, int $page, int $current_page, string $name): string
{ {
$paginator = ""; $paginator = "";
if ($page == $current_page) { if ($page == $current_page) {
@ -27,7 +27,7 @@ class Themelet extends BaseThemelet
return $paginator; return $paginator;
} }
private function build_paginator(int $current_page, int $total_pages, string $base_url, string $query): string private function build_paginator(int $current_page, int $total_pages, string $base_url, ?string $query): string
{ {
$next = $current_page + 1; $next = $current_page + 1;
$prev = $current_page - 1; $prev = $current_page - 1;

View File

@ -17,13 +17,13 @@ class Themelet extends BaseThemelet
/** /**
* Generate a single HTML link. * Generate a single HTML link.
*/ */
public function futaba_gen_page_link(string $base_url, string $query, string $page, string $name): string public function futaba_gen_page_link(string $base_url, ?string $query, string $page, string $name): string
{ {
$link = make_link("$base_url/$page", $query); $link = make_link("$base_url/$page", $query);
return "[<a href='$link'>{$name}</a>]"; return "[<a href='$link'>{$name}</a>]";
} }
public function futaba_gen_page_link_block(string $base_url, string $query, int $page, int $current_page, string $name): string public function futaba_gen_page_link_block(string $base_url, ?string $query, int $page, int $current_page, string $name): string
{ {
$paginator = ""; $paginator = "";
if ($page == $current_page) { if ($page == $current_page) {
@ -36,7 +36,7 @@ class Themelet extends BaseThemelet
return $paginator; return $paginator;
} }
public function futaba_build_paginator(int $current_page, int $total_pages, string $base_url, string $query): string public function futaba_build_paginator(int $current_page, int $total_pages, string $base_url, ?string $query): string
{ {
$next = $current_page + 1; $next = $current_page + 1;
$prev = $current_page - 1; $prev = $current_page - 1;

View File

@ -33,7 +33,7 @@ class Themelet extends BaseThemelet
return "<a class='$link_class' href='$link'>$name</a>"; return "<a class='$link_class' href='$link'>$name</a>";
} }
public function litetheme_gen_page_link_block(string $base_url, string $query, string $page, string $current_page, string $name): string public function litetheme_gen_page_link_block(string $base_url, ?string $query, string $page, string $current_page, string $name): string
{ {
$paginator = ""; $paginator = "";
@ -47,7 +47,7 @@ class Themelet extends BaseThemelet
return $paginator; return $paginator;
} }
public function litetheme_build_paginator(int $current_page, int $total_pages, string $base_url, string $query, bool $show_random): string public function litetheme_build_paginator(int $current_page, int $total_pages, string $base_url, ?string $query, bool $show_random): string
{ {
$next = $current_page + 1; $next = $current_page + 1;
$prev = $current_page - 1; $prev = $current_page - 1;