improve wiki import suggestions
- strip _note suffix from null element weapon IDs - look up weapon series by name to return UUID
This commit is contained in:
parent
9f2d9abdb5
commit
7e548109d6
1 changed files with 22 additions and 3 deletions
|
|
@ -105,7 +105,8 @@ module Granblue
|
||||||
suggestions = {}
|
suggestions = {}
|
||||||
suggestions[:name_en] = data['name'] if data['name'].present?
|
suggestions[:name_en] = data['name'] if data['name'].present?
|
||||||
suggestions[:name_jp] = data['jpname'] if data['jpname'].present?
|
suggestions[:name_jp] = data['jpname'] if data['jpname'].present?
|
||||||
suggestions[:granblue_id] = data['id'] if data['id'].present?
|
# Strip _note suffix from null element weapon IDs
|
||||||
|
suggestions[:granblue_id] = data['id'].sub(/_note\z/, '') if data['id'].present?
|
||||||
|
|
||||||
# Rarity
|
# Rarity
|
||||||
suggestions[:rarity] = Wiki.rarities[data['rarity']] if data['rarity'].present?
|
suggestions[:rarity] = Wiki.rarities[data['rarity']] if data['rarity'].present?
|
||||||
|
|
@ -143,8 +144,11 @@ module Granblue
|
||||||
# Max level based on rarity and uncap status
|
# Max level based on rarity and uncap status
|
||||||
suggestions[:max_level] = calculate_weapon_max_level(suggestions[:rarity], suggestions[:flb], suggestions[:ulb], suggestions[:transcendence])
|
suggestions[:max_level] = calculate_weapon_max_level(suggestions[:rarity], suggestions[:flb], suggestions[:ulb], suggestions[:transcendence])
|
||||||
|
|
||||||
# Series (e.g., "Revenant", "Optimus", etc.)
|
# Series - look up by name to get the ID
|
||||||
suggestions[:series] = data['series'] if data['series'].present?
|
if data['series'].present?
|
||||||
|
series = find_weapon_series_by_name(data['series'])
|
||||||
|
suggestions[:series] = series.id if series
|
||||||
|
end
|
||||||
|
|
||||||
# Dates
|
# Dates
|
||||||
suggestions[:release_date] = parse_date(data['release_date']) if data['release_date'].present?
|
suggestions[:release_date] = parse_date(data['release_date']) if data['release_date'].present?
|
||||||
|
|
@ -464,6 +468,21 @@ module Granblue
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Find a WeaponSeries by wiki name
|
||||||
|
# Converts names like "Revenant Weapons" or "Revenant" to slug "revenant"
|
||||||
|
def self.find_weapon_series_by_name(name)
|
||||||
|
return nil if name.blank?
|
||||||
|
|
||||||
|
# Convert wiki name to slug format
|
||||||
|
slug = name
|
||||||
|
.gsub(/\s*(Weapons?|Series)\s*$/i, '')
|
||||||
|
.strip
|
||||||
|
.downcase
|
||||||
|
.gsub(/\s+/, '-')
|
||||||
|
|
||||||
|
WeaponSeries.find_by(slug: slug)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue