aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-12 21:37:05 -0800
committerFuwn <[email protected]>2025-02-12 21:37:05 -0800
commite253c8b55832d4e7f8d51e5535b324c8c7936c08 (patch)
treea24ede42341e8adfc79f68126e9a92fac2526951
parentdocs(README): Update screenshot to include avatars (diff)
downloadholobar-e253c8b55832d4e7f8d51e5535b324c8c7936c08.tar.xz
holobar-e253c8b55832d4e7f8d51e5535b324c8c7936c08.zip
feat(CharacterFetcher): Track raw name and affiliation
-rw-r--r--HoloBar/Character.swift2
-rw-r--r--HoloBar/CharacterFetcher.swift19
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 {