From 1a9718250f4909fd29e05fa2a69e2d0765eedf09 Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 21 Nov 2022 17:41:15 -0600 Subject: [PATCH] replacements: strip spaces from replacement URL. Fix a handful of replacements having a replacement URL with a space in front or at the end. This caused problems when searching by replacement URL. --- app/logical/post_replacement_processor.rb | 2 +- script/fixes/130_fix_replacement_urls.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 script/fixes/130_fix_replacement_urls.rb diff --git a/app/logical/post_replacement_processor.rb b/app/logical/post_replacement_processor.rb index 3816b2e8d..6b7c1e207 100644 --- a/app/logical/post_replacement_processor.rb +++ b/app/logical/post_replacement_processor.rb @@ -27,7 +27,7 @@ class PostReplacementProcessor elsif Source::URL.page_url(image_url).present? canonical_url = image_url else - canonical_url = replacement.replacement_url + canonical_url = replacement.replacement_url.strip end replacement.replacement_url = canonical_url diff --git a/script/fixes/130_fix_replacement_urls.rb b/script/fixes/130_fix_replacement_urls.rb new file mode 100755 index 000000000..14e60e5c7 --- /dev/null +++ b/script/fixes/130_fix_replacement_urls.rb @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby + +require_relative "base" + +with_confirmation do + fix = ENV.fetch("FIX", "false").truthy? + + PostReplacement.where_regex(:replacement_url, "(^ )|( $)").find_each do |replacement| + replacement.replacement_url = replacement.replacement_url.strip + + replacement.save!(touch: false) if fix + puts ({ id: replacement.id, changes: replacement.changes }).to_json + end +end