generalize disabled page check
This commit is contained in:
@@ -103,17 +103,12 @@ class Domain::Fa::Job::FavsJob < Domain::Fa::Job::Base
|
||||
)
|
||||
end
|
||||
|
||||
page = Domain::Fa::Parser::Page.new(response.body)
|
||||
if response.body =~ /User ".+" was not found in our database./
|
||||
@user.state = :scan_error
|
||||
@user.state_detail ||= {}
|
||||
@user.state_detail["scan_error"] = "(favs scan) user has disabled account, see last_favs_page_id"
|
||||
@user.state_detail["last_favs_page_id"] = response.log_entry.id
|
||||
@user.save!
|
||||
logger.error("account disabled, abort")
|
||||
if Domain::Fa::Job::ScanUserUtils.user_disabled_or_not_found?(@user, response)
|
||||
logger.error("account disabled / not found, abort")
|
||||
return :stop
|
||||
end
|
||||
|
||||
page = Domain::Fa::Parser::Page.new(response.body)
|
||||
fatal_error("not a favs listing page") unless page.probably_listings_page?
|
||||
submissions = page.submissions_parsed
|
||||
@page_id = page.favorites_next_button_id
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
module Domain::Fa::Job
|
||||
class ScanUserUtils
|
||||
DISABLED_PAGE_PATTERNS = [
|
||||
/User ".+" has voluntarily disabled access/,
|
||||
/User ".+" was not found in our database./,
|
||||
/The page you are trying to reach is currently pending deletion/,
|
||||
]
|
||||
|
||||
def self.user_disabled_or_not_found?(user, response)
|
||||
if DISABLED_PAGE_PATTERNS.any? { |pattern| response.body =~ pattern }
|
||||
user.state = :scan_error
|
||||
user.state_detail ||= {}
|
||||
user.state_detail["scan_error"] = "account disabled or not found, see last_scanned_page_id"
|
||||
user.state_detail["last_scanned_page_id"] = response.log_entry.id
|
||||
user.save!
|
||||
true
|
||||
else
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def self.check_disabled_or_not_found(user, response)
|
||||
if response.status_code != 200
|
||||
return [:fatal, {
|
||||
|
||||
@@ -69,34 +69,17 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
|
||||
if response.status_code != 200
|
||||
fatal_error("http #{response.status_code}, log entry #{response.log_entry.id}")
|
||||
end
|
||||
|
||||
if Domain::Fa::Job::ScanUserUtils.user_disabled_or_not_found?(@user, response)
|
||||
logger.error("account disabled / not found, abort")
|
||||
return :break
|
||||
end
|
||||
|
||||
page = Domain::Fa::Parser::Page.new(response.body)
|
||||
|
||||
# newly instantiated users don't have a name yet, but can derive it from the gallery page
|
||||
@user.name ||= page.user_page.name || @user.url_name
|
||||
|
||||
if !page.probably_listings_page?
|
||||
if response.body =~ /has voluntarily disabled access/
|
||||
@user.state = :scan_error
|
||||
@user.state_detail ||= {}
|
||||
@user.state_detail["scan_error"] = "(gallery scan) user has disabled account, see last_gallery_page_id"
|
||||
@user.state_detail["last_gallery_page_id"] = response.log_entry.id
|
||||
@user.save!
|
||||
logger.error("account disabled, abort")
|
||||
return :break
|
||||
end
|
||||
|
||||
if response.body =~ /The username "(.+)" could not be found./ || response.body =~ /The page you are trying to reach is currently pending deletion/
|
||||
@user.state = :scan_error
|
||||
@user.state_detail = {
|
||||
scan_error: "(gallery scan) user was not found, see last_gallery_page_id",
|
||||
last_gallery_page_id: response.log_entry.id,
|
||||
}
|
||||
@user.save!
|
||||
logger.error("not found, abort")
|
||||
return :break
|
||||
end
|
||||
end
|
||||
|
||||
listing_page_stats = update_and_enqueue_posts_from_listings_page(
|
||||
:gallery_page, page, response.log_entry,
|
||||
enqueue_posts_pri: :low,
|
||||
|
||||
Reference in New Issue
Block a user