Replace NEKit dependency with reduced subset

This commit is contained in:
relikd
2020-03-24 21:12:58 +01:00
parent 2473e77519
commit cbec3981bb
103 changed files with 24996 additions and 264 deletions

View File

@@ -0,0 +1,57 @@
import Foundation
public class HTTPURL {
public let scheme: String?
public let host: String?
public let port: Int?
// public let path: String
public let relativePath: String
// swiftlint:disable:next force_try
static let urlreg = try! NSRegularExpression(pattern: "^(?:(?:(https?):\\/\\/)?([\\w\\.-]+)(?::(\\d+))?)?(?:\\/(.*))?$", options: NSRegularExpression.Options.caseInsensitive)
init?(string url: String) {
let nsurl = url as NSString
guard let result = HTTPURL.urlreg.firstMatch(in: url, range: NSRange(location: 0, length: nsurl.length)) else {
return nil
}
guard result.numberOfRanges == 5 else {
return nil
}
guard result.range(at: 0).location != NSNotFound else {
return nil
}
var range = result.range(at: 1)
if range.location != NSNotFound {
scheme = nsurl.substring(with: range)
} else {
scheme = nil
}
range = result.range(at: 2)
if range.location != NSNotFound {
host = nsurl.substring(with: range)
} else {
host = nil
}
range = result.range(at: 3)
if range.location != NSNotFound {
port = Int(nsurl.substring(with: range))
} else {
port = nil
}
range = result.range(at: 4)
if range.location != NSNotFound {
relativePath = nsurl.substring(with: range)
} else {
relativePath = ""
}
}
}