Added 3D Preview URL property to CSMScreenshot
This commit is contained in:
parent
d07d556756
commit
f31f99b740
|
@ -47,3 +47,22 @@ import Foundation
|
||||||
self.init(status: status, cached: cached, imageURL: imageURL, previewURL: previewURL, error: error)
|
self.init(status: status, cached: cached, imageURL: imageURL, previewURL: previewURL, error: error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension CSMScreenshot {
|
||||||
|
var preview3D: String? {
|
||||||
|
let regex = "(?:https:\\/\\/s1.cs.money\\/)([A-Za-z0-9_\\-]{7})"
|
||||||
|
guard let imageURL = self.imageURL else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
let idNsRange = NSRange(location: 0, length: imageURL.utf16.count)
|
||||||
|
do {
|
||||||
|
let expression = try NSRegularExpression(pattern: regex)
|
||||||
|
let firstMatch = expression.firstMatch(in: imageURL, options: [], range: idNsRange)
|
||||||
|
guard let nsRange = firstMatch?.range(at: 1),
|
||||||
|
let range = Range(nsRange, in: imageURL) else { return nil }
|
||||||
|
return "https://3d.cs.money/item/\(imageURL[range])"
|
||||||
|
} catch {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -57,4 +57,26 @@ final class CSFloatKitTests: XCTestCase {
|
||||||
XCTAssertNotNil(screenshot)
|
XCTAssertNotNil(screenshot)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testPreview3D() {
|
||||||
|
let exp = expectation(description: "CSM Screenshot")
|
||||||
|
var previewURL: String?
|
||||||
|
guard let config = CSMConfiguration(inspectLink: "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561199043158336A20517916623D14133434752320963923") else {
|
||||||
|
XCTFail("Invalid inspect link for CSM Service")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let request = CSMRequester(configuration: config, completion: { (fetchedScreenshot, error) in
|
||||||
|
XCTAssertEqual(error, .noError)
|
||||||
|
XCTAssertNotNil(fetchedScreenshot)
|
||||||
|
guard let actualScreenshot = fetchedScreenshot else { return }
|
||||||
|
previewURL = actualScreenshot.preview3D
|
||||||
|
XCTAssertEqual(previewURL, "https://3d.cs.money/item/TWXUyFZ")
|
||||||
|
exp.fulfill()
|
||||||
|
})
|
||||||
|
request.start()
|
||||||
|
|
||||||
|
waitForExpectations(timeout: 10) { (error) in
|
||||||
|
XCTAssertNotNil(previewURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue