From e253c8b55832d4e7f8d51e5535b324c8c7936c08 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 12 Feb 2025 21:37:05 -0800 Subject: feat(CharacterFetcher): Track raw name and affiliation --- HoloBar/Character.swift | 2 ++ HoloBar/CharacterFetcher.swift | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/HoloBar/Character.swift b/HoloBar/Character.swift index 39a705d..d16b133 100644 --- a/HoloBar/Character.swift +++ b/HoloBar/Character.swift @@ -5,4 +5,6 @@ struct Character: Identifiable { let name: String let profileURL: URL let avatarURL: URL + let rawName: String + let affiliation: String } diff --git a/HoloBar/CharacterFetcher.swift b/HoloBar/CharacterFetcher.swift index 05e8c62..7ba6854 100644 --- a/HoloBar/CharacterFetcher.swift +++ b/HoloBar/CharacterFetcher.swift @@ -48,7 +48,9 @@ class CharacterFetcher: ObservableObject { Character( name: name, profileURL: profileURL, - avatarURL: profileURL // Avatar URLs are fetched in ``fetchAffiliations`` + avatarURL: profileURL, // Avatar URLs are fetched in ``fetchAffiliations`` + rawName: name, + affiliation: "" ) ) } @@ -56,7 +58,16 @@ class CharacterFetcher: ObservableObject { } catch { let blankURL = URL(string: "#")! - fetchedCharacters.append(Character(name: "Error parsing HTML", profileURL: blankURL, avatarURL: blankURL)) + fetchedCharacters + .append( + Character( + name: "Error parsing HTML", + profileURL: blankURL, + avatarURL: blankURL, + rawName: "", + affiliation: "" + ) + ) } return fetchedCharacters @@ -91,7 +102,9 @@ class CharacterFetcher: ObservableObject { name: "\(character.name) (\(affiliation))", profileURL: character.profileURL, avatarURL: (try? document.select("#left img").first()?.attr("data-src")) - .flatMap { URL(string: $0) } ?? character.avatarURL + .flatMap { URL(string: $0) } ?? character.avatarURL, + rawName: character.name, + affiliation: affiliation ) ) } else { -- cgit v1.2.3