diff --git a/src/invidious.cr b/src/invidious.cr index 39587989c..19ecd4c0f 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -15,10 +15,29 @@ # along with this program. If not, see . require "kemal" +require "option_parser" require "pg" require "xml" require "./helpers" +threads = 10 + +OptionParser.parse! do |parser| + parser.banner = "Usage: invidious [arguments]" + parser.on("-t THREADS", "--threads=THREADS", "Number of threads for crawling") do |number| + begin + threads = number.to_i32 + rescue ex + puts "THREADS must be integer" + exit + end + end + parser.on("-h", "--help", "Show this help") do + puts parser + exit + end +end + PG_DB = DB.open "postgres://kemal:kemal@localhost:5432/invidious" URL = URI.parse("https://www.youtube.com") CONTEXT = OpenSSL::SSL::Context::Client.new @@ -36,7 +55,7 @@ POOL = Deque.new(30) do end # Refresh pool by crawling YT -10.times do +threads.times do spawn do io = STDOUT ids = Deque(String).new