summaryrefslogtreecommitdiffstats
path: root/src/invidious.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/invidious.cr')
-rw-r--r--src/invidious.cr22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index af36e25c..1b8be67e 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -107,7 +107,8 @@ LOCALES = {
YT_POOL = QUICPool.new(YT_URL, capacity: CONFIG.pool_size, timeout: 2.0)
config = CONFIG
-logger = Invidious::LogHandler.new
+output = STDOUT
+loglvl = LogLevel::Debug
Kemal.config.extra_options do |parser|
parser.banner = "Usage: invidious [arguments]"
@@ -127,11 +128,14 @@ Kemal.config.extra_options do |parser|
exit
end
end
- parser.on("-o OUTPUT", "--output=OUTPUT", "Redirect output (default: STDOUT)") do |output|
- FileUtils.mkdir_p(File.dirname(output))
- logger = Invidious::LogHandler.new(File.open(output, mode: "a"))
+ parser.on("-o OUTPUT", "--output=OUTPUT", "Redirect output (default: STDOUT)") do |output_arg|
+ FileUtils.mkdir_p(File.dirname(output_arg))
+ output = File.open(output_arg, mode: "a")
end
- parser.on("-v", "--version", "Print version") do |output|
+ parser.on("-l LEVEL", "--log-level=LEVEL", "Log level, one of #{LogLevel.values} (default: #{loglvl})") do |loglvl_arg|
+ loglvl = LogLevel.parse(loglvl_arg)
+ end
+ parser.on("-v", "--version", "Print version") do
puts SOFTWARE.to_pretty_json
exit
end
@@ -139,6 +143,8 @@ end
Kemal::CLI.new ARGV
+logger = Invidious::LogHandler.new(output, loglvl)
+
# Check table integrity
if CONFIG.check_tables
check_enum(PG_DB, logger, "privacy", PlaylistPrivacy)
@@ -1505,7 +1511,7 @@ post "/feed/webhook/:token" do |env|
signature = env.request.headers["X-Hub-Signature"].lchop("sha1=")
if signature != OpenSSL::HMAC.hexdigest(:sha1, HMAC_KEY, body)
- logger.puts("#{token} : Invalid signature")
+ logger.error("/feed/webhook/#{token} : Invalid signature")
env.response.status_code = 200
next
end
@@ -1877,14 +1883,14 @@ get "/api/v1/storyboards/:id" do |env|
storyboard[:storyboard_count].times do |i|
url = storyboard[:url]
authority = /(i\d?).ytimg.com/.match(url).not_nil![1]?
- url = storyboard[:url].gsub("$M", i).gsub(%r(https://i\d?.ytimg.com/sb/), "")
+ url = url.gsub("$M", i).gsub(%r(https://i\d?.ytimg.com/sb/), "")
url = "#{HOST_URL}/sb/#{authority}/#{url}"
storyboard[:storyboard_height].times do |j|
storyboard[:storyboard_width].times do |k|
str << <<-END_CUE
#{start_time}.000 --> #{end_time}.000
- #{url}#xywh=#{storyboard[:width] * k},#{storyboard[:height] * j},#{storyboard[:width]},#{storyboard[:height]}
+ #{url}#xywh=#{storyboard[:width] * k},#{storyboard[:height] * j},#{storyboard[:width] - 2},#{storyboard[:height]}
END_CUE