Merge branch 'feature/default-env-vars' of https://github.com/crainte/Mango into feature/default-env-vars

This commit is contained in:
Alex Ling 2022-07-03 06:31:06 +00:00
commit 49425ff714
4 changed files with 24 additions and 4 deletions

View File

@ -29,14 +29,16 @@ const readerComponent = () => {
return {
id: i + 1,
url: `${base_url}api/page/${tid}/${eid}/${i+1}`,
width: d.width,
height: d.height,
width: d.width == 0 ? "100%" : d.width,
height: d.height == 0 ? "100%" : d.height,
};
});
const avgRatio = this.items.reduce((acc, cur) => {
// Note: for image types not supported by image_size.cr, the width and height will be 0, and so `avgRatio` will be `Infinity`.
// TODO: support more image types in image_size.cr
const avgRatio = dimensions.reduce((acc, cur) => {
return acc + cur.height / cur.width
}, 0) / this.items.length;
}, 0) / dimensions.length;
console.log(avgRatio);
this.longPages = avgRatio > 2;

View File

@ -8,16 +8,21 @@ class Config
property host : String = (ENV["LISTEN_HOST"]? || "0.0.0.0")
property port : Int32 = (ENV["LISTEN_PORT"]? || 9000).to_i
property base_url : String = (ENV["BASE_URL"]? || "/")
# ameba:disable Layout/LineLength
property session_secret : String = (ENV["SESSION_SECRET"]? || "mango-session-secret")
property library_path : String = (ENV["LIBRARY_PATH"]? || "~/mango/library")
# ameba:disable Layout/LineLength
property library_cache_path : String = (ENV["LIBRARY_CACHE_PATH"]? || "~/mango/library.yml.gz")
property db_path : String = (ENV["DB_PATH"]? || "~/mango/mango.db")
# ameba:disable Layout/LineLength
property queue_db_path : String = (ENV["QUEUE_DB_PATH"]? || "~/mango/queue.db")
property scan_interval_minutes : Int32 = (ENV["SCAN_INTERVAL"]? || 5).to_i
# ameba:disable Layout/LineLength
property thumbnail_generation_interval_hours : Int32 = (ENV["THUMBNAIL_INTERVAL"]? || 24).to_i
property log_level : String = (ENV["LOG_LEVEL"]? || "info")
property upload_path : String = (ENV["UPLOAD_PATH"]? || "~/mango/uploads")
property plugin_path : String = (ENV["PLUGIN_PATH"]? || "~/mango/plugins")
# ameba:disable Layout/LineLength
property download_timeout_seconds : Int32 = (ENV["DOWNLOAD_TIMEOUT"]? || 30).to_i
property cache_enabled : Bool = env_is_true?("CACHE_ENABLED", true)
property cache_size_mbs : Int32 = (ENV["CACHE_SIZE"]? || 50).to_i
@ -25,6 +30,7 @@ class Config
property disable_login : Bool = env_is_true?("DISABLE_LOGIN", false)
property default_username : String = (ENV["DEFAULT_USERNAME"]? || "")
property auth_proxy_header_name : String = (ENV["AUTH_PROXY_HEADER"]? || "")
# ameba:disable Layout/LineLength
property plugin_update_interval_hours : Int32 = (ENV["PLUGIN_UPDATE_INTERVAL"]? || 24).to_i
@@singlet : Config?

View File

@ -632,6 +632,16 @@ class Title
if last_read_entry && last_read_entry.finished? username
last_read_entry = last_read_entry.next_entry username
if last_read_entry.nil?
# The last entry is finished. Return the first unfinished entry
# (if any)
sorted_entries(username).each do |e|
unless e.finished? username
last_read_entry = e
break
end
end
end
end
last_read_entry

View File

@ -11,6 +11,7 @@ SUPPORTED_IMG_TYPES = %w(
image/avif
image/gif
image/svg+xml
image/jxl
)
def random_str
@ -49,6 +50,7 @@ def register_mime_types
# defiend by Crystal in `MIME.DEFAULT_TYPES`
".apng" => "image/apng",
".avif" => "image/avif",
".jxl" => "image/jxl",
}.each do |k, v|
MIME.register k, v
end