From 03aeb27b4051e22b01a0bf435bf7ff388914a2be Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Sat, 3 Feb 2018 16:13:14 -0600 Subject: [PATCH] Add ability to specify number of threads --- src/invidious.cr | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/invidious.cr b/src/invidious.cr index 39587989..19ecd4c0 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