diff --git a/Packages/vChewing_UpdateSputnik/Sources/UpdateSputnik/UpdateSputnik.swift b/Packages/vChewing_UpdateSputnik/Sources/UpdateSputnik/UpdateSputnik.swift index 9731de56..0424b1d2 100644 --- a/Packages/vChewing_UpdateSputnik/Sources/UpdateSputnik/UpdateSputnik.swift +++ b/Packages/vChewing_UpdateSputnik/Sources/UpdateSputnik/UpdateSputnik.swift @@ -11,6 +11,7 @@ import Cocoa public class UpdateSputnik { public static let shared: UpdateSputnik = .init() public let kUpdateInfoPageURLKey: String = "UpdateInfoSite" + public let kUpdateInfoPageURLGitHubKey: String = "UpdateInfoSiteGitHub" public let kUpdateCheckDateKeyPrevious: String = "PreviousUpdateCheckDate" public let kUpdateCheckDateKeyNext: String = "NextUpdateCheckDate" public let kUpdateCheckInterval: TimeInterval = 114_514 @@ -127,20 +128,33 @@ public class UpdateSputnik { intRemoteVersion.description ) let alert = NSAlert() - alert.messageText = NSLocalizedString("New Version Available", comment: "") alert.informativeText = content - alert.addButton(withTitle: NSLocalizedString("Visit Website", comment: "")) + alert.messageText = NSLocalizedString("New Version Available", comment: "") + let strVisitWebsite = NSLocalizedString("Visit Website", comment: "") + alert.addButton(withTitle: "\(strVisitWebsite) (Gitee)") + alert.addButton(withTitle: "\(strVisitWebsite) (GitHub)") alert.addButton(withTitle: NSLocalizedString("Not Now", comment: "")) + + guard let siteInfoURLString = plist["\(kUpdateInfoPageURLKey)"] as? String, + let siteURL = URL(string: siteInfoURLString), + let siteInfoURLStringGitHub = plist["\(kUpdateInfoPageURLGitHubKey)"] as? String, + let siteURLGitHub = URL(string: siteInfoURLStringGitHub) + else { + return + } + let result = alert.runModal() NSApp.activate(ignoringOtherApps: true) - if result == NSApplication.ModalResponse.alertFirstButtonReturn { - if let siteInfoURLString = plist[kUpdateInfoPageURLKey] as? String, - let siteURL = URL(string: siteInfoURLString) - { - DispatchQueue.main.async { - NSWorkspace.shared.open(siteURL) - } + switch result { + case .alertFirstButtonReturn: + DispatchQueue.main.async { + NSWorkspace.shared.open(siteURL) } + case .alertSecondButtonReturn: + DispatchQueue.main.async { + NSWorkspace.shared.open(siteURLGitHub) + } + default: break } } diff --git a/Source/Resources/IME-Info.plist b/Source/Resources/IME-Info.plist index 0edd3eab..7f16fb4b 100644 --- a/Source/Resources/IME-Info.plist +++ b/Source/Resources/IME-Info.plist @@ -157,6 +157,8 @@ SOFTWARE. https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist UpdateInfoSite https://gitee.com/vChewing/vChewing-macOS/releases + UpdateInfoSiteGitHub + https://gitee.com/vChewing/vChewing-macOS/releases tsInputMethodCharacterRepertoireKey Hans diff --git a/Update-Info.plist b/Update-Info.plist index e3b7ae36..60aedfb3 100644 --- a/Update-Info.plist +++ b/Update-Info.plist @@ -10,5 +10,7 @@ https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist UpdateInfoSite https://gitee.com/vChewing/vChewing-macOS/releases + UpdateInfoSiteGitHub + https://gitee.com/vChewing/vChewing-macOS/releases