diff options
| author | Fuwn <[email protected]> | 2025-02-12 21:37:05 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-12 21:37:05 -0800 |
| commit | e253c8b55832d4e7f8d51e5535b324c8c7936c08 (patch) | |
| tree | a24ede42341e8adfc79f68126e9a92fac2526951 | |
| parent | docs(README): Update screenshot to include avatars (diff) | |
| download | holobar-e253c8b55832d4e7f8d51e5535b324c8c7936c08.tar.xz holobar-e253c8b55832d4e7f8d51e5535b324c8c7936c08.zip | |
feat(CharacterFetcher): Track raw name and affiliation
| -rw-r--r-- | HoloBar/Character.swift | 2 | ||||
| -rw-r--r-- | 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 { |