123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- //
- // KMAIRewritingVC.swift
- // PDF Master
- //
- // Created by wanjun on 2023/5/22.
- //
- import Cocoa
- @objc enum KMAIRewritingState : Int {
- case AIRewriting = 0
- case AIErrorCorrection
- }
- //class KMAIRewritingVC: NSViewController {
- //}
- class KMAIRewritingVC: NSViewController {
- @IBOutlet weak var aiRewritingLabel: NSTextField!
- @IBOutlet weak var aiRewritingSubLabel: NSTextField!
- @IBOutlet weak var rewritingBox: KMBox!
- @IBOutlet weak var rewritingLabel: NSTextField!
- @IBOutlet weak var rewritingButton: NSButton!
- @IBOutlet weak var rewritingTextBox: NSBox!
- @IBOutlet weak var rewritingTextField: NSTextField!
- @IBOutlet weak var wordsLabel: NSTextField!
- @IBOutlet weak var resultLabel: NSTextField!
- @IBOutlet weak var copyBox: KMBox!
- @IBOutlet weak var copyLabel: NSTextField!
- @IBOutlet weak var copyButton: NSButton!
-
- @IBOutlet weak var resultTextBox: NSBox!
- @IBOutlet weak var resultTextView: NSTextView!
- @IBOutlet weak var emptyImageView: NSImageView!
-
- @IBOutlet weak var errorView: NSView!
- @IBOutlet weak var errorImageView: NSImageView!
- @IBOutlet weak var errorLabel: NSTextField!
- @IBOutlet weak var progressView: NSProgressIndicator!
-
- var state: KMAIRewritingState = .AIRewriting
-
- var isExceed: Bool = false
- var canRewriting: Bool = false
- var canCopy: Bool = false
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
-
- self.initLocalization()
- self.initializeUI()
- }
-
- // MARK: initialize
-
- func initializeUI() -> Void {
- self.progressView.isHidden = true
- self.aiRewritingLabel.textColor = NSColor(hex: "#252629")
- self.aiRewritingLabel.font = NSFont.SFProTextSemibold(20.0)
- self.aiRewritingSubLabel.textColor = NSColor(hex: "#94989C")
- self.aiRewritingSubLabel.font = NSFont.SFProTextRegular(14.0)
- self.rewritingBox.fillColor = NSColor(hex: "#BDDFFD")
- self.rewritingBox.cornerRadius = 4.0
- self.rewritingLabel.textColor = NSColor(hex: "#F7F8FA")
- self.rewritingLabel.font = NSFont.SFProTextRegular(14.0)
- self.rewritingTextBox.borderColor = NSColor(hex: "#1770F4")
- self.wordsLabel.textColor = NSColor(hex: "#94989C")
- self.wordsLabel.font = NSFont.SFProTextRegular(14.0)
- self.resultLabel.textColor = NSColor(hex: "#252629")
- self.resultLabel.font = NSFont.SFProTextSemibold(20.0)
- self.copyBox.borderColor = NSColor(hex: "#DFE1E5")
- self.copyBox.fillColor = NSColor(hex: "#EDEEF0")
- self.copyBox.cornerRadius = 4.0
- self.copyBox.borderWidth = 1.0
- self.copyLabel.textColor = NSColor(hex: "#B1B3B8")
- self.copyLabel.font = NSFont.SFProTextRegular(14.0)
- self.resultTextBox.borderColor = NSColor(hex: "#DFE1E5")
-
- self.errorView.isHidden = true
- self.errorImageView.image = NSImage(named: "icon_error")
- self.errorLabel.textColor = NSColor(hex: "#F3465B")
- self.errorLabel.font = NSFont.SFProTextRegular(12.0)
- }
-
- func initLocalization() -> Void {
- switch self.state {
- case .AIRewriting:
- self.aiRewritingLabel.stringValue = NSLocalizedString("AI Rewriting", comment: "")
- self.aiRewritingSubLabel.stringValue = NSLocalizedString("Limited to 150 characters per session, 5 times per month", comment: "")
- self.rewritingLabel.stringValue = NSLocalizedString("Rewriting", comment: "")
- self.resultLabel.stringValue = NSLocalizedString("Result", comment: "")
- self.copyLabel.stringValue = NSLocalizedString("Copy", comment: "")
- self.rewritingTextField.placeholderString = NSLocalizedString("Please enter text content here...", comment: "")
- self.wordsLabel.stringValue = NSLocalizedString("0/150", comment: "")
- break
- case .AIErrorCorrection:
- self.aiRewritingLabel.stringValue = NSLocalizedString("AI Error Correction", comment: "")
- self.aiRewritingSubLabel.stringValue = NSLocalizedString("Limited to 150 characters per session, 5 times per month", comment: "")
- self.rewritingLabel.stringValue = NSLocalizedString("Rewriting", comment: "")
- self.resultLabel.stringValue = NSLocalizedString("Result", comment: "")
- self.copyLabel.stringValue = NSLocalizedString("Copy", comment: "")
- self.rewritingTextField.placeholderString = NSLocalizedString("Please enter text content here...", comment: "")
- self.wordsLabel.stringValue = NSLocalizedString("0/150", comment: "")
- break
- default:
- break
- }
- }
-
- // MARK: Action
-
- @IBAction func aiRewritingAction(_ sender: NSButton) {
- if self.canRewriting {
- self.errorView.isHidden = true
- self.progressView.isHidden = false
-
- let infoDictionary = Bundle .main.infoDictionary!
- let majorVersion = infoDictionary["CFBundleShortVersionString"]
- KMRequestServerManager.manager.aiRewriting(content: self.rewritingTextField.stringValue, version: "1.0.1", state: self.state) { [unowned self] success, result in
- self.progressView.isHidden = true
- let result: NSDictionary = result!.result
- if success {
- self.copyBox.fillColor = NSColor(hex: "#FFFFFF")
- self.copyBox.borderColor = NSColor(hex: "#DFE1E5")
- self.copyLabel.textColor = NSColor(hex: "#252629")
- self.canCopy = true
-
- self.resultTextView.string = ""
- self.resultTextView.string = result["content"] as? String ?? ""
- } else {
- self.copyBox.borderColor = NSColor(hex: "#DFE1E5")
- self.copyBox.fillColor = NSColor(hex: "#EDEEF0")
- self.canCopy = false
-
- self.resultTextView.string = ""
- self.errorView.isHidden = false
- self.errorLabel.stringValue = "error"
- }
- }
- }
- }
-
- @IBAction func copyAction(_ sender: NSButton) {
- if self.canCopy {
- let pasteboard = NSPasteboard.general
- pasteboard.clearContents()
- pasteboard.setString(self.resultTextView.string, forType: .string)
- }
- }
- }
- extension KMAIRewritingVC: NSTextFieldDelegate {
- func controlTextDidEndEditing(_ obj: Notification) {
- let object = obj.object as! NSTextField
-
-
- }
-
- func controlTextDidChange(_ obj: Notification) {
- let object = obj.object as! NSTextField
- self.wordsLabel.stringValue = String(format: "%d/150", object.stringValue.count)
-
- if object.stringValue.count > 0 {
- self.rewritingBox.fillColor = NSColor(hex: "#1770F4")
- self.rewritingLabel.textColor = NSColor(hex: "#FFFFFF")
- self.canRewriting = true
- } else {
- self.rewritingBox.fillColor = NSColor(hex: "#BDDFFD")
- self.rewritingLabel.textColor = NSColor(hex: "#F7F8FA")
- self.canRewriting = false
- }
-
- if object.stringValue.count >= 150 {
- self.wordsLabel.textColor = NSColor(hex: "#F3465B")
- self.isExceed = true
- } else {
- self.wordsLabel.textColor = NSColor(hex: "#94989C")
- self.isExceed = false
- }
- }
- }
|