feat: initial commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import AppKit
|
||||
import UserNotifications
|
||||
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
let args = ProcessInfo.processInfo.arguments
|
||||
let subtitle = args.count > 1 ? args[1] : ""
|
||||
let body = args.count > 2 ? args[2] : ""
|
||||
|
||||
let center = UNUserNotificationCenter.current()
|
||||
center.requestAuthorization(options: [.alert, .sound]) { granted, _ in
|
||||
guard granted else {
|
||||
DispatchQueue.main.async { NSApp.terminate(nil) }
|
||||
return
|
||||
}
|
||||
|
||||
let content = UNMutableNotificationContent()
|
||||
content.title = "Photon Uploader"
|
||||
content.subtitle = subtitle
|
||||
content.body = body
|
||||
content.sound = .default
|
||||
|
||||
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.1, repeats: false)
|
||||
let request = UNNotificationRequest(
|
||||
identifier: UUID().uuidString,
|
||||
content: content,
|
||||
trigger: trigger
|
||||
)
|
||||
|
||||
center.add(request) { _ in
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
|
||||
NSApp.terminate(nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let app = NSApplication.shared
|
||||
app.setActivationPolicy(.prohibited)
|
||||
let delegate = AppDelegate()
|
||||
app.delegate = delegate
|
||||
app.run()
|
||||
Reference in New Issue
Block a user