From 04c03fa4e614c157928765bed0c4460155f5542f Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 16 Mar 2022 17:17:50 -0500 Subject: [PATCH] artist: normalize more artist url formats. --- app/models/artist.rb | 6 ++---- script/fixes/106_normalize_artist_urls.rb | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100755 script/fixes/106_normalize_artist_urls.rb diff --git a/app/models/artist.rb b/app/models/artist.rb index 01845410d..011ed43b0 100644 --- a/app/models/artist.rb +++ b/app/models/artist.rb @@ -65,10 +65,8 @@ class Artist < ApplicationRecord class_methods do # Find all artist URLs matching `regex`, and replace the `from` regex with the `to` string. def rewrite_urls(regex, from, to) - Artist.transaction do - Artist.joins(:urls).where_regex("artist_urls.url", regex).find_each do |artist| - artist.update!(url_string: artist.url_string.gsub(from, to)) - end + Artist.joins(:urls).where_regex("artist_urls.url", regex).find_each do |artist| + artist.update!(url_string: artist.url_string.gsub(from, to)) end end end diff --git a/script/fixes/106_normalize_artist_urls.rb b/script/fixes/106_normalize_artist_urls.rb new file mode 100755 index 000000000..49b2eba68 --- /dev/null +++ b/script/fixes/106_normalize_artist_urls.rb @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby + +require_relative "base" + +CurrentUser.scoped(User.system, "127.0.0.1") do + Artist.rewrite_urls('^http://www\.artstation\.com', %r{^http://www\.artstation\.com}, 'https://www.artstation.com') + Artist.rewrite_urls('^http://www\.artstation\.com', %r{^-http://www\.artstation\.com}, '-https://www.artstation.com') + Artist.rewrite_urls('^https://www\.artstation\.com/artist', %r{https://www\.artstation\.com/artist/([a-zA-Z0-9_.-]+)/?$}, 'https://www.artstation.com/\1') + Artist.rewrite_urls('^https?://[^.]+\.artstation\.com/?$', %r{https?://([a-zA-Z0-9_.-]+)\.artstation\.com/?$}, 'https://www.artstation.com/\1') + + Artist.rewrite_urls('^https?://[^.]+\.deviantart\.com/?$', %r{https?://([a-zA-Z0-9_.-]+)\.deviantart\.com/?$}, 'https://www.deviantart.com/\1') + + Artist.rewrite_urls('^https?://[^.]+\.fanbox\.cc/?$', %r{https?://([^.]+)\.fanbox\.cc/?$}, 'https://\1.fanbox.cc') + + Artist.rewrite_urls('^http://fantia\.jp', %r{^http://fantia\.jp}, 'https://fantia.jp') + Artist.rewrite_urls('^http://fantia\.jp', %r{^-http://fantia\.jp}, '-https://fantia.jp') + + Artist.rewrite_urls('^https?://[^.]+\.lofter\.com/?$', %r{https?://([^.]+)\.lofter\.com/?$}, 'https://\1.lofter.com') + + Artist.rewrite_urls('^http://pawoo\.net', %r{^http://pawoo\.net}, 'https://pawoo.net') + Artist.rewrite_urls('^http://pawoo\.net', %r{^-http://pawoo\.net}, '-https://pawoo.net') +end