aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/Hotline.swift
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2023-12-08 16:12:47 -0800
committerDustin Mierau <dustin@mierau.me>2023-12-08 16:13:03 -0800
commit84aaa9ef0a1be6986e38d7e4f58e07d3cb84979e (patch)
treec0b3a36f14295a921413b7db0f1b37c9ec10e715 /Hotline/Models/Hotline.swift
parent537ed932a4c8d639089f276e322de4e946b0d26b (diff)
Move tracker client to async/await. TrackerView uses Model now. Fix string encodings for MacRoman and japanese.
Diffstat (limited to 'Hotline/Models/Hotline.swift')
-rw-r--r--Hotline/Models/Hotline.swift16
1 files changed, 9 insertions, 7 deletions
diff --git a/Hotline/Models/Hotline.swift b/Hotline/Models/Hotline.swift
index 70f68a9..b83dc80 100644
--- a/Hotline/Models/Hotline.swift
+++ b/Hotline/Models/Hotline.swift
@@ -3,19 +3,21 @@ import SwiftUI
@Observable final class Hotline {
let trackerClient: HotlineTrackerClient
-
-
init(trackerClient: HotlineTrackerClient) {
self.trackerClient = trackerClient
}
- @MainActor func getServers(address: String, port: Int) async {
- let fetchedServers = await withCheckedContinuation { [weak self] continuation in
- self?.trackerClient.fetch() {
- continuation.resume(returning: [])
+ @MainActor func getServers(address: String, port: Int = Tracker.defaultPort) async -> [Server] {
+ let fetchedServers: [HotlineServer] = await self.trackerClient.fetchServers(address: address, port: port)
+
+ var servers: [Server] = []
+
+ for s in fetchedServers {
+ if let serverName = s.name {
+ servers.append(Server(name: serverName, description: s.description, address: s.address, port: Int(s.port), users: Int(s.users)))
}
}
-
+ return servers
}
}