Add share extension, rework bookmarks model

This commit is contained in:
Arkadiusz Fal
2022-11-11 12:27:37 +01:00
parent 973596f56c
commit 38454720de
13 changed files with 339 additions and 121 deletions

View File

@@ -27,14 +27,15 @@ struct OpenURLHandler {
}
#endif
if url.isFileURL {
OpenVideosModel.shared.open(url)
guard var url = urlByReplacingYatteeProtocol(url) else {
return
}
let parser = URLParser(url: urlByReplacingYatteeProtocol(url))
let parser = URLParser(url: url)
switch parser.destination {
case .fileURL:
handleFileURLOpen(parser)
case .video:
handleVideoUrlOpen(parser)
case .playlist:
@@ -93,16 +94,29 @@ struct OpenURLHandler {
}
urlAbsoluteString = String(urlAbsoluteString.dropFirst(Self.yatteeProtocol.count))
if url.absoluteString.contains("://") {
return URL(string: urlAbsoluteString)
}
return URL(string: "\(urlProtocol)://\(urlAbsoluteString)")
}
private func handleFileURLOpen(_ parser: URLParser) {
guard let url = parser.fileURL else { return }
OpenVideosModel.shared.openURLs([url], removeQueueItems: false, playbackMode: .playNow)
}
private func handleVideoUrlOpen(_ parser: URLParser) {
guard let id = parser.videoID, id != player.currentVideo?.id else {
guard let id = parser.videoID else {
navigation.presentAlert(title: "Could not open video", message: "Could not extract video ID")
return
}
guard id != player.currentVideo?.id else {
return
}
#if os(macOS)
Windows.main.open()
#endif