emails: move EmailValidator into Danbooru::EmailAddress.

This commit is contained in:
evazion
2022-10-17 20:13:59 -05:00
parent 9ea2c34f17
commit e31977ac29
9 changed files with 363 additions and 380 deletions

View File

@@ -77,7 +77,7 @@ with_confirmation do
address = address.downcase.gsub(/^(.*)\1$/i, '\1') if address.downcase.match?(/^(.*)\1$/i) # Foo@gmail.comfoo@gmail.com -> foo@gmail.com
address = address.downcase.gsub(/^(.*)@\1@[a-zA-Z]+\.com$/i, '\1') if address.downcase.match?(/^(.*)@\1@[a-zA-Z]+\.com$/i) # foo@foo@gmail.com -> foo@gmail.com
normalized_address = EmailValidator.normalize(address)
normalized_address = Danbooru::EmailAddress.parse(address)&.canonicalized_address&.to_s
dupe_emails = EmailAddress.where(normalized_address: normalized_address).excluding(email)
if dupe_emails.present?
puts "#{old_address.ljust(40, " ")} DELETE (#{dupe_emails.map { "#{_1.user.name}##{_1.user.id}" }.join(", ")}, #{email.user.name}##{email.user.id})"

View File

@@ -4,7 +4,7 @@ require_relative "base"
with_confirmation do
emails = EmailAddress.find_each do |email|
normalized_address = EmailValidator.normalize(email.address)
normalized_address = Danbooru::EmailAddress.new(email.address).canonicalized_address.to_s
if email.normalized_address != normalized_address
dupe_emails = EmailAddress.where(normalized_address: normalized_address).joins(:user).to_a

View File

@@ -5,8 +5,8 @@ require_relative "base"
with_confirmation do
EmailAddress.find_each do |email|
old_address = email.address.to_s
fixed_address = Danbooru::EmailAddress.normalize(old_address).to_s
normalized_address = EmailValidator.normalize(fixed_address)
fixed_address = Danbooru::EmailAddress.correct(old_address).to_s
normalized_address = Danbooru::EmailAddress.new(fixed_address).canonicalized_address.to_s
next if old_address == fixed_address