|
@@ -12,9 +12,9 @@ import Alamofire
|
|
|
enum TSNeURLType:String {
|
|
|
|
|
|
case actionInfo = "/api/action/info" //查询生成过程接口
|
|
|
- case upload = "/api/upload" //上传图片
|
|
|
case config = "/api/ops/old-photo-config" //App配置
|
|
|
|
|
|
+ case upload = "/api/upload" //上传图片
|
|
|
case imageRewrite = "/api/image/rewrite" //图生图
|
|
|
case createVideo = "/api/video/create" //视频生成
|
|
|
case imageInpaint = "/api/image/inpaint" //图片涂抹
|
|
@@ -36,12 +36,27 @@ enum TSNeURLType:String {
|
|
|
///需要进行次数验证的接口
|
|
|
var validateURLTypeList : [TSNeURLType] {
|
|
|
[
|
|
|
+ .upload,
|
|
|
.imageRewrite,
|
|
|
.createVideo,
|
|
|
.imageInpaint,
|
|
|
- .removeBg
|
|
|
+ .removeBg,
|
|
|
+ .photoExpand
|
|
|
]
|
|
|
}
|
|
|
+
|
|
|
+ var isVideo:Bool{
|
|
|
+ switch self {
|
|
|
+ case .createVideo:
|
|
|
+ return true
|
|
|
+ default:
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var vipFreeNumType:VipFreeNumType {
|
|
|
+ isVideo ? .generalVideo : .general
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -56,7 +71,7 @@ enum TSNetWorkCode : Int {
|
|
|
case imageSensitive = -10004 //图生图敏感错误
|
|
|
case networkError = -1005 //网络错误
|
|
|
case generateTooMuch = -200 //单日生成次数过多
|
|
|
-
|
|
|
+ case generateToMax = -221211 //会员成次次数超限
|
|
|
var errorMsg:String {
|
|
|
switch self {
|
|
|
case .textSensitive,.imageSensitive:
|
|
@@ -65,6 +80,8 @@ enum TSNetWorkCode : Int {
|
|
|
return "No network, please check your network and try again.".localized
|
|
|
case .generateTooMuch:
|
|
|
return "We've detected unusually high generation activity. You may be a bot. Please try again tomorrow.".localized
|
|
|
+ case .generateToMax:
|
|
|
+ return "You have used all your video effect generations".localized
|
|
|
default:
|
|
|
return "Sorry there was a slight problem with the image processing, please try again later.".localized
|
|
|
}
|
|
@@ -119,8 +136,10 @@ enum TSNetWorkCode : Int {
|
|
|
return TSGeneratorView.Style.sensitiveError
|
|
|
case .networkError:
|
|
|
return TSGeneratorView.Style.netWorkError
|
|
|
-// case .generateTooMuch:
|
|
|
-// return TSGeneratorView.Style.generateTooMuch
|
|
|
+ case .generateTooMuch:
|
|
|
+ return TSGeneratorView.Style.generateTooMuch
|
|
|
+ case .generateToMax:
|
|
|
+ return TSGeneratorView.Style.generateTooMuch
|
|
|
default:
|
|
|
return TSGeneratorView.Style.generalError
|
|
|
}
|
|
@@ -223,11 +242,18 @@ extension TSNetworkManager {
|
|
|
responseType: T.Type? = nil,
|
|
|
completion: @escaping (Result<Any, Error>) -> Void
|
|
|
) -> Request? {
|
|
|
+ let vipFreeNumType:VipFreeNumType = urlType.vipFreeNumType
|
|
|
///需要校验。且需要判断是否超过最大次数
|
|
|
-// if urlType.needValidate,kPurchaseBusiness.isOverTotalTimes {
|
|
|
-// completion(.failure(NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue)))
|
|
|
-// return nil
|
|
|
-// }
|
|
|
+ if urlType.needValidate,urlType.isVideo,kPurchaseBusiness.isExceedsVipGeneratedNum(vipFreeNumType: vipFreeNumType) {
|
|
|
+ completion(.failure(NSError(domain: "", code: TSNetWorkCode.generateToMax.rawValue)))
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ ///需要校验。且需要判断是否超过最大次数
|
|
|
+ if urlType.needValidate,kPurchaseBusiness.isExceedsDayGeneratedNum(vipFreeNumType: vipFreeNumType) {
|
|
|
+ completion(.failure(NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue)))
|
|
|
+ return nil
|
|
|
+ }
|
|
|
|
|
|
let urlString = urlType.getUrlString()
|
|
|
return request(method: .post, urlString: urlString, parameters:parameters) { result in
|
|
@@ -310,15 +336,23 @@ extension TSNetworkManager {
|
|
|
func uploadImage(
|
|
|
upLoadImage:UIImage,
|
|
|
maxKb:Int,
|
|
|
+ vipFreeNumType:VipFreeNumType,
|
|
|
progressHandler: @escaping (Float) -> Void, // 上传进度回调
|
|
|
completion: @escaping (Any?, Error?) -> Void)
|
|
|
-> Request?{
|
|
|
|
|
|
+ let vipFreeNumType:VipFreeNumType = vipFreeNumType == .generalVideo ? .generalVideo : .general
|
|
|
///需要校验。且需要判断是否超过最大次数
|
|
|
-// if kPurchaseBusiness.isOverTotalTimes {
|
|
|
-// completion(nil,NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue))
|
|
|
-// return nil
|
|
|
-// }
|
|
|
+ if vipFreeNumType == .generalVideo,kPurchaseBusiness.isExceedsVipGeneratedNum(vipFreeNumType: vipFreeNumType) {
|
|
|
+ completion(nil,NSError(domain: "", code: TSNetWorkCode.generateToMax.rawValue))
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ ///需要校验。且需要判断是否超过最大次数
|
|
|
+ if kPurchaseBusiness.isExceedsDayGeneratedNum(vipFreeNumType: vipFreeNumType) {
|
|
|
+ completion(nil,NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue))
|
|
|
+ return nil
|
|
|
+ }
|
|
|
|
|
|
guard let imageData = TSImageCompress.compressImageToTargetSize(upLoadImage, targetSizeKB: maxKb, preserveTransparency: false) else {
|
|
|
completion(nil,NSError(domain: "image nil", code: 0))
|