Add demo instance, remove public manifest

This commit is contained in:
Arkadiusz Fal
2022-10-26 13:11:35 +02:00
parent 8ab6a0fa89
commit 1fe01808a4
16 changed files with 488 additions and 58 deletions

View File

@@ -55,6 +55,9 @@ final class AccountValidator: Service {
case .piped:
return resource("/streams/dQw4w9WgXcQ")
case .demoApp:
return resource("/")
}
}

View File

@@ -7,6 +7,7 @@ final class AccountsModel: ObservableObject {
@Published private var invidious = InvidiousAPI()
@Published private var piped = PipedAPI()
@Published private var demo = DemoAppAPI()
@Published var publicAccount: Account?
@@ -33,7 +34,14 @@ final class AccountsModel: ObservableObject {
}
var api: VideosAPI {
app == .piped ? piped : invidious
switch app {
case .piped:
return piped
case .invidious:
return invidious
case .demoApp:
return demo
}
}
var isEmpty: Bool {
@@ -44,6 +52,10 @@ final class AccountsModel: ObservableObject {
!isEmpty && !current.anonymous && api.signedIn
}
var isDemo: Bool {
current?.app == .demoApp
}
init() {
cancellables.append(
invidious.objectWillChange.sink { [weak self] _ in self?.objectWillChange.send() }
@@ -79,6 +91,8 @@ final class AccountsModel: ObservableObject {
invidious.setAccount(account)
case .piped:
piped.setAccount(account)
case .demoApp:
break
}
Defaults[.lastAccountIsPublic] = account.isPublic

View File

@@ -26,6 +26,8 @@ struct Instance: Defaults.Serializable, Hashable, Identifiable {
return InvidiousAPI(account: anonymousAccount)
case .piped:
return PipedAPI(account: anonymousAccount)
case .demoApp:
return DemoAppAPI()
}
}
@@ -34,7 +36,9 @@ struct Instance: Defaults.Serializable, Hashable, Identifiable {
}
var longDescription: String {
name.isEmpty ? "\(app.name) - \(apiURL)" : "\(app.name) - \(name) (\(apiURL))"
guard app != .demoApp else { return "Demo" }
return name.isEmpty ? "\(app.name) - \(apiURL)" : "\(app.name) - \(name) (\(apiURL))"
}
var shortDescription: String {