// // APIService+WebFinger.swift // Mastodon // // Created by MainasuK Cirno on 2021-7-8. // import Foundation import Combine import CoreData import CoreDataStack import CommonOSLog import DateToolsSwift import MastodonSDK extension APIService { private static func webFingerEndpointURL(domain: String) -> URL { return URL(string: "\(URL.httpScheme(domain: domain))://\(domain)/")! .appendingPathComponent(".well-known") .appendingPathComponent("webfinger") } func webFinger( domain: String ) -> AnyPublisher { let url = APIService.webFingerEndpointURL(domain: domain) let request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 3) return session.dataTaskPublisher(for: request) .tryMap { data, response in return response.url?.host ?? domain } .eraseToAnyPublisher() } }