100Years 1 vecka sedan
förälder
incheckning
3c21e3b935

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -2512,7 +2512,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 4;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -2551,7 +2551,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 4;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 1 - 4
AIEmoji/Business/TSAILIstVC/TSAIChangeEmoteVC/TSAIChangeEmoteVC.swift

@@ -97,11 +97,8 @@ class TSAIChangeEmoteVC: TSBaseVC {
                 if let selectedmodel = selectedmodel {
                     handelSelectedValueBlock(model: selectedmodel)
                 }
-            case .sensitiveError:
-                generateInView.isHidden = true
-            case .generalError:
-                generateInView.isHidden = true
             default:
+                generateInView.isHidden = true
                 break
             }
         }

+ 1 - 4
AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIListPhotoGeneratorBaseVC.swift

@@ -62,11 +62,8 @@ class TSAIListPhotoGeneratorBaseVC: TSAIPhotoGeneratorBaseVC {
             switch style {
             case .netWorkError:
                 clickTryAgainBtn()
-            case .sensitiveError:
-                self.dismiss(animated: true, completion: nil)
-            case .generalError:
-                self.dismiss(animated: true, completion: nil)
             default:
+                self.dismiss(animated: false, completion: nil)
                 break
             }
         }

+ 1 - 2
AIEmoji/Business/TSPTPGeneratorVC/TSPTPGeneratorVC/TSPTPGeneratorVC.swift

@@ -53,9 +53,8 @@ class TSPTPGeneratorVC: TSAIPhotoGeneratorBaseVC {
                 clickTryAgainBtn()
             case .sensitiveError:
                 pickSinglePhoto()
-            case .generalError:
-                self.dismiss(animated: true, completion: nil)
             default:
+                self.dismiss(animated: false, completion: nil)
                 break
             }
         }

+ 1 - 4
AIEmoji/Business/TSTextGeneralPictureVC/TSTextPicGennerateVC/TSTextPicGennerateVC.swift

@@ -33,11 +33,8 @@ class TSTextPicGennerateVC: TSAIPhotoGeneratorBaseVC {
             switch style {
             case .netWorkError:
                 clickTryAgainBtn()
-            case .sensitiveError:
-                self.dismiss(animated: true, completion: nil)
-            case .generalError:
-                self.dismiss(animated: true, completion: nil)
             default:
+                self.dismiss(animated: false, completion: nil)
                 break
             }
         }

+ 13 - 0
AIEmoji/Business/VIewTool/TSGeneratorloadingView/TSGeneratorErrorView.swift

@@ -15,6 +15,8 @@ class TSGeneratorErrorView: TSBaseView {
                 sensitiveErrorView()
             case .netWorkError:
                 netWorkErrorView()
+            case .generateTooMuch:
+                generateTooMuchView()
             default:
                 generalErrorView()
             }
@@ -117,4 +119,15 @@ extension TSGeneratorErrorView {
         
         textLabel.text = "No network, please check your network and try again.".localized
     }
+    
+    func generateTooMuchView() {
+        submitBtn.setTitle("Got it".localized, for: .normal)
+        errorImageView.image = UIImage(named: "yellow_warning")
+        
+        errorImageView.snp.updateConstraints { make in
+            make.width.height.equalTo(56)
+        }
+
+        textLabel.text = "Your photo may contain nudity, gore or violence that does not comply with the health policy, please replace the photo and try again.".localized
+    }
 }

+ 1 - 0
AIEmoji/Business/VIewTool/TSGeneratorloadingView/TSGeneratorloadingView.swift

@@ -19,6 +19,7 @@ class TSGeneratorView: TSBaseView {
         case generalError //通用错误
         case sensitiveError   //敏感类的错误
         case netWorkError //网络错误
+        case generateTooMuch //生成次数过多
     }
     
     var style:Style = .generalError

+ 11 - 3
AIEmoji/Common/NetworkManager/TSNetWork/TSNetWork+Business.swift

@@ -78,7 +78,7 @@ enum TSNetWorkCode : Int {
     case textSensitive = -10003    //文生图敏感错误
     case imageSensitive = -10004   //图生图敏感错误
     case networkError = -1005   //网络错误
-    
+    case generateTooMuch = -200   //单日生成次数过多
     
     var errorMsg:String {
         switch self {
@@ -86,6 +86,8 @@ enum TSNetWorkCode : Int {
             return "Your photo may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy, please replace the photo and try again.".localized
         case .networkError:
             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
         default:
             return "Sorry there was a slight problem with the image processing, please try again later.".localized
         }
@@ -97,6 +99,7 @@ enum TSNetWorkCode : Int {
         let netCode = TSNetWorkCode(rawValue: code) ?? .fail
         return netCode.errorMsg
     }
+    
     //敏感错误
     static func sensitiveError(code:Int)->Bool{
         let netCode = TSNetWorkCode(rawValue: code)
@@ -139,6 +142,8 @@ enum TSNetWorkCode : Int {
             return TSGeneratorView.Style.sensitiveError
         case .networkError:
             return TSGeneratorView.Style.netWorkError
+        case .generateTooMuch:
+            return TSGeneratorView.Style.generateTooMuch
         default:
             return TSGeneratorView.Style.generalError
         }
@@ -164,6 +169,9 @@ extension Error {
             default:
                 return urlError.code.rawValue
             }
+        }else
+        if let error = self as? NSError {
+            return error.code
         }
         return 0
     }
@@ -240,7 +248,7 @@ extension TSNetworkManager {
     ) -> Request? {
         ///需要校验。且需要判断是否超过最大次数
         if urlType.needValidate,PurchaseManager.default.isOverTotalTimes {
-            completion(.failure(NSError(domain: "", code: 0)))
+            completion(.failure(NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue)))
             return nil
         }
         
@@ -331,7 +339,7 @@ extension TSNetworkManager {
         
         ///需要校验。且需要判断是否超过最大次数
         if PurchaseManager.default.isOverTotalTimes {
-            completion(nil,NSError(domain: "", code: 0))
+            completion(nil,NSError(domain: "", code: TSNetWorkCode.generateTooMuch.rawValue))
             return nil
         }
         

+ 6 - 6
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -19,11 +19,11 @@ public enum PremiumPeriod: String, CaseIterable {
     var freeNumber: Int {
         switch self {
         case .week:
-            return 5
+            return 3
         case .year:
-            return 50
+            return 6
         default:
-            return 10
+            return 3
         }
     }
 }
@@ -165,9 +165,9 @@ public class PurchaseManager: NSObject {
     }
 
     @objc public var isVip: Bool {
-        #if DEBUG
-            return true
-        #endif
+//        #if DEBUG
+//            return true
+//        #endif
         guard let expiresDate = expiredDate else {
             return false
         }