diff --git a/src/config.cr b/src/config.cr index 91a6667..60c2e40 100644 --- a/src/config.cr +++ b/src/config.cr @@ -18,6 +18,7 @@ class Config home: true property plugin_path : String = File.expand_path "~/mango/plugins", home: true + property download_timeout_seconds : Int32 = 30 property mangadex = Hash(String, String | Int32).new @[YAML::Field(ignore: true)] diff --git a/src/util/proxy.cr b/src/util/proxy.cr index 26c8d5a..2325419 100644 --- a/src/util/proxy.cr +++ b/src/util/proxy.cr @@ -5,7 +5,7 @@ require "http_proxy" module HTTP class Client private def self.exec(uri : URI, tls : TLSContext = nil) - Logger.debug "Using monkey-patched HTTP::Client" + Logger.debug "Setting proxy" previous_def uri, tls do |client, path| client.set_proxy get_proxy uri yield client, path diff --git a/src/util/web.cr b/src/util/web.cr index 041e25e..1bd38ec 100644 --- a/src/util/web.cr +++ b/src/util/web.cr @@ -81,3 +81,15 @@ macro get_sort_opt sort_opt = SortOptions.new sort_method, is_ascending end end + +module HTTP + class Client + private def self.exec(uri : URI, tls : TLSContext = nil) + Logger.debug "Setting read timeout" + previous_def uri, tls do |client, path| + client.read_timeout = Config.current.download_timeout_seconds.seconds + yield client, path + end + end + end +end