mirror of
https://github.com/yattee/yattee.git
synced 2025-08-09 20:24:06 +00:00
Initial PeerTube Support
This commit is contained in:
@@ -9,9 +9,12 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
static let basePath = "/api/v1"
|
||||
|
||||
@Published var account: Account!
|
||||
|
||||
@Published var validInstance = true
|
||||
|
||||
static func withAnonymousAccountForInstanceURL(_ url: URL) -> InvidiousAPI {
|
||||
.init(account: Instance(app: .invidious, apiURLString: url.absoluteString).anonymousAccount)
|
||||
}
|
||||
|
||||
var signedIn: Bool {
|
||||
guard let account else { return false }
|
||||
|
||||
@@ -452,7 +455,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
}
|
||||
|
||||
static func proxiedAsset(instance: Instance, asset: AVURLAsset) -> AVURLAsset? {
|
||||
guard let instanceURLComponents = URLComponents(string: instance.apiURL),
|
||||
guard let instanceURLComponents = URLComponents(url: instance.apiURL, resolvingAgainstBaseURL: false),
|
||||
var urlComponents = URLComponents(url: asset.url, resolvingAgainstBaseURL: false) else { return nil }
|
||||
|
||||
urlComponents.scheme = instanceURLComponents.scheme
|
||||
@@ -487,7 +490,9 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
let description = json["description"].stringValue
|
||||
|
||||
return Video(
|
||||
id: id,
|
||||
instanceID: account.instanceID,
|
||||
app: .invidious,
|
||||
instanceURL: account.instance.apiURL,
|
||||
videoID: videoID,
|
||||
title: json["title"].stringValue,
|
||||
author: json["author"].stringValue,
|
||||
@@ -518,7 +523,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
// append protocol to unproxied thumbnail URL if it's missing
|
||||
if thumbnailURL.count > 2,
|
||||
String(thumbnailURL[..<thumbnailURL.index(thumbnailURL.startIndex, offsetBy: 2)]) == "//",
|
||||
let accountUrlComponents = URLComponents(string: account.url)
|
||||
let accountUrlComponents = URLComponents(string: account.urlString)
|
||||
{
|
||||
thumbnailURL = "\(accountUrlComponents.scheme ?? "https"):\(thumbnailURL)"
|
||||
}
|
||||
@@ -553,7 +558,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
guard let url = json["url"].url,
|
||||
var components = URLComponents(url: url, resolvingAgainstBaseURL: false),
|
||||
let quality = json["quality"].string,
|
||||
let accountUrlComponents = URLComponents(string: account.url)
|
||||
let accountUrlComponents = URLComponents(string: account.urlString)
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
@@ -677,8 +682,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
|
||||
private func extractCaptions(from content: JSON) -> [Captions] {
|
||||
content["captions"].arrayValue.compactMap { details in
|
||||
let baseURL = account.url
|
||||
guard let url = URL(string: baseURL + details["url"].stringValue) else { return nil }
|
||||
guard let url = URL(string: details["url"].stringValue, relativeTo: account.url) else { return nil }
|
||||
|
||||
return Captions(
|
||||
label: details["label"].stringValue,
|
||||
|
Reference in New Issue
Block a user