diff --git a/core/config.php b/core/config.php
index 8f5c9a06..695fa8f1 100644
--- a/core/config.php
+++ b/core/config.php
@@ -18,7 +18,7 @@ interface Config
/**
* 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.
@@ -113,7 +113,7 @@ abstract class BaseConfig implements Config
{
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->save($name);
diff --git a/core/imageboard/image.php b/core/imageboard/image.php
index a5d90979..5d31ff90 100644
--- a/core/imageboard/image.php
+++ b/core/imageboard/image.php
@@ -570,6 +570,8 @@ class Image
{
global $database;
+ $unfiltered_tags = array_unique($unfiltered_tags);
+
$tags = [];
foreach ($unfiltered_tags as $tag) {
if (mb_strlen($tag, 'UTF-8') > 255) {
diff --git a/ext/cron_uploader/main.php b/ext/cron_uploader/main.php
index be0b1c0c..5f67f909 100644
--- a/ext/cron_uploader/main.php
+++ b/ext/cron_uploader/main.php
@@ -142,7 +142,8 @@ class CronUploader extends Extension
{
global $config;
// 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();
$config->set_default_int('cron_uploader_count', 1);
@@ -264,8 +265,8 @@ class CronUploader extends Extension
shuffle($this->image_queue);
// Upload the file(s)
- for ($i = 0; $i < $upload_count && $i < sizeof($this->image_queue); $i++) {
- $img = $this->image_queue[$i];
+ for ($i = 0; $i < $upload_count && sizeof($this->image_queue)>0; $i++) {
+ $img = array_pop($this->image_queue);
try {
$this->add_image($img[0], $img[1], $img[2]);
@@ -273,9 +274,6 @@ class CronUploader extends Extension
} catch (Exception $e) {
$this->move_uploaded($img[0], $img[1], true);
}
-
- // Remove img from queue array
- unset($this->image_queue[$i]);
}
// Display & save upload log
@@ -321,7 +319,7 @@ class CronUploader extends Extension
$metadata = [];
$metadata ['filename'] = $pathinfo ['basename'];
$metadata ['extension'] = $pathinfo ['extension'];
- $metadata ['tags'] = []; // = $tags; doesn't work when not logged in here
+ $metadata ['tags'] = Tag::explode($tags);
$metadata ['source'] = null;
$event = new DataUploadEvent($tmpname, $metadata);
send_event($event);
@@ -334,10 +332,7 @@ class CronUploader extends Extension
$infomsg = "Image uploaded. ID: {$event->image_id} - Filename: {$filename} - Tags: {$tags}";
}
$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
@@ -353,20 +348,10 @@ class CronUploader extends Extension
foreach (new RecursiveIteratorIterator($ite) as $fullpath=>$cur) {
if (!is_link($fullpath) && !is_dir($fullpath)) {
$pathinfo = pathinfo($fullpath);
- $matches = [];
-
- if (preg_match("/\d+ - (.*)\.([a-zA-Z]+)/", $pathinfo ["basename"], $matches)) {
- $tags = $matches [1];
- } else {
- $tags = $subdir;
- $tags = str_replace("/", " ", $tags);
- $tags = str_replace("__", " ", $tags);
- if ($tags == "") {
- $tags = " ";
- }
- $tags = trim($tags);
- }
-
+
+ $relativePath = substr($fullpath,strlen($base));
+ $tags = path_to_tags($relativePath);
+
$img = [
0 => $fullpath,
1 => $pathinfo ["basename"],
diff --git a/themes/danbooru/themelet.class.php b/themes/danbooru/themelet.class.php
index a00a75d4..9cdf2507 100644
--- a/themes/danbooru/themelet.class.php
+++ b/themes/danbooru/themelet.class.php
@@ -10,13 +10,13 @@ class Themelet extends BaseThemelet
$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);
return "$name";
}
- 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 = "";
if ($page == $current_page) {
@@ -27,7 +27,7 @@ class Themelet extends BaseThemelet
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;
$prev = $current_page - 1;
diff --git a/themes/danbooru2/themelet.class.php b/themes/danbooru2/themelet.class.php
index a00a75d4..9cdf2507 100644
--- a/themes/danbooru2/themelet.class.php
+++ b/themes/danbooru2/themelet.class.php
@@ -10,13 +10,13 @@ class Themelet extends BaseThemelet
$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);
return "$name";
}
- 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 = "";
if ($page == $current_page) {
@@ -27,7 +27,7 @@ class Themelet extends BaseThemelet
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;
$prev = $current_page - 1;
diff --git a/themes/futaba/themelet.class.php b/themes/futaba/themelet.class.php
index b84d3aae..219dbefb 100644
--- a/themes/futaba/themelet.class.php
+++ b/themes/futaba/themelet.class.php
@@ -17,13 +17,13 @@ class Themelet extends BaseThemelet
/**
* 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);
return "[{$name}]";
}
- 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 = "";
if ($page == $current_page) {
@@ -36,7 +36,7 @@ class Themelet extends BaseThemelet
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;
$prev = $current_page - 1;
diff --git a/themes/lite/themelet.class.php b/themes/lite/themelet.class.php
index ef64903d..4e4ad20f 100644
--- a/themes/lite/themelet.class.php
+++ b/themes/lite/themelet.class.php
@@ -33,7 +33,7 @@ class Themelet extends BaseThemelet
return "$name";
}
- 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 = "";
@@ -47,7 +47,7 @@ class Themelet extends BaseThemelet
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;
$prev = $current_page - 1;