mirror of
https://github.com/yattee/yattee.git
synced 2025-08-06 10:44:06 +00:00
Add open from clipboard
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
#if canImport(AppKit)
|
||||
import AppKit
|
||||
#endif
|
||||
import Foundation
|
||||
import Logging
|
||||
#if canImport(UIKit)
|
||||
import UIKit
|
||||
#endif
|
||||
|
||||
struct OpenVideosModel {
|
||||
enum PlaybackMode: String, CaseIterable {
|
||||
@@ -42,6 +48,24 @@ struct OpenVideosModel {
|
||||
}
|
||||
}
|
||||
|
||||
var urlsFromClipboard: [URL] {
|
||||
#if os(iOS)
|
||||
if let pasteboard = UIPasteboard.general.string {
|
||||
return urlsFrom(pasteboard)
|
||||
}
|
||||
#elseif os(macOS)
|
||||
if let pasteboard = NSPasteboard.general.string(forType: .string) {
|
||||
return urlsFrom(pasteboard)
|
||||
}
|
||||
#endif
|
||||
|
||||
return []
|
||||
}
|
||||
|
||||
func openURLsFromClipboard(removeQueueItems: Bool = false, playbackMode: OpenVideosModel.PlaybackMode) {
|
||||
openURLs(urlsFromClipboard, removeQueueItems: removeQueueItems, playbackMode: playbackMode)
|
||||
}
|
||||
|
||||
func openURLs(_ urls: [URL], removeQueueItems: Bool, playbackMode: OpenVideosModel.PlaybackMode) {
|
||||
logger.info("opening \(urls.count) urls")
|
||||
urls.forEach { logger.info("\($0.absoluteString)") }
|
||||
@@ -102,6 +126,10 @@ struct OpenVideosModel {
|
||||
}
|
||||
}
|
||||
|
||||
func urlsFrom(_ string: String) -> [URL] {
|
||||
string.split(whereSeparator: \.isNewline).compactMap { URL(string: String($0)) }
|
||||
}
|
||||
|
||||
var canOpenVideosByID: Bool {
|
||||
guard let app = player.accounts.current?.app else { return false }
|
||||
return !player.accounts.isEmpty && app.supportsOpeningVideosByID
|
||||
|
Reference in New Issue
Block a user