mirror of
https://github.com/yattee/yattee.git
synced 2025-04-25 08:06:31 +00:00
Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2a597ab3cb | ||
![]() |
4d662115e4 | ||
![]() |
e068257f14 | ||
![]() |
8b809fb0f1 | ||
![]() |
d3e80f500e | ||
![]() |
9343e9d023 | ||
![]() |
e4b25b0f80 | ||
![]() |
09c2fb19a9 | ||
![]() |
043b07274e | ||
![]() |
7f7e12d719 | ||
![]() |
d990c6630e | ||
![]() |
5239b36cfe | ||
![]() |
addc13ebfb | ||
![]() |
2a6f26ec68 | ||
![]() |
2e2f502d97 | ||
![]() |
59afc2f4c7 | ||
![]() |
2f902e74bb | ||
![]() |
500b75da4f |
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
||||
# lane: ['mac beta', 'ios beta', 'tvos beta']
|
||||
lane: ['ios beta', 'tvos beta']
|
||||
name: Releasing ${{ matrix.lane }} version to TestFlight
|
||||
runs-on: macos-13
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@v1
|
||||
@ -44,14 +44,14 @@ jobs:
|
||||
- uses: maierj/fastlane-action@v3.0.0
|
||||
with:
|
||||
lane: ${{ matrix.lane }}
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.lane }} build
|
||||
path: fastlane/builds/**/*.ipa
|
||||
if-no-files-found: ignore
|
||||
mac_notarized:
|
||||
name: Build and notarize macOS app
|
||||
runs-on: macos-13
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ruby/setup-ruby@v1
|
||||
@ -76,7 +76,7 @@ jobs:
|
||||
echo "ZIP_PATH=fastlane/builds/${{ env.VERSION_NUMBER }}-${{ env.BUILD_NUMBER }}/macOS/Yattee-${{ env.VERSION_NUMBER }}-macOS.zip" >> $GITHUB_ENV
|
||||
- name: ZIP build
|
||||
run: /usr/bin/ditto -c -k --keepParent ${{ env.APP_PATH }} ${{ env.ZIP_PATH }}
|
||||
- uses: actions/upload-artifact@v3
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: mac notarized build
|
||||
path: ${{ env.ZIP_PATH }}
|
||||
@ -89,7 +89,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- run: echo "BUILD_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 CURRENT_PROJECT_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
|
||||
- run: echo "VERSION_NUMBER=$(cat Yattee.xcodeproj/project.pbxproj | grep -m 1 MARKETING_VERSION | cut -d' ' -f3 | sed 's/;//g')" >> $GITHUB_ENV
|
||||
- uses: actions/download-artifact@v3
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
- uses: ncipollo/release-action@v1
|
||||
|
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,10 +1,8 @@
|
||||
## Build 198
|
||||
## Build 199
|
||||
|
||||
## What's Changed
|
||||
* Stop making videos with unknown length shorts. by @derspyy in https://github.com/yattee/yattee/pull/849
|
||||
* Translations update from Hosted Weblate by @weblate in https://github.com/yattee/yattee/pull/845
|
||||
* Add Hungarian to locales list
|
||||
* Update dependencies
|
||||
* Add support for invidious companion by @lifo9 in https://github.com/yattee/yattee/pull/863
|
||||
* Translations update from Hosted Weblate by @weblate in https://github.com/yattee/yattee/pull/851
|
||||
|
||||
## Previous builds
|
||||
* Add skip, play/pause, and fullscreen shortcuts to macOS player (by @rickykresslein)
|
||||
@ -58,6 +56,8 @@
|
||||
* Changes to defaults by @stonerl in https://github.com/yattee/yattee/pull/767
|
||||
* Fixed fullscreen handling for backgrounding by @stonerl in https://github.com/yattee/yattee/pull/772
|
||||
* Update now playing info when using system controls – Partial fix for 503 by @stonerl in https://github.com/yattee/yattee/pull/765
|
||||
* Stop making videos with unknown length shorts. by @derspyy in https://github.com/yattee/yattee/pull/849
|
||||
* Add Hungarian to locales list
|
||||
* Fix crash on HLS live playback by @stonerl in https://github.com/yattee/yattee/pull/775
|
||||
* Fix mpv crashing on macOS by @stonerl in https://github.com/yattee/yattee/pull/754
|
||||
* Refreshed icons for iOS and macOS by @stonerl in https://github.com/yattee/yattee/pull/752
|
||||
|
40
Gemfile.lock
40
Gemfile.lock
@ -9,21 +9,22 @@ GEM
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.1028.0)
|
||||
aws-sdk-core (3.214.0)
|
||||
aws-eventstream (1.3.2)
|
||||
aws-partitions (1.1072.0)
|
||||
aws-sdk-core (3.220.2)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
base64
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.96.0)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sdk-kms (1.99.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.176.1)
|
||||
aws-sdk-core (~> 3, >= 3.210.0)
|
||||
aws-sdk-s3 (1.182.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.10.1)
|
||||
aws-sigv4 (1.11.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
@ -33,7 +34,7 @@ GEM
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.5)
|
||||
digest-crc (0.7.0)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.6.20240107)
|
||||
dotenv (2.8.1)
|
||||
@ -67,8 +68,8 @@ GEM
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.226.0)
|
||||
fastimage (2.4.0)
|
||||
fastlane (2.227.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@ -129,12 +130,12 @@ GEM
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.31.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.7.1)
|
||||
google-cloud-core (1.8.0)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.4.0)
|
||||
google-cloud-errors (1.5.0)
|
||||
google-cloud-storage (1.47.0)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
@ -152,15 +153,17 @@ GEM
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.8)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
httpclient (2.9.0)
|
||||
mutex_m
|
||||
jmespath (1.6.2)
|
||||
json (2.9.1)
|
||||
jwt (2.10.0)
|
||||
json (2.10.2)
|
||||
jwt (2.10.1)
|
||||
base64
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.1)
|
||||
mutex_m (0.3.0)
|
||||
nanaimo (0.4.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
@ -174,10 +177,10 @@ GEM
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.4.0)
|
||||
rexml (3.4.1)
|
||||
rouge (3.28.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
rubyzip (2.4.1)
|
||||
security (0.1.5)
|
||||
signet (0.19.0)
|
||||
addressable (~> 2.8)
|
||||
@ -213,6 +216,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-21
|
||||
arm64-darwin-23
|
||||
arm64-darwin-24
|
||||
x86_64-darwin-19
|
||||
x86_64-darwin-20
|
||||
|
@ -10,14 +10,16 @@ struct Instance: Defaults.Serializable, Hashable, Identifiable {
|
||||
let apiURLString: String
|
||||
var frontendURL: String?
|
||||
var proxiesVideos: Bool
|
||||
var invidiousCompanion: Bool
|
||||
|
||||
init(app: VideosApp, id: String? = nil, name: String? = nil, apiURLString: String, frontendURL: String? = nil, proxiesVideos: Bool = false) {
|
||||
init(app: VideosApp, id: String? = nil, name: String? = nil, apiURLString: String, frontendURL: String? = nil, proxiesVideos: Bool = false, invidiousCompanion: Bool = false) {
|
||||
self.app = app
|
||||
self.id = id ?? UUID().uuidString
|
||||
self.name = name ?? app.rawValue
|
||||
self.apiURLString = apiURLString
|
||||
self.frontendURL = frontendURL
|
||||
self.proxiesVideos = proxiesVideos
|
||||
self.invidiousCompanion = invidiousCompanion
|
||||
}
|
||||
|
||||
var apiURL: URL! {
|
||||
|
@ -16,7 +16,8 @@ struct InstancesBridge: Defaults.Bridge {
|
||||
"name": value.name,
|
||||
"apiURL": value.apiURLString,
|
||||
"frontendURL": value.frontendURL ?? "",
|
||||
"proxiesVideos": value.proxiesVideos ? "true" : "false"
|
||||
"proxiesVideos": value.proxiesVideos ? "true" : "false",
|
||||
"invidiousCompanion": value.invidiousCompanion ? "true" : "false"
|
||||
]
|
||||
}
|
||||
|
||||
@ -33,7 +34,8 @@ struct InstancesBridge: Defaults.Bridge {
|
||||
let name = object["name"] ?? ""
|
||||
let frontendURL: String? = object["frontendURL"]!.isEmpty ? nil : object["frontendURL"]
|
||||
let proxiesVideos = object["proxiesVideos"] == "true"
|
||||
let invidiousCompanion = object["invidiousCompanion"] == "true"
|
||||
|
||||
return Instance(app: app, id: id, name: name, apiURLString: apiURL, frontendURL: frontendURL, proxiesVideos: proxiesVideos)
|
||||
return Instance(app: app, id: id, name: name, apiURLString: apiURL, frontendURL: frontendURL, proxiesVideos: proxiesVideos, invidiousCompanion: invidiousCompanion)
|
||||
}
|
||||
}
|
||||
|
@ -79,6 +79,17 @@ final class InstancesModel: ObservableObject {
|
||||
Defaults[.instances][index] = instance
|
||||
}
|
||||
|
||||
func setInvidiousCompanion(_ instance: Instance, _ invidiousCompanion: Bool) {
|
||||
guard let index = Defaults[.instances].firstIndex(where: { $0.id == instance.id }) else {
|
||||
return
|
||||
}
|
||||
|
||||
var instance = Defaults[.instances][index]
|
||||
instance.invidiousCompanion = invidiousCompanion
|
||||
|
||||
Defaults[.instances][index] = instance
|
||||
}
|
||||
|
||||
func remove(_ instance: Instance) {
|
||||
let accounts = accounts(instance.id)
|
||||
if let index = Defaults[.instances].firstIndex(where: { $0.id == instance.id }) {
|
||||
|
@ -655,21 +655,29 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
if json["liveNow"].boolValue {
|
||||
return hls
|
||||
}
|
||||
let videoId = json["videoId"].stringValue
|
||||
|
||||
return extractFormatStreams(from: json["formatStreams"].arrayValue) +
|
||||
extractAdaptiveFormats(from: json["adaptiveFormats"].arrayValue) +
|
||||
return extractFormatStreams(from: json["formatStreams"].arrayValue, videoId: videoId) +
|
||||
extractAdaptiveFormats(from: json["adaptiveFormats"].arrayValue, videoId: videoId) +
|
||||
hls
|
||||
}
|
||||
|
||||
private func extractFormatStreams(from streams: [JSON]) -> [Stream] {
|
||||
private func extractFormatStreams(from streams: [JSON], videoId: String?) -> [Stream] {
|
||||
streams.compactMap { stream in
|
||||
guard let streamURL = stream["url"].url else {
|
||||
return nil
|
||||
}
|
||||
let finalURL: URL
|
||||
if let videoId, let itag = stream["itag"].string, account.instance.invidiousCompanion {
|
||||
let companionURLString = "\(account.instance.apiURLString)/latest_version?id=\(videoId)&itag=\(itag)"
|
||||
finalURL = URL(string: companionURLString) ?? streamURL
|
||||
} else {
|
||||
finalURL = streamURL
|
||||
}
|
||||
|
||||
return SingleAssetStream(
|
||||
instance: account.instance,
|
||||
avAsset: AVURLAsset(url: streamURL),
|
||||
avAsset: AVURLAsset(url: finalURL),
|
||||
resolution: Stream.Resolution.from(resolution: stream["resolution"].string ?? ""),
|
||||
kind: .stream,
|
||||
encoding: stream["encoding"].string ?? ""
|
||||
@ -677,7 +685,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
}
|
||||
}
|
||||
|
||||
private func extractAdaptiveFormats(from streams: [JSON]) -> [Stream] {
|
||||
private func extractAdaptiveFormats(from streams: [JSON], videoId: String?) -> [Stream] {
|
||||
let audioStreams = streams
|
||||
.filter { $0["type"].stringValue.starts(with: "audio/mp4") }
|
||||
.sorted {
|
||||
@ -692,15 +700,29 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
|
||||
|
||||
return videoStreams.compactMap { videoStream in
|
||||
guard let audioAssetURL = audioStream["url"].url,
|
||||
let videoAssetURL = videoStream["url"].url
|
||||
let videoAssetURL = videoStream["url"].url,
|
||||
let audioItag = audioStream["itag"].string,
|
||||
let videoItag = videoStream["itag"].string
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
let finalAudioURL: URL
|
||||
let finalVideoURL: URL
|
||||
|
||||
if let videoId, account.instance.invidiousCompanion {
|
||||
let audioCompanionURLString = "\(account.instance.apiURLString)/latest_version?id=\(videoId)&itag=\(audioItag)"
|
||||
let videoCompanionURLString = "\(account.instance.apiURLString)/latest_version?id=\(videoId)&itag=\(videoItag)"
|
||||
finalAudioURL = URL(string: audioCompanionURLString) ?? audioAssetURL
|
||||
finalVideoURL = URL(string: videoCompanionURLString) ?? videoAssetURL
|
||||
} else {
|
||||
finalAudioURL = audioAssetURL
|
||||
finalVideoURL = videoAssetURL
|
||||
}
|
||||
|
||||
return Stream(
|
||||
instance: account.instance,
|
||||
audioAsset: AVURLAsset(url: audioAssetURL),
|
||||
videoAsset: AVURLAsset(url: videoAssetURL),
|
||||
audioAsset: AVURLAsset(url: finalAudioURL),
|
||||
videoAsset: AVURLAsset(url: finalVideoURL),
|
||||
resolution: Stream.Resolution.from(resolution: videoStream["resolution"].stringValue),
|
||||
kind: .adaptive,
|
||||
encoding: videoStream["encoding"].string,
|
||||
|
@ -8,6 +8,7 @@ struct InstanceSettings: View {
|
||||
|
||||
@State private var frontendURL = ""
|
||||
@State private var proxiesVideos = false
|
||||
@State private var invidiousCompanion = false
|
||||
|
||||
var body: some View {
|
||||
List {
|
||||
@ -87,6 +88,16 @@ struct InstanceSettings: View {
|
||||
InstancesModel.shared.setProxiesVideos(instance, newValue)
|
||||
}
|
||||
}
|
||||
|
||||
if instance.app == .invidious {
|
||||
invidiousCompanionToggle
|
||||
.onAppear {
|
||||
invidiousCompanion = instance.invidiousCompanion
|
||||
}
|
||||
.onChange(of: invidiousCompanion) { newValue in
|
||||
InstancesModel.shared.setInvidiousCompanion(instance, newValue)
|
||||
}
|
||||
}
|
||||
}
|
||||
#if os(tvOS)
|
||||
.frame(maxWidth: 1000)
|
||||
@ -101,6 +112,10 @@ struct InstanceSettings: View {
|
||||
Toggle("Proxy videos", isOn: $proxiesVideos)
|
||||
}
|
||||
|
||||
private var invidiousCompanionToggle: some View {
|
||||
Toggle("Invidious companion", isOn: $invidiousCompanion)
|
||||
}
|
||||
|
||||
private func removeAccount(_ account: Account) {
|
||||
AccountsModel.remove(account)
|
||||
accountsChanged.toggle()
|
||||
|
@ -4,7 +4,7 @@
|
||||
"Accounts" = "Konten";
|
||||
"Add Account" = "Konto hinzufügen";
|
||||
"Add Location" = "Ort hinzufügen";
|
||||
"Add Location..." = "Ort hinzufügen …";
|
||||
"Add Location..." = "Standort hinzufügen …";
|
||||
"Add to Playlist" = "Zu Wiedergabeliste hinzufügen";
|
||||
"Backend" = "Backend";
|
||||
"Badge color" = "Markierungsfarbe";
|
||||
|
@ -9,7 +9,7 @@
|
||||
"No results" = "Nincsenek találatok";
|
||||
"No Playlists" = "Nincsenek lejátszási listák";
|
||||
"Mark video as watched after playing" = "Jelölje meg a videót megtekintettként lejátszás után";
|
||||
"Mark watched videos with" = "Videó megtekintettnek jelölése a következővel";
|
||||
"Mark watched videos with" = "Megtekintett videók megjelölése a következővel";
|
||||
"Matrix Channel" = "Matrix csatorna";
|
||||
"Find Other" = "Egyebek keresése";
|
||||
"Hour" = "Óra";
|
||||
@ -50,13 +50,13 @@
|
||||
"Add Location..." = "Hely hozzáadása..";
|
||||
"Add profile..." = "Profil hozzáadása...";
|
||||
"Add Quality Profile" = "Minőségi profil hozzáadása";
|
||||
"Add to %@" = "Hozzáadás a %@-hoz";
|
||||
"Add to %@" = "Hozzáadás a következőhöz: %@";
|
||||
"Add to Favorites" = "Hozzáadás a kedvencekhez";
|
||||
"Add to Playlist" = "Hozzáadás a lejátszási listához";
|
||||
"Add to Playlist..." = "Hozzáadás a lejátszási listához...";
|
||||
"Advanced" = "Speciális";
|
||||
"All" = "Összes";
|
||||
"Always use AVPlayer for live videos" = "Mindig az AVPlayer-t használjon az élő videókhoz";
|
||||
"Always use AVPlayer for live videos" = "Mindig az a AVPlayer-t használja az élő videókhoz";
|
||||
"Anonymous" = "Névtelen";
|
||||
"Any" = "Bármely";
|
||||
"Apply to all" = "Alkalmazás az összesre";
|
||||
@ -105,7 +105,7 @@
|
||||
"Contact" = "Névjegy";
|
||||
"Continue" = "Folytatás";
|
||||
"Close video after playing last in the queue" = "Videó bezárása a várólistában lévő utolsó lejátszás után";
|
||||
"Continue from %@" = "Folytatás %@-tól";
|
||||
"Continue from %@" = "Folytatás ettől: %@";
|
||||
"Contributing" = "Közreműködés";
|
||||
"Controls" = "Vezérlők";
|
||||
"Copy %@ link" = "%@ hivatkozás másolása";
|
||||
@ -122,7 +122,7 @@
|
||||
"Delete" = "Törlés";
|
||||
"Disabled" = "Letiltva";
|
||||
"Discord Server" = "Discord-kiszolgáló";
|
||||
"Discussions take place in Discord and Matrix. It's a good spot for general questions." = "A megbeszélések a Discordon és a Matrixon zajlanak. Ez egy jó hely az általános kérdésekre.";
|
||||
"Discussions take place in Discord and Matrix. It's a good spot for general questions." = "A beszélgetések a Discordon és a Matrixon zajlanak. Ez egy jó hely az általános kérdésekre.";
|
||||
"Could not load locations manifest" = "Nem sikerült betölteni a helyek listáját";
|
||||
"Don't use public locations" = "Ne használjon nyilvános helyeket";
|
||||
"Donations" = "Adományok";
|
||||
@ -180,7 +180,7 @@
|
||||
"Low" = "Alacsony";
|
||||
"Low quality" = "Alacsony minőség";
|
||||
"Lowest" = "Legalacsonyabb";
|
||||
"Mark as watched" = "Megtekintettnek jelölés";
|
||||
"Mark as watched" = "Jelölés megtekintettnek";
|
||||
"Matrix Chat" = "Matrix csevegés";
|
||||
"Medium" = "Közepes";
|
||||
"Medium quality" = "Közepes minőség";
|
||||
@ -215,7 +215,7 @@
|
||||
"Play Music" = "Zene lejátszása";
|
||||
"Play Next" = "Következő lejátszása";
|
||||
"Play Now" = "Lejátszás most";
|
||||
"Playback" = "Lejátszás";
|
||||
"Playback" = "Visszajátszás";
|
||||
"Player" = "Lejátszó";
|
||||
"Playlist" = "Lejátszási lista";
|
||||
"Playlist \"%@\" will be deleted.\nIt cannot be reverted." = "A(z) „%@” lejátszási lista törlésre kerül.\nEzt nem lehet visszaállítani.";
|
||||
@ -395,9 +395,9 @@
|
||||
"Open Video" = "Videó megnyitása";
|
||||
"Default Profile" = "Alapértelmezett profil";
|
||||
"Share%@link" = "%@ hivatkozás megosztása";
|
||||
"\"%@\" will be irreversibly removed from this device." = "A „%@” visszavonhatatlanul eltávolításra kerül erről az eszközről.";
|
||||
"\"%@\" will be irreversibly removed from this device." = "A(z) „%@” visszavonhatatlanul eltávolításra kerül erről az eszközről.";
|
||||
"Could not delete document" = "A dokumentum törlése nem sikerült";
|
||||
"Are you sure you want to remove %@ location?" = "Biztosan el akarja távolítani a %@ helyet?";
|
||||
"Are you sure you want to remove %@ location?" = "Biztosan törölni szeretné a(z) %@ helyet?";
|
||||
"Live Streams" = "Élő közvetítések";
|
||||
"Verified" = "Ellenőrzött";
|
||||
"Channel" = "Csatorna";
|
||||
@ -419,7 +419,7 @@
|
||||
"Controls button: forwards" = "Vezérlőgomb: előre";
|
||||
"Gesture: backwards" = "Gesztus: hátra";
|
||||
"Hide player" = "Lejátszó elrejtése";
|
||||
"Gesture settings control skipping interval for remote arrow buttons (for 2nd generation Siri Remote or newer). Changing system controls settings requires restart." = "A gesztusbeállítások szabályozzák az ugrási intervallumot a távirányítón lévő nyíl gomboknál (a 2. generációs Siri Remote vagy újabb eszközök esetén). A rendszervezérlők beállításainak módosítása újraindítást igényel.";
|
||||
"Gesture settings control skipping interval for remote arrow buttons (for 2nd generation Siri Remote or newer). Changing system controls settings requires restart." = "A gesztusbeállítások vezérlik a kihagyási időközt a távirányítón található nyíl gombok számára (a 2. generációs Siri Remote vagy újabb modellek esetén). A rendszervezérlők beállításainak módosítása újraindítást igényel.";
|
||||
"Actions Buttons" = "Műveleti gombok";
|
||||
"Play next item" = "Következő elem lejátszása";
|
||||
"Lock orientation" = "Tájolás zárolása";
|
||||
@ -442,22 +442,22 @@
|
||||
"Mark all as unwatched" = "Jelölje meg az összeset nem megtekintettnek";
|
||||
"Playback Settings" = "Lejátszási beállítások";
|
||||
"Mark all as watched" = "Jelölje meg az összeset megtekintettnek";
|
||||
"Replay" = "Visszajátszás";
|
||||
"Replay" = "Újrajátszás";
|
||||
"Fullscreen" = "Teljes képernyő";
|
||||
"Lock" = "Zárolás";
|
||||
"Description" = "Leírás";
|
||||
"Loop one" = "Ismétlés egyesével";
|
||||
"Autoplay next" = "Következő automatikus lejátszása";
|
||||
"Stream" = "Közvetítés";
|
||||
"Enter location address to connect..." = "Adja meg a hely címét a csatlakozáshoz...";
|
||||
"Enter location address to connect..." = "Adja meg a hely címét a kapcsolódáshoz...";
|
||||
"Seek" = "Keresés";
|
||||
"Opened File" = "Megnyitott fájl";
|
||||
"File Extension" = "Fájl kiterjesztés";
|
||||
"File Extension" = "Fájl kiterjesztése";
|
||||
"Opening file…" = "Fájl megnyitása…";
|
||||
"Public account" = "Nyilvános fiók";
|
||||
"Your Accounts" = "Az Ön fiókjai";
|
||||
"Your Accounts" = "Saját fiókok";
|
||||
"Close video and player on end" = "A videó és a lejátszó bezárása a lejátszás befejeztével";
|
||||
"Use system controls with AVPlayer" = "A rendszervezérlők használata az AVPlayerrel";
|
||||
"Use system controls with AVPlayer" = "A rendszervezérlők használata az AVPlayer-rel";
|
||||
"Landscape left" = "Fekvő balra";
|
||||
"Landscape right" = "Fekvő jobbra";
|
||||
"No rotation" = "Nincs forgatás";
|
||||
@ -492,7 +492,7 @@
|
||||
"Mark channel feed as unwatched" = "Jelölje meg a csatorna hírfolyamot nem megtekintettként";
|
||||
"Tap and hold channel thumbnail to open context menu with more actions" = "Koppintson és tartsa lenyomva a csatorna miniatűrjét a további műveletekhez tartozó kontextusmenü megnyitásához";
|
||||
"Controls button: backwards" = "Vezérlőgomb: hátra";
|
||||
"Enter account credentials to connect..." = "Adja meg a fiók hitelesítő adatait a csatlakozáshoz...";
|
||||
"Enter account credentials to connect..." = "Adja meg a fiók hitelesítő adatait a kapcsolódáshoz...";
|
||||
"Show scroll to top button in comments" = "Görgetés a tetejére gomb megjelenítése a hozzászólásokban";
|
||||
"Browse without account" = "Böngészés fiók nélkül";
|
||||
"Watched: visible" = "Megtekintettek: láthatóak";
|
||||
@ -500,7 +500,7 @@
|
||||
"Playback history is empty" = "A lejátszási előzmények üresek";
|
||||
"Right" = "Jobb";
|
||||
"Gesture: fowards" = "Gesztus: előre";
|
||||
"Gesture settings control skipping interval for double click on left/right side of the player. Changing system controls settings requires restart." = "A gesztusbeállítások szabályozzák az ugrási intervallumot a dupla kattintásnál a lejátszó bal és jobb oldalán. A rendszervezérlők beállításainak módosítása újraindítást igényel.";
|
||||
"Gesture settings control skipping interval for double click on left/right side of the player. Changing system controls settings requires restart." = "A gesztusbeállítások vezérlik a kihagyási időközt a lejátszó bal/jobb oldalán történő dupla kattintás esetén. A rendszervezérlők beállításainak módosítása újraindítást igényel.";
|
||||
"Open channel" = "Csatorna megnyitása";
|
||||
"Inspector" = "Felügyelő";
|
||||
"Copy%@link" = "%@ hivatkozás másolása";
|
||||
@ -518,16 +518,16 @@
|
||||
"Share" = "Megosztás";
|
||||
"Play all unwatched" = "Összes nem megtekintettek lejátszása";
|
||||
"Available" = "Elérhető";
|
||||
"Gesture settings control skipping interval for double tap gesture on left/right side of the player. Changing system controls settings requires restart." = "A gesztusbeállítások vezérlik a dupla koppintás gesztus ugrási intervallumát a lejátszó bal és jobb oldalán. A rendszervezérlő beállításainak módosítása újraindítást igényel.";
|
||||
"Gesture settings control skipping interval for double tap gesture on left/right side of the player. Changing system controls settings requires restart." = "A gesztusbeállítások vezérlik a kihagyási időközt a lejátszó bal/jobb oldalán végzett kétszeri érintéses gesztus számára. A rendszervezérlők beállításainak módosítása újraindítást igényel.";
|
||||
"Pages buttons" = "Oldalak gombjai";
|
||||
"Only for local files and URLs" = "Csak helyi fájlok és webcímek esetén";
|
||||
"Are you sure you want to remove this document?" = "Biztosan el akarja távolítani ezt a dokumentumot?";
|
||||
"Are you sure you want to remove this document?" = "Biztosan törölni szeretné ezt a dokumentumot?";
|
||||
"Rotate when entering fullscreen on landscape video" = "Forduljon el fekvő módba teljes képernyőre váltáskor";
|
||||
"Limit" = "Limit";
|
||||
"Are you sure you want to remove %@ from Favorites?" = "Biztosan el akarja távolítani a(z) %@-t a Kedvencek közül?";
|
||||
"Are you sure you want to remove %@ from Favorites?" = "Biztosan törölni szeretné a(z) %@-t a „Kedvencek” közül?";
|
||||
"Keep channels with unwatched videos on top of subscriptions list" = "A nem megtekintett videókkal rendelkező csatornák a feliratkozási lista tetején maradnak";
|
||||
"Show video context menu options to force selected backend" = "Videó kontextusmenü beállításainak megjelenítése a kiválasztott háttérprogram kikényszerítéséhez";
|
||||
"Play Now in AVPlayer" = "Lejátszás az AVPlayerben";
|
||||
"Play Now in AVPlayer" = "Lejátszás az AVPlayer-ben";
|
||||
"Play Now in MPV" = "Lejátszás az MPV-ben";
|
||||
"Show channel avatars in videos lists" = "Csatorna profilképek megjelenítése a videók listájában";
|
||||
"Export" = "Exportálás";
|
||||
@ -537,7 +537,7 @@
|
||||
"Action button labels" = "Művelet gombok feliratai";
|
||||
"Build" = "Összeállítási szám";
|
||||
"Icon and text" = "Ikon és szöveg";
|
||||
"Custom Location already exists" = "Egyéni hely már létezik";
|
||||
"Custom Location already exists" = "Az egyéni hely már létezik";
|
||||
"Account already exists" = "A fiók már létezik";
|
||||
"Export in progress..." = "Exportálás folyamatban...";
|
||||
"In progress..." = "Folyamatban…";
|
||||
@ -554,11 +554,11 @@
|
||||
"Other data" = "Egyéb adat";
|
||||
"Do not share this file with anyone or you can lose access to your accounts. If you don't select to export passwords you will be asked to provide them during import" = "Ne ossza meg ezt a fájlt senkivel, különben elveszítheti hozzáférését a fiókjaihoz. Ha nem választja a jelszavak exportálását, akkor az importálás során meg kell adnia azokat";
|
||||
"Password required to import" = "Jelszó szükséges az importáláshoz";
|
||||
"Custom Location selected for import" = "Importáláshoz kiválasztott egyéni hely";
|
||||
"Custom Location selected for import" = "Az importáláshoz kiválasztott egyéni hely";
|
||||
"Password saved in import file" = "Az importfájlba mentett jelszó";
|
||||
"Export..." = "Exportálás…";
|
||||
"Show channel avatars in channels lists" = "Csatorna profilképek megjelenítése a csatornák listájában";
|
||||
"Import Settings..." = "Beállítások importálása...";
|
||||
"Custom Location not selected for import" = "Egyéni hely nincs kiválasztva az importáláshoz";
|
||||
"Custom Location not selected for import" = "Nincs kiválasztva egyéni hely az importáláshoz";
|
||||
"Export Settings" = "Beállítások exportálása";
|
||||
"Add %@" = "%@ hozzáadása";
|
||||
|
@ -68,3 +68,20 @@
|
||||
"Close PiP and open player when application enters foreground" = "애플리케이션이 포그라운드에 진입하면 PiP를 닫고 플레이어를 열기";
|
||||
"Close PiP when player is opened" = "플레이어가 열리면 PiP 닫기";
|
||||
"Close PiP when starting playing other video" = "다른 동영상 재생을 시작하면 PiP 닫기";
|
||||
"Error when accessing playlist" = "플레이리스트 연결 도중 오류 발생";
|
||||
"Hide sidebar" = "사이드바 숨기기";
|
||||
"Close video after playing last in the queue" = "마지막 동영상 재생 후 , 영상 닫기";
|
||||
"Comments" = "댓글";
|
||||
"Connection failed" = "연결 실패";
|
||||
"Contact" = "연락처";
|
||||
"Create Playlist" = "재생목록 생성";
|
||||
"Donations" = "후원";
|
||||
"Done" = "완료";
|
||||
"Don't use public locations" = "공공장소에서 사용하지 마십시오";
|
||||
"I have a feature request" = "기능 제안하기";
|
||||
"I like this app!" = "저는 이 앱이 좋습니다!";
|
||||
"I want to ask a question" = "질문하기";
|
||||
"Just watched" = "방금 시청한 동영상";
|
||||
"Mark as watched" = "시청 완료로 표시하기";
|
||||
"Mark video as watched after playing" = "동영상 시청 후에 시청 완료 표시하기";
|
||||
"Continue" = "다음";
|
||||
|
@ -300,14 +300,14 @@
|
||||
"Rate & Captions" = "Puan ve Altyazılar";
|
||||
"Format" = "Format";
|
||||
"Right" = "Sağ";
|
||||
"Stream FPS" = "";
|
||||
"Stream FPS" = "Yayın FPS’i";
|
||||
"Cached time" = "Önbelleğe alınan zaman";
|
||||
"Sign In Required" = "Giriş yapmanız gerekiyor";
|
||||
"Could not create share link" = "Paylaş linki oluşturulamadı";
|
||||
"Locations Manifest" = "";
|
||||
"When partially watched video is played" = "Video kısmi olarak izlendiyse";
|
||||
"Open Video" = "Video aç";
|
||||
"Add Channels, Playlists and Searches to Favorites using" = "";
|
||||
"Add Channels, Playlists and Searches to Favorites using" = "Kanallar, oynatma listeleri ve favorileri aramayı ekleyin";
|
||||
"Always" = "Her zaman";
|
||||
|
||||
/* Video date filter in search */
|
||||
@ -357,7 +357,7 @@
|
||||
"Could not delete document" = "Belge silinemedi";
|
||||
"No comments" = "Yorum yok";
|
||||
"Could not open Files" = "Dosyalar açılamadı";
|
||||
"You need to select an account\nto access %@ section" = "";
|
||||
"You need to select an account\nto access %@ section" = "%@ kesitine erişebilmek için \nbir hesap seçmeniz gerekiyor";
|
||||
"Reload manifest" = "Yeniden Yükle";
|
||||
"Could not refresh Subscriptions" = "Abonelikler yenilenemedi";
|
||||
|
||||
@ -423,7 +423,7 @@
|
||||
"Show sidebar when space permits" = "Alan olduğu sürece kenar çubuğunu göster";
|
||||
"System controls buttons" = "Sistem kontrol butonları";
|
||||
"Could not extract channel information" = "Kanal bilgisi çıkarılamadı";
|
||||
"Public Locations" = "";
|
||||
"Public Locations" = "Herkese Açık Alanlar";
|
||||
"You can find information about using Yattee in the Wiki pages." = "Wiki sayfalarında Yattee kullanımı hakkında bilgilere erişebilirsiniz.";
|
||||
|
||||
/* Player controls layout size */
|
||||
@ -440,7 +440,7 @@
|
||||
"Smaller" = "Küçült";
|
||||
"Sort" = "Sırala";
|
||||
"This cannot be reverted" = "Geriye alınamaz";
|
||||
"Public Manifest" = "";
|
||||
"Public Manifest" = "Herkese Açık Bildiri";
|
||||
"You have no Playlists" = "Çalma listeniz bulunmamaktadır";
|
||||
"Watched" = "İzlendi";
|
||||
"Could not open video" = "Video açılamadı";
|
||||
@ -461,7 +461,7 @@
|
||||
"Current Location" = "Şuanki konum";
|
||||
"Stream & Player" = "Yayın ve Oynatıcı";
|
||||
"Hardware decoder" = "Donanımsal çözücü";
|
||||
"Honor orientation lock" = "";
|
||||
"Honor orientation lock" = "Yön kilidine sadık kal";
|
||||
"Seek with horizontal swipe on video" = "Video üzerinde yatay kaydırma";
|
||||
"Segments typically found at the start of a video that include an animation, still frame or clip which are also seen in other videos by the same creator." = "Genellikle bir videonun başlangıcında bulunan ve aynı içerik oluşturucunun diğer videolarında da görülen bir animasyon, sabit kare veya klip içeren kısımlar.";
|
||||
"Switch to public locations" = "Herkese açık konumlara geç";
|
||||
|
@ -4109,7 +4109,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "Open in Yattee/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee";
|
||||
@ -4140,7 +4140,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "Open in Yattee/Info.plist";
|
||||
@ -4171,7 +4171,7 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
@ -4191,7 +4191,7 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MACOSX_DEPLOYMENT_TARGET = 11.0;
|
||||
@ -4355,7 +4355,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@ -4408,7 +4408,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "GLES_SILENCE_DEPRECATION=1";
|
||||
@ -4461,7 +4461,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
ENABLE_APP_SANDBOX = YES;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
@ -4500,7 +4500,7 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
"DEVELOPMENT_TEAM[sdk=macosx*]" = 78Z5H3M6RJ;
|
||||
ENABLE_APP_SANDBOX = YES;
|
||||
@ -4535,7 +4535,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -4558,7 +4558,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -4583,7 +4583,7 @@
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -4607,7 +4607,7 @@
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -4633,7 +4633,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEVELOPMENT_ASSET_PATHS = "";
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@ -4673,7 +4673,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
DEVELOPMENT_ASSET_PATHS = "";
|
||||
"DEVELOPMENT_TEAM[sdk=appletvos*]" = 78Z5H3M6RJ;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
@ -4713,7 +4713,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -4736,7 +4736,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 198;
|
||||
CURRENT_PROJECT_VERSION = 200;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -51,8 +51,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/SDWebImage/libwebp-Xcode.git",
|
||||
"state" : {
|
||||
"revision" : "b2b1d20a90b14d11f6ef4241da6b81c1d3f171e4",
|
||||
"version" : "1.3.2"
|
||||
"revision" : "0d60654eeefd5d7d2bef3835804892c40225e8b2",
|
||||
"version" : "1.5.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -105,8 +105,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/SDWebImage/SDWebImage",
|
||||
"state" : {
|
||||
"revision" : "10d06f6a33bafae8c164fbfd1f03391f6d4692b3",
|
||||
"version" : "5.20.0"
|
||||
"revision" : "cac9a55a3ae92478a2c95042dcc8d9695d2129ca",
|
||||
"version" : "5.21.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -150,8 +150,8 @@
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/apple/swift-log.git",
|
||||
"state" : {
|
||||
"revision" : "96a2f8a0fa41e9e09af4585e2724c4e825410b91",
|
||||
"version" : "1.6.2"
|
||||
"revision" : "3d8596ed08bd13520157f0355e35caed215ffbfa",
|
||||
"version" : "1.6.3"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ struct InstancesSettings: View {
|
||||
|
||||
@State private var frontendURL = ""
|
||||
@State private var proxiesVideos = false
|
||||
@State private var invidiousCompanion = false
|
||||
|
||||
@Environment(\.colorScheme) private var colorScheme
|
||||
@ObservedObject private var accounts = AccountsModel.shared
|
||||
@ -105,6 +106,16 @@ struct InstancesSettings: View {
|
||||
}
|
||||
}
|
||||
|
||||
if selectedInstance != nil, selectedInstance.app == .invidious {
|
||||
invidiousCompanionToggle
|
||||
.onAppear {
|
||||
invidiousCompanion = selectedInstance.invidiousCompanion
|
||||
}
|
||||
.onChange(of: invidiousCompanion) { newValue in
|
||||
InstancesModel.shared.setInvidiousCompanion(selectedInstance, newValue)
|
||||
}
|
||||
}
|
||||
|
||||
if selectedInstance != nil, !selectedInstance.app.supportsAccounts {
|
||||
Spacer()
|
||||
Text("Accounts are not supported for the application of this instance")
|
||||
@ -191,6 +202,10 @@ struct InstancesSettings: View {
|
||||
private var proxiesVideosToggle: some View {
|
||||
Toggle("Proxy videos", isOn: $proxiesVideos)
|
||||
}
|
||||
|
||||
private var invidiousCompanionToggle: some View {
|
||||
Toggle("Invidious companion", isOn: $invidiousCompanion)
|
||||
}
|
||||
}
|
||||
|
||||
struct InstancesSettingsView_Previews: PreviewProvider {
|
||||
|
Loading…
x
Reference in New Issue
Block a user