mirror of
https://github.com/hkalexling/Mango.git
synced 2026-04-05 00:00:44 -04:00
Project-wise code formatting
This commit is contained in:
102
src/config.cr
102
src/config.cr
@@ -1,60 +1,58 @@
|
||||
require "yaml"
|
||||
|
||||
class Config
|
||||
include YAML::Serializable
|
||||
include YAML::Serializable
|
||||
|
||||
property port : Int32 = 9000
|
||||
property library_path : String = \
|
||||
File.expand_path "~/mango/library", home: true
|
||||
property db_path : String = \
|
||||
File.expand_path "~/mango/mango.db", home: true
|
||||
@[YAML::Field(key: "scan_interval_minutes")]
|
||||
property scan_interval : Int32 = 5
|
||||
property log_level : String = "info"
|
||||
property mangadex = Hash(String, String|Int32).new
|
||||
property port : Int32 = 9000
|
||||
property library_path : String = File.expand_path "~/mango/library", home: true
|
||||
property db_path : String = File.expand_path "~/mango/mango.db", home: true
|
||||
@[YAML::Field(key: "scan_interval_minutes")]
|
||||
property scan_interval : Int32 = 5
|
||||
property log_level : String = "info"
|
||||
property mangadex = Hash(String, String | Int32).new
|
||||
|
||||
@[YAML::Field(ignore: true)]
|
||||
@mangadex_defaults = {
|
||||
"base_url" => "https://mangadex.org",
|
||||
"api_url" => "https://mangadex.org/api",
|
||||
"download_wait_seconds" => 5,
|
||||
"download_retries" => 4,
|
||||
"download_queue_db_path" => File.expand_path "~/mango/queue.db",
|
||||
home: true
|
||||
}
|
||||
@[YAML::Field(ignore: true)]
|
||||
@mangadex_defaults = {
|
||||
"base_url" => "https://mangadex.org",
|
||||
"api_url" => "https://mangadex.org/api",
|
||||
"download_wait_seconds" => 5,
|
||||
"download_retries" => 4,
|
||||
"download_queue_db_path" => File.expand_path("~/mango/queue.db",
|
||||
home: true),
|
||||
}
|
||||
|
||||
def self.load(path : String?)
|
||||
path = "~/.config/mango/config.yml" if path.nil?
|
||||
cfg_path = File.expand_path path, home: true
|
||||
if File.exists? cfg_path
|
||||
config = self.from_yaml File.read cfg_path
|
||||
config.fill_defaults
|
||||
return config
|
||||
end
|
||||
puts "The config file #{cfg_path} does not exist." \
|
||||
" Do you want mango to dump the default config there? [Y/n]"
|
||||
input = gets
|
||||
if input && input.downcase == "n"
|
||||
abort "Aborting..."
|
||||
end
|
||||
default = self.allocate
|
||||
default.fill_defaults
|
||||
cfg_dir = File.dirname cfg_path
|
||||
unless Dir.exists? cfg_dir
|
||||
Dir.mkdir_p cfg_dir
|
||||
end
|
||||
File.write cfg_path, default.to_yaml
|
||||
puts "The config file has been created at #{cfg_path}."
|
||||
default
|
||||
end
|
||||
def self.load(path : String?)
|
||||
path = "~/.config/mango/config.yml" if path.nil?
|
||||
cfg_path = File.expand_path path, home: true
|
||||
if File.exists? cfg_path
|
||||
config = self.from_yaml File.read cfg_path
|
||||
config.fill_defaults
|
||||
return config
|
||||
end
|
||||
puts "The config file #{cfg_path} does not exist." \
|
||||
" Do you want mango to dump the default config there? [Y/n]"
|
||||
input = gets
|
||||
if input && input.downcase == "n"
|
||||
abort "Aborting..."
|
||||
end
|
||||
default = self.allocate
|
||||
default.fill_defaults
|
||||
cfg_dir = File.dirname cfg_path
|
||||
unless Dir.exists? cfg_dir
|
||||
Dir.mkdir_p cfg_dir
|
||||
end
|
||||
File.write cfg_path, default.to_yaml
|
||||
puts "The config file has been created at #{cfg_path}."
|
||||
default
|
||||
end
|
||||
|
||||
def fill_defaults
|
||||
{% for hash_name in ["mangadex"] %}
|
||||
@{{hash_name.id}}_defaults.map do |k, v|
|
||||
if @{{hash_name.id}}[k]?.nil?
|
||||
@{{hash_name.id}}[k] = v
|
||||
end
|
||||
end
|
||||
{% end %}
|
||||
end
|
||||
def fill_defaults
|
||||
{% for hash_name in ["mangadex"] %}
|
||||
@{{hash_name.id}}_defaults.map do |k, v|
|
||||
if @{{hash_name.id}}[k]?.nil?
|
||||
@{{hash_name.id}}[k] = v
|
||||
end
|
||||
end
|
||||
{% end %}
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user