From 2bf04aff489b0ce172ec33686f492deb649adbde Mon Sep 17 00:00:00 2001 From: Felipe <41008398+StrawberryMaster@users.noreply.github.com> Date: Sun, 27 Jul 2025 17:18:57 +0000 Subject: [PATCH] Sanitize base_url and directory parameters this might be the cause of #25, at least from what it appears --- lib/wayback_machine_downloader.rb | 6 +++--- lib/wayback_machine_downloader/archive_api.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/wayback_machine_downloader.rb b/lib/wayback_machine_downloader.rb index 0f607ac..17eb954 100644 --- a/lib/wayback_machine_downloader.rb +++ b/lib/wayback_machine_downloader.rb @@ -133,10 +133,11 @@ class WaybackMachineDownloader def initialize params validate_params(params) - @base_url = params[:base_url] + @base_url = params[:base_url]&.tidy_bytes @exact_url = params[:exact_url] if params[:directory] - @directory = File.expand_path(params[:directory]) + sanitized_dir = params[:directory].tidy_bytes + @directory = File.expand_path(sanitized_dir) else @directory = nil end @@ -694,7 +695,6 @@ class WaybackMachineDownloader file_timestamp = file_remote_info[:timestamp] # sanitize file_id to ensure it is a valid path component - file_id = file_id.tidy_bytes if file_id raw_path_elements = file_id.split('/') sanitized_path_elements = raw_path_elements.map do |element| diff --git a/lib/wayback_machine_downloader/archive_api.rb b/lib/wayback_machine_downloader/archive_api.rb index 40d8ecd..61615d7 100644 --- a/lib/wayback_machine_downloader/archive_api.rb +++ b/lib/wayback_machine_downloader/archive_api.rb @@ -25,7 +25,7 @@ module ArchiveAPI # Check if the response contains the header ["timestamp", "original"] json.shift if json.first == ["timestamp", "original"] json - rescue JSON::ParserError, StandardError => e + rescue JSON::ParserError => e warn "Failed to fetch data from API: #{e.message}" [] end