Change shareURL() in VideosAPI and callers to use URLs instead of hostnames

This commit is contained in:
0x000C 2024-03-20 20:21:26 -07:00
parent 784893048d
commit 1f667818db
2 changed files with 13 additions and 13 deletions

View File

@ -66,7 +66,7 @@ protocol VideosAPI {
failureHandler: ((RequestError) -> Void)?,
completionHandler: @escaping (PlayerQueueItem) -> Void
)
func shareURL(_ item: ContentItem, frontendHost: String?, time: CMTime?) -> URL?
func shareURL(_ item: ContentItem, frontendURL: String?, time: CMTime?) -> URL?
func comments(_ id: Video.ID, page: String?) -> Resource?
}
@ -108,17 +108,17 @@ extension VideosAPI {
.onFailure { failureHandler?($0) }
}
func shareURL(_ item: ContentItem, frontendHost: String? = nil, time: CMTime? = nil) -> URL? {
guard let frontendHost = frontendHost ?? account?.instance?.frontendHost,
var urlComponents = account?.instance?.urlComponents
else {
return nil
func shareURL(_ item: ContentItem, frontendURL: String? = nil, time: CMTime? = nil) -> URL? {
var urlComponents: URLComponents?
if let frontendURLString: String = frontendURL,
let frontendURL: URL = URL(string: frontendURLString) {
urlComponents = URLComponents(URL: frontendURL, resolvingAgainstBaseURL: false)
} else if let instanceComponents = account?.instance?.urlComponents {
urlComponents = instanceComponents
}
urlComponents.host = frontendHost
if frontendHost.contains("youtube.com") {
urlComponents.port = nil
guard var urlComponents: URLComponents = urlComponents else {
return nil
}
var queryItems = [URLQueryItem]()

View File

@ -77,7 +77,7 @@ struct ShareButton<LabelView: View>: View {
private var youtubeActions: some View {
Group {
if let url = accounts.api.shareURL(contentItem, frontendHost: "www.youtube.com") {
if let url = accounts.api.shareURL(contentItem, frontendURL: "https://www.youtube.com") {
Button(labelForShareURL("YouTube")) {
shareAction(url)
}
@ -87,7 +87,7 @@ struct ShareButton<LabelView: View>: View {
shareAction(
accounts.api.shareURL(
contentItem,
frontendHost: "www.youtube.com",
frontendURL: "https://www.youtube.com",
time: player.backend.currentTime
)!
)