mirror of
https://github.com/yJason/ClashX-Dashboard.git
synced 2026-03-01 00:35:19 +08:00
init
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ProxyItemData.swift
|
||||
// ClashX Dashboard
|
||||
//
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
import SwiftUI
|
||||
|
||||
class ProxyItemData: NSObject, ObservableObject {
|
||||
let id: String
|
||||
@objc let name: ClashProxyName
|
||||
let type: ClashProxyType
|
||||
let udpString: String
|
||||
let tfo: Bool
|
||||
let all: [ClashProxyName]
|
||||
|
||||
var delay: Int {
|
||||
didSet {
|
||||
switch delay {
|
||||
case 0:
|
||||
delayString = NSLocalizedString("fail", comment: "")
|
||||
default:
|
||||
delayString = "\(delay) ms"
|
||||
}
|
||||
|
||||
let httpsTest = true
|
||||
|
||||
switch delay {
|
||||
case 0:
|
||||
delayColor = .gray
|
||||
case ..<200 where !httpsTest:
|
||||
delayColor = .green
|
||||
case ..<800 where httpsTest:
|
||||
delayColor = .green
|
||||
case 200..<500 where !httpsTest:
|
||||
delayColor = .yellow
|
||||
case 800..<1500 where httpsTest:
|
||||
delayColor = .yellow
|
||||
default:
|
||||
delayColor = .orange
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Published var delayString = ""
|
||||
@Published var delayColor = Color.clear
|
||||
|
||||
init(clashProxy: ClashProxy) {
|
||||
id = clashProxy.id
|
||||
name = clashProxy.name
|
||||
type = clashProxy.type
|
||||
tfo = clashProxy.tfo
|
||||
all = clashProxy.all ?? []
|
||||
|
||||
|
||||
udpString = {
|
||||
if clashProxy.udp {
|
||||
return "UDP"
|
||||
} else if clashProxy.xudp {
|
||||
return "XUDP"
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}()
|
||||
|
||||
delay = 0
|
||||
super.init()
|
||||
defer {
|
||||
delay = clashProxy.history.last?.meanDelay ?? clashProxy.history.last?.delay ?? 0
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user