Fixed some bugs and added quiet flag.

This commit is contained in:
2026-07-17 11:31:01 -06:00
parent dfd98c80db
commit ecea930edb
+41 -12
View File
@@ -7,6 +7,7 @@ urlTimeout = 1
includes = "" includes = ""
includesFlag = false includesFlag = false
debug = false debug = false
quiet = false
OptionParser.parse do |parser| OptionParser.parse do |parser|
parser.banner = "Usage: rete [arguments] [file/urls]" parser.banner = "Usage: rete [arguments] [file/urls]"
@@ -17,13 +18,16 @@ OptionParser.parse do |parser|
urlTimeout = timeout} urlTimeout = timeout}
parser.on("-f FILE", "--file=FILE", "Checks all urls in a txt file.") { |file| parser.on("-f FILE", "--file=FILE", "Checks all urls in a txt file.") { |file|
urls = File.read(file) urls = File.read(file)
checkUrlFromFile urls, output, urlTimeout.to_i, includesFlag, includes, debug checkUrlFromFile urls, output, urlTimeout.to_i, includesFlag, includes, debug, quiet
exit 0} exit 0}
parser.on("-o FILENAME", "--output=FILENAME", "Sets the name of the outputted file. -f flag required") {|filename| parser.on("-o FILENAME", "--output=FILENAME", "Sets the name of the outputted file. -f flag required") {|filename|
output = filename} output = filename}
parser.on("-v", "--version", "Displays current version of rete.") { parser.on("-v", "--version", "Displays current version of rete") {
puts "Rete 1.1 by koffee.zip" puts "Rete 1.1 by koffee.zip"
exit(0)} exit(0)}
parser.on("-q", "--quiet", "Prints out less info") do
quiet = true
end
parser.on("-d", "--debug", "Debug Mode") do parser.on("-d", "--debug", "Debug Mode") do
debug = true debug = true
puts "Debug mode enabled!" puts "Debug mode enabled!"
@@ -39,7 +43,7 @@ OptionParser.parse do |parser|
end end
end end
def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug) # Sorry for the crappy method name. def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug, quiet) # Sorry for the crappy method name.
repeat = 0 repeat = 0
working = 0 working = 0
notWorking = 0 notWorking = 0
@@ -62,6 +66,10 @@ def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug)
urls = content.split("\n") urls = content.split("\n")
if quiet
print "\n"
end
while repeat < urls.size while repeat < urls.size
begin begin
validUrl = Valid.url? urls[repeat] validUrl = Valid.url? urls[repeat]
@@ -86,39 +94,58 @@ def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug)
if includesFlag if includesFlag
if response.body.includes?(includes) if response.body.includes?(includes)
puts "#{urls[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}" if !quiet
puts "#{urls[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
end
File.open("#{output}", "a") do |file| File.open("#{output}", "a") do |file|
file.puts urls[repeat] file.puts urls[repeat]
end end
working += 1
else else
puts "#{urls[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}" if !quiet
puts "#{urls[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
end
notWorking += 1
end end
else else
puts "#{urls[repeat]} is a valid URL and works. Status code: #{response.status_code}" if !quiet
puts "#{urls[repeat]} is a valid URL and works. Status code: #{response.status_code}"
end
working += 1
File.open("#{output}", "a") do |file| File.open("#{output}", "a") do |file|
file.puts urls[repeat] file.puts urls[repeat]
end end
end end
else else
puts "#{urls[repeat]} is a valid URL but does not work. Status Code: #{response.status_code}" if !quiet
puts "#{urls[repeat]} is a valid URL but does not work. Status Code: #{response.status_code}"
end
notWorking += 1 notWorking += 1
end end
rescue rescue
puts "#{urls[repeat]} is a valid URL but does not exist." if !quiet
puts "#{urls[repeat]} is a valid URL but does not exist."
end
notWorking += 1 notWorking += 1
end end
else else
puts "#{urls[repeat]} is not a valid URL" if !quiet
puts "#{urls[repeat]} is not a valid URL."
end
notWorking += 1 notWorking += 1
end end
if quiet
print "\e[1A"
puts "#{repeat + 1}/#{urls.size} urls are done."
end
repeat += 1 repeat += 1
end end
puts "==============================" puts "=============================="
puts "Finished testing urls." puts "Finished testing urls."
puts "A total of #{repeat} url(s) were tested." puts "A total of #{urls.size} url(s) were tested."
puts "#{working}/#{repeat} url(s) were working." puts "#{working}/#{urls.size} url(s) were working."
puts "#{notWorking}/#{repeat} url(s) were not working." puts "#{notWorking}/#{urls.size} url(s) were not working."
exit 0 exit 0
end end
@@ -167,8 +194,10 @@ while repeat < ARGV.size
if includesFlag if includesFlag
if response.body.includes?(includes) if response.body.includes?(includes)
puts "#{ARGV[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}" puts "#{ARGV[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
working += 1
else else
puts "#{ARGV[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}" puts "#{ARGV[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
notWorking += 1
end end
else else
puts "#{ARGV[repeat]} is a valid URL and works. Status code: #{response.status_code}" puts "#{ARGV[repeat]} is a valid URL and works. Status code: #{response.status_code}"