Update logic for downloaders
These are responsible for downloading variants (01, 02, etc)
This commit is contained in:
parent
db9be1aee9
commit
29c52469a3
3 changed files with 121 additions and 0 deletions
|
|
@ -3,8 +3,48 @@
|
||||||
module Granblue
|
module Granblue
|
||||||
module Downloader
|
module Downloader
|
||||||
class CharacterDownloader < BaseDownloader
|
class CharacterDownloader < BaseDownloader
|
||||||
|
def download
|
||||||
|
character = Character.find_by(granblue_id: @id)
|
||||||
|
return unless character
|
||||||
|
|
||||||
|
download_variants(character)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def download_variants(character)
|
||||||
|
# All characters have 01 and 02 variants
|
||||||
|
variants = ["#{@id}_01", "#{@id}_02"]
|
||||||
|
|
||||||
|
# Add FLB variant if available
|
||||||
|
variants << "#{@id}_03" if character.flb
|
||||||
|
|
||||||
|
# Add ULB variant if available
|
||||||
|
variants << "#{@id}_04" if character.ulb
|
||||||
|
|
||||||
|
log_info "Downloading character variants: #{variants.join(', ')}" if @verbose
|
||||||
|
|
||||||
|
variants.each do |variant_id|
|
||||||
|
download_variant(variant_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def download_variant(variant_id)
|
||||||
|
log_info "-> #{variant_id}" if @verbose
|
||||||
|
return if @test_mode
|
||||||
|
|
||||||
|
SIZES.each_with_index do |size, index|
|
||||||
|
path = download_path(size)
|
||||||
|
url = build_variant_url(variant_id, size)
|
||||||
|
process_download(url, size, path, last: index == SIZES.size - 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def build_variant_url(variant_id, size)
|
||||||
|
directory = directory_for_size(size)
|
||||||
|
"#{@base_url}/#{directory}/#{variant_id}.jpg"
|
||||||
|
end
|
||||||
|
|
||||||
def object_type
|
def object_type
|
||||||
'character'
|
'character'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,50 @@
|
||||||
module Granblue
|
module Granblue
|
||||||
module Downloader
|
module Downloader
|
||||||
class SummonDownloader < BaseDownloader
|
class SummonDownloader < BaseDownloader
|
||||||
|
def download
|
||||||
|
summon = Summon.find_by(granblue_id: @id)
|
||||||
|
return unless summon
|
||||||
|
|
||||||
|
download_variants(summon)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def download_variants(summon)
|
||||||
|
# All summons have base variant
|
||||||
|
variants = [@id]
|
||||||
|
|
||||||
|
# Add ULB variant if available
|
||||||
|
variants << "#{@id}_02" if summon.ulb
|
||||||
|
|
||||||
|
# Add Transcendence variants if available
|
||||||
|
if summon.transcendence
|
||||||
|
variants.push("#{@id}_03", "#{@id}_04")
|
||||||
|
end
|
||||||
|
|
||||||
|
log_info "Downloading summon variants: #{variants.join(', ')}" if @verbose
|
||||||
|
|
||||||
|
variants.each do |variant_id|
|
||||||
|
download_variant(variant_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def download_variant(variant_id)
|
||||||
|
log_info "-> #{variant_id}" if @verbose
|
||||||
|
return if @test_mode
|
||||||
|
|
||||||
|
SIZES.each_with_index do |size, index|
|
||||||
|
path = download_path(size)
|
||||||
|
url = build_variant_url(variant_id, size)
|
||||||
|
process_download(url, size, path, last: index == SIZES.size - 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def build_variant_url(variant_id, size)
|
||||||
|
directory = directory_for_size(size)
|
||||||
|
"#{@base_url}/#{directory}/#{variant_id}.jpg"
|
||||||
|
end
|
||||||
|
|
||||||
def object_type
|
def object_type
|
||||||
'summon'
|
'summon'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,47 @@
|
||||||
module Granblue
|
module Granblue
|
||||||
module Downloader
|
module Downloader
|
||||||
class WeaponDownloader < BaseDownloader
|
class WeaponDownloader < BaseDownloader
|
||||||
|
def download
|
||||||
|
weapon = Weapon.find_by(granblue_id: @id)
|
||||||
|
return unless weapon
|
||||||
|
|
||||||
|
download_variants(weapon)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def download_variants(weapon)
|
||||||
|
# All weapons have base variant
|
||||||
|
variants = [@id]
|
||||||
|
|
||||||
|
# Add transcendence variants if available
|
||||||
|
if weapon.transcendence
|
||||||
|
variants.push("#{@id}_02", "#{@id}_03")
|
||||||
|
end
|
||||||
|
|
||||||
|
log_info "Downloading weapon variants: #{variants.join(', ')}" if @verbose
|
||||||
|
|
||||||
|
variants.each do |variant_id|
|
||||||
|
download_variant(variant_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def download_variant(variant_id)
|
||||||
|
log_info "-> #{variant_id}" if @verbose
|
||||||
|
return if @test_mode
|
||||||
|
|
||||||
|
SIZES.each_with_index do |size, index|
|
||||||
|
path = download_path(size)
|
||||||
|
url = build_variant_url(variant_id, size)
|
||||||
|
process_download(url, size, path, last: index == SIZES.size - 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def build_variant_url(variant_id, size)
|
||||||
|
directory = directory_for_size(size)
|
||||||
|
"#{@base_url}/#{directory}/#{variant_id}.jpg"
|
||||||
|
end
|
||||||
|
|
||||||
def object_type
|
def object_type
|
||||||
'weapon'
|
'weapon'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue