Class: W4bFile::CLI
- Inherits:
-
Object
- Object
- W4bFile::CLI
- Defined in:
- lib/w4b-file/cli.rb
Class Method Summary collapse
- .check_files(type, scanner, url) ⇒ Object
- .display_files(files, type, base_url) ⇒ Object
- .run_checks(check_type, scanner, website_url) ⇒ Object
- .start ⇒ Object
Class Method Details
.check_files(type, scanner, url) ⇒ Object
71 72 73 74 75 |
# File 'lib/w4b-file/cli.rb', line 71 def self.check_files(type, scanner, url) resources = scanner.scan_website files = resources.grep(/\.(#{type})$/i) files end |
.display_files(files, type, base_url) ⇒ Object
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/w4b-file/cli.rb', line 77 def self.display_files(files, type, base_url) return if files.empty? puts "[+] #{type} files :" files.each do |file| display_url = URI.join(base_url, file).to_s puts " Link : #{display_url}" end puts end |
.run_checks(check_type, scanner, website_url) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/w4b-file/cli.rb', line 48 def self.run_checks(check_type, scanner, website_url) case check_type when "videos" files_found = check_files("mp4|avi", scanner, website_url) display_files(files_found, "Video", website_url) if !files_found.empty? when "images" files_found = check_files("jpg|jpeg|png", scanner, website_url) display_files(files_found, "Image", website_url) if !files_found.empty? when "zip" files_found = check_files("zip", scanner, website_url) display_files(files_found, "ZIP", website_url) if !files_found.empty? when "pdf" files_found = check_files("pdf", scanner, website_url) display_files(files_found, "PDF", website_url) if !files_found.empty? when "document" files_found = check_files("doc|docx|txt", scanner, website_url) display_files(files_found, "Document", website_url) if !files_found.empty? else puts "Invalid check type. Available options: videos, images, zip, pdf, document, --check hidden" exit 1 end end |
.start ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/w4b-file/cli.rb', line 6 def self.start = {} OptionParser.new do |opts| opts. = "Usage: w4b-file <website_url> [--check <file_type>]" opts.on("--check TYPE", "Specify the type of files to check") do |type| [:check_type] = type end opts.on("--check all", "Check and display all files on the website") do [:check_all] = true end opts.on("--check hidden", "Scan for hidden files on the website") do [:check_hidden] = true end end.parse! website_url = ARGV[0] check_type = [:check_type] if website_url.nil? puts "Usage: w4b-file <website_url> [--check <file_type>]" exit 1 end scanner = Scanner.new(website_url) if [:check_hidden] hidden_files = scanner.scan_hidden_files display_files(hidden_files, "Hidden", website_url) unless hidden_files.empty? elsif [:check_all] resources = scanner.scan_website display_files(resources, "All", website_url) unless resources.empty? elsif check_type run_checks(check_type, scanner, website_url) else puts "Invalid option. Please specify a valid option." exit 1 end end |