23 lines
1.0 KiB
Swift
23 lines
1.0 KiB
Swift
|
public class WMFCaptcha: NSObject {
|
||
|
@objc public let captchaID: String
|
||
|
@objc public let captchaURL: URL
|
||
|
@objc public init(captchaID:String, captchaURL:URL) {
|
||
|
self.captchaID = captchaID
|
||
|
self.captchaURL = captchaURL
|
||
|
}
|
||
|
static public func captcha(from requests: [[String : AnyObject]]) -> WMFCaptcha? {
|
||
|
guard
|
||
|
let captchaAuthenticationRequest = requests.first(where: {$0["id"]! as! String == "CaptchaAuthenticationRequest"}),
|
||
|
let fields = captchaAuthenticationRequest["fields"] as? [String : AnyObject],
|
||
|
let captchaId = fields["captchaId"] as? [String : AnyObject],
|
||
|
let captchaInfo = fields["captchaInfo"] as? [String : AnyObject],
|
||
|
let captchaIdValue = captchaId["value"] as? String,
|
||
|
let captchaInfoValue = captchaInfo["value"] as? String,
|
||
|
let captchaURL = URL(string: captchaInfoValue)
|
||
|
else {
|
||
|
return nil
|
||
|
}
|
||
|
return WMFCaptcha(captchaID: captchaIdValue, captchaURL: captchaURL)
|
||
|
}
|
||
|
}
|