aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/Server.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-02-05 22:27:17 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-02-05 22:27:17 +0100
commit45829daa856b376b1ab04d415917110b71b1dec5 (patch)
tree8e52daed6897b6f489d455736fe256cb9bd90fef /Hotline/Models/Server.swift
parent5c3ea897d062a47bc8cd6255fb8c36bad2f0733f (diff)
Apply formatting
Diffstat (limited to 'Hotline/Models/Server.swift')
-rw-r--r--Hotline/Models/Server.swift25
1 files changed, 15 insertions, 10 deletions
diff --git a/Hotline/Models/Server.swift b/Hotline/Models/Server.swift
index 3f4c9e8..a3e3dde 100644
--- a/Hotline/Models/Server.swift
+++ b/Hotline/Models/Server.swift
@@ -4,14 +4,18 @@ struct Server: Codable {
var name: String?
var description: String?
var users: Int
-
+
var address: String
var port: Int
var login: String
var password: String
var autoconnect: Bool = false
-
- init(name: String?, description: String?, address: String, port: Int = HotlinePorts.DefaultServerPort, users: Int = 0, login: String? = nil, password: String? = nil, autoconnect: Bool? = false) {
+
+ init(
+ name: String?, description: String?, address: String,
+ port: Int = HotlinePorts.DefaultServerPort, users: Int = 0, login: String? = nil,
+ password: String? = nil, autoconnect: Bool? = false
+ ) {
self.name = name
self.description = description
self.address = address.lowercased()
@@ -21,27 +25,27 @@ struct Server: Codable {
self.password = password ?? ""
self.autoconnect = autoconnect ?? false
}
-
+
init?(url: URL) {
guard url.scheme?.lowercased() == "hotline" else {
return nil
}
-
+
guard let host = url.host(percentEncoded: false) else {
return nil
}
-
+
self.name = nil
self.description = nil
self.users = 0
-
+
self.address = host.lowercased()
self.port = url.port ?? HotlinePorts.DefaultServerPort
-
+
self.login = url.user(percentEncoded: false) ?? ""
self.password = url.password(percentEncoded: false) ?? ""
}
-
+
static func parseServerAddressAndPort(_ address: String) -> (String, Int) {
let url = URL(string: "hotline://\(address)")
let port = url?.port ?? HotlinePorts.DefaultServerPort
@@ -56,7 +60,8 @@ extension Server: Identifiable {
extension Server: Equatable {
static func == (lhs: Server, rhs: Server) -> Bool {
- return (lhs.address == rhs.address) && (lhs.port == rhs.port) && (lhs.login == rhs.login) && (lhs.password == rhs.password)
+ return (lhs.address == rhs.address) && (lhs.port == rhs.port) && (lhs.login == rhs.login)
+ && (lhs.password == rhs.password)
}
}