Can loop over objects

This commit is contained in:
Justin Edmund 2025-03-06 15:07:07 -08:00
parent 0d2f1f2a31
commit fc16d72c81

View file

@ -103,6 +103,19 @@ class Dataminer
response response
end end
# Public batch processing methods
def fetch_all_characters
process_all_records('Character')
end
def fetch_all_weapons
process_all_records('Weapon')
end
def fetch_all_summons
process_all_records('Summon')
end
private private
def format_cookies def format_cookies
@ -176,5 +189,41 @@ class Dataminer
puts "Error updating #{model_name} #{granblue_id}: #{e.message}" puts "Error updating #{model_name} #{granblue_id}: #{e.message}"
end end
def process_all_records(model_name)
model = Object.const_get(model_name)
total = model.count
success_count = 0
error_count = 0
puts "Starting to fetch #{total} #{model_name.downcase}s..."
model.find_each do |record|
puts "\nProcessing #{model_name} #{record.granblue_id} (#{success_count + error_count + 1}/#{total})"
response = case model_name
when 'Character'
fetch_character(record.granblue_id)
when 'Weapon'
fetch_weapon(record.granblue_id)
when 'Summon'
fetch_summon(record.granblue_id)
end
success_count += 1
puts "Successfully processed #{model_name} #{record.granblue_id}"
# Add a small delay to avoid overwhelming the server
sleep(1)
rescue StandardError => e
error_count += 1
puts "Error processing #{model_name} #{record.granblue_id}: #{e.message}"
end
puts "\nProcessing complete!"
puts "Total: #{total}"
puts "Successful: #{success_count}"
puts "Failed: #{error_count}"
end
class AuthenticationError < StandardError; end class AuthenticationError < StandardError; end
end end