feat(plex): add Plays and User Rating sort options

close #1264
This commit is contained in:
edde746
2026-06-07 17:50:36 +02:00
parent eef73e6447
commit 9cebcb97c5
35 changed files with 160 additions and 23 deletions
+1
View File
@@ -751,6 +751,7 @@
"rating": "Рейтинг",
"communityRating": "Оценка от общността",
"criticRating": "Оценка от критиците",
"userRating": "Потребителска оценка",
"lastPlayed": "Последно възпроизведено",
"datePlayed": "Дата на възпроизвеждане",
"playCount": "Брой възпроизвеждания",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Vurdering",
"communityRating": "Fællesskabsvurdering",
"criticRating": "Kritikerbedømmelse",
"userRating": "Brugerbedømmelse",
"lastPlayed": "Sidst afspillet",
"datePlayed": "Afspilningsdato",
"playCount": "Antal afspilninger",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Bewertung",
"communityRating": "Community-Bewertung",
"criticRating": "Kritikerbewertung",
"userRating": "Benutzerbewertung",
"lastPlayed": "Zuletzt abgespielt",
"datePlayed": "Wiedergabedatum",
"playCount": "Wiedergaben",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Rating",
"communityRating": "Community Rating",
"criticRating": "Critic Rating",
"userRating": "User Rating",
"lastPlayed": "Last Played",
"datePlayed": "Date Played",
"playCount": "Play Count",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Valoración",
"communityRating": "Calificación de comunidad",
"criticRating": "Calificación de crítica",
"userRating": "Calificación del usuario",
"lastPlayed": "Última reproducción",
"datePlayed": "Fecha de reproducción",
"playCount": "Reproducciones",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Note",
"communityRating": "Note communautaire",
"criticRating": "Note critique",
"userRating": "Note utilisateur",
"lastPlayed": "Dernière lecture",
"datePlayed": "Date de lecture",
"playCount": "Lectures",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Valutazione",
"communityRating": "Valutazione della community",
"criticRating": "Valutazione critica",
"userRating": "Valutazione utente",
"lastPlayed": "Ultima riproduzione",
"datePlayed": "Data di riproduzione",
"playCount": "Riproduzioni",
+1
View File
@@ -751,6 +751,7 @@
"rating": "評価",
"communityRating": "コミュニティ評価",
"criticRating": "批評家評価",
"userRating": "ユーザー評価",
"lastPlayed": "最終再生",
"datePlayed": "再生日",
"playCount": "再生回数",
+1
View File
@@ -751,6 +751,7 @@
"rating": "평점",
"communityRating": "커뮤니티 평점",
"criticRating": "평론가 평점",
"userRating": "사용자 평점",
"lastPlayed": "마지막 재생",
"datePlayed": "재생일",
"playCount": "재생 횟수",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Vurdering",
"communityRating": "Fellesskapsvurdering",
"criticRating": "Kritikervurdering",
"userRating": "Brukervurdering",
"lastPlayed": "Sist spilt",
"datePlayed": "Avspillingsdato",
"playCount": "Avspillinger",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Beoordeling",
"communityRating": "Communitybeoordeling",
"criticRating": "Criticusbeoordeling",
"userRating": "Gebruikersbeoordeling",
"lastPlayed": "Laatst afgespeeld",
"datePlayed": "Afspeeldatum",
"playCount": "Aantal afspelingen",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Ocena",
"communityRating": "Ocena społeczności",
"criticRating": "Ocena krytyków",
"userRating": "Ocena użytkownika",
"lastPlayed": "Ostatnio odtwarzane",
"datePlayed": "Data odtworzenia",
"playCount": "Liczba odtworzeń",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Avaliação",
"communityRating": "Avaliação da comunidade",
"criticRating": "Avaliação da crítica",
"userRating": "Avaliação do usuário",
"lastPlayed": "Última reprodução",
"datePlayed": "Data de reprodução",
"playCount": "Reproduções",
+1
View File
@@ -751,6 +751,7 @@
"rating": "Рейтинг",
"communityRating": "Оценка сообщества",
"criticRating": "Оценка критиков",
"userRating": "Пользовательская оценка",
"lastPlayed": "Последний просмотр",
"datePlayed": "Дата просмотра",
"playCount": "Количество просмотров",
+1 -1
View File
@@ -4,7 +4,7 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 16
/// Strings: 20320 (1270 per locale)
/// Strings: 20336 (1271 per locale)
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsBg extends TranslationsLibrariesSortLabels
@override String get rating => 'Рейтинг';
@override String get communityRating => 'Оценка от общността';
@override String get criticRating => 'Оценка от критиците';
@override String get userRating => 'Потребителска оценка';
@override String get lastPlayed => 'Последно възпроизведено';
@override String get datePlayed => 'Дата на възпроизвеждане';
@override String get playCount => 'Брой възпроизвеждания';
@@ -2615,6 +2616,7 @@ extension on TranslationsBg {
'libraries.sortLabels.rating' => 'Рейтинг',
'libraries.sortLabels.communityRating' => 'Оценка от общността',
'libraries.sortLabels.criticRating' => 'Оценка от критиците',
'libraries.sortLabels.userRating' => 'Потребителска оценка',
'libraries.sortLabels.lastPlayed' => 'Последно възпроизведено',
'libraries.sortLabels.datePlayed' => 'Дата на възпроизвеждане',
'libraries.sortLabels.playCount' => 'Брой възпроизвеждания',
@@ -2944,9 +2946,9 @@ extension on TranslationsBg {
'companionRemote.remote.tabLibraries' => 'Библиотеки',
'companionRemote.remote.tabSearch' => 'Търсене',
'companionRemote.remote.tabDownloads' => 'Изтегляния',
'companionRemote.remote.tabSettings' => 'Настройки',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Настройки',
'companionRemote.remote.previous' => 'Предишен',
'companionRemote.remote.playPause' => 'Пускане/пауза',
'companionRemote.remote.next' => 'Следващ',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsDa extends TranslationsLibrariesSortLabels
@override String get rating => 'Vurdering';
@override String get communityRating => 'Fællesskabsvurdering';
@override String get criticRating => 'Kritikerbedømmelse';
@override String get userRating => 'Brugerbedømmelse';
@override String get lastPlayed => 'Sidst afspillet';
@override String get datePlayed => 'Afspilningsdato';
@override String get playCount => 'Antal afspilninger';
@@ -2615,6 +2616,7 @@ extension on TranslationsDa {
'libraries.sortLabels.rating' => 'Vurdering',
'libraries.sortLabels.communityRating' => 'Fællesskabsvurdering',
'libraries.sortLabels.criticRating' => 'Kritikerbedømmelse',
'libraries.sortLabels.userRating' => 'Brugerbedømmelse',
'libraries.sortLabels.lastPlayed' => 'Sidst afspillet',
'libraries.sortLabels.datePlayed' => 'Afspilningsdato',
'libraries.sortLabels.playCount' => 'Antal afspilninger',
@@ -2944,9 +2946,9 @@ extension on TranslationsDa {
'companionRemote.remote.tabLibraries' => 'Biblioteker',
'companionRemote.remote.tabSearch' => 'Søg',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Indstillinger',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Indstillinger',
'companionRemote.remote.previous' => 'Forrige',
'companionRemote.remote.playPause' => 'Afspil/Pause',
'companionRemote.remote.next' => 'Næste',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsDe extends TranslationsLibrariesSortLabels
@override String get rating => 'Bewertung';
@override String get communityRating => 'Community-Bewertung';
@override String get criticRating => 'Kritikerbewertung';
@override String get userRating => 'Benutzerbewertung';
@override String get lastPlayed => 'Zuletzt abgespielt';
@override String get datePlayed => 'Wiedergabedatum';
@override String get playCount => 'Wiedergaben';
@@ -2615,6 +2616,7 @@ extension on TranslationsDe {
'libraries.sortLabels.rating' => 'Bewertung',
'libraries.sortLabels.communityRating' => 'Community-Bewertung',
'libraries.sortLabels.criticRating' => 'Kritikerbewertung',
'libraries.sortLabels.userRating' => 'Benutzerbewertung',
'libraries.sortLabels.lastPlayed' => 'Zuletzt abgespielt',
'libraries.sortLabels.datePlayed' => 'Wiedergabedatum',
'libraries.sortLabels.playCount' => 'Wiedergaben',
@@ -2944,9 +2946,9 @@ extension on TranslationsDe {
'companionRemote.remote.tabLibraries' => 'Mediatheken',
'companionRemote.remote.tabSearch' => 'Suche',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Einstellungen',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Einstellungen',
'companionRemote.remote.previous' => 'Zurück',
'companionRemote.remote.playPause' => 'Wiedergabe/Pause',
'companionRemote.remote.next' => 'Weiter',
+5 -1
View File
@@ -4093,6 +4093,9 @@ class TranslationsLibrariesSortLabelsEn {
/// en: 'Critic Rating'
String get criticRating => 'Critic Rating';
/// en: 'User Rating'
String get userRating => 'User Rating';
/// en: 'Last Played'
String get lastPlayed => 'Last Played';
@@ -5161,6 +5164,7 @@ extension on Translations {
'libraries.sortLabels.rating' => 'Rating',
'libraries.sortLabels.communityRating' => 'Community Rating',
'libraries.sortLabels.criticRating' => 'Critic Rating',
'libraries.sortLabels.userRating' => 'User Rating',
'libraries.sortLabels.lastPlayed' => 'Last Played',
'libraries.sortLabels.datePlayed' => 'Date Played',
'libraries.sortLabels.playCount' => 'Play Count',
@@ -5490,9 +5494,9 @@ extension on Translations {
'companionRemote.remote.tabLibraries' => 'Libraries',
'companionRemote.remote.tabSearch' => 'Search',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Settings',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Settings',
'companionRemote.remote.previous' => 'Previous',
'companionRemote.remote.playPause' => 'Play/Pause',
'companionRemote.remote.next' => 'Next',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsEs extends TranslationsLibrariesSortLabels
@override String get rating => 'Valoración';
@override String get communityRating => 'Calificación de comunidad';
@override String get criticRating => 'Calificación de crítica';
@override String get userRating => 'Calificación del usuario';
@override String get lastPlayed => 'Última reproducción';
@override String get datePlayed => 'Fecha de reproducción';
@override String get playCount => 'Reproducciones';
@@ -2615,6 +2616,7 @@ extension on TranslationsEs {
'libraries.sortLabels.rating' => 'Valoración',
'libraries.sortLabels.communityRating' => 'Calificación de comunidad',
'libraries.sortLabels.criticRating' => 'Calificación de crítica',
'libraries.sortLabels.userRating' => 'Calificación del usuario',
'libraries.sortLabels.lastPlayed' => 'Última reproducción',
'libraries.sortLabels.datePlayed' => 'Fecha de reproducción',
'libraries.sortLabels.playCount' => 'Reproducciones',
@@ -2944,9 +2946,9 @@ extension on TranslationsEs {
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
'companionRemote.remote.tabSearch' => 'Buscar',
'companionRemote.remote.tabDownloads' => 'Descargas',
'companionRemote.remote.tabSettings' => 'Configuración',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Configuración',
'companionRemote.remote.previous' => 'Anterior',
'companionRemote.remote.playPause' => 'Reproducir/Pausar',
'companionRemote.remote.next' => 'Siguiente',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsFr extends TranslationsLibrariesSortLabels
@override String get rating => 'Note';
@override String get communityRating => 'Note communautaire';
@override String get criticRating => 'Note critique';
@override String get userRating => 'Note utilisateur';
@override String get lastPlayed => 'Dernière lecture';
@override String get datePlayed => 'Date de lecture';
@override String get playCount => 'Lectures';
@@ -2615,6 +2616,7 @@ extension on TranslationsFr {
'libraries.sortLabels.rating' => 'Note',
'libraries.sortLabels.communityRating' => 'Note communautaire',
'libraries.sortLabels.criticRating' => 'Note critique',
'libraries.sortLabels.userRating' => 'Note utilisateur',
'libraries.sortLabels.lastPlayed' => 'Dernière lecture',
'libraries.sortLabels.datePlayed' => 'Date de lecture',
'libraries.sortLabels.playCount' => 'Lectures',
@@ -2944,9 +2946,9 @@ extension on TranslationsFr {
'companionRemote.remote.tabLibraries' => 'Bibliothèques',
'companionRemote.remote.tabSearch' => 'Rechercher',
'companionRemote.remote.tabDownloads' => 'Téléchargements',
'companionRemote.remote.tabSettings' => 'Paramètres',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Paramètres',
'companionRemote.remote.previous' => 'Précédent',
'companionRemote.remote.playPause' => 'Lecture/Pause',
'companionRemote.remote.next' => 'Suivant',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsIt extends TranslationsLibrariesSortLabels
@override String get rating => 'Valutazione';
@override String get communityRating => 'Valutazione della community';
@override String get criticRating => 'Valutazione critica';
@override String get userRating => 'Valutazione utente';
@override String get lastPlayed => 'Ultima riproduzione';
@override String get datePlayed => 'Data di riproduzione';
@override String get playCount => 'Riproduzioni';
@@ -2615,6 +2616,7 @@ extension on TranslationsIt {
'libraries.sortLabels.rating' => 'Valutazione',
'libraries.sortLabels.communityRating' => 'Valutazione della community',
'libraries.sortLabels.criticRating' => 'Valutazione critica',
'libraries.sortLabels.userRating' => 'Valutazione utente',
'libraries.sortLabels.lastPlayed' => 'Ultima riproduzione',
'libraries.sortLabels.datePlayed' => 'Data di riproduzione',
'libraries.sortLabels.playCount' => 'Riproduzioni',
@@ -2944,9 +2946,9 @@ extension on TranslationsIt {
'companionRemote.remote.tabLibraries' => 'Librerie',
'companionRemote.remote.tabSearch' => 'Cerca',
'companionRemote.remote.tabDownloads' => 'Download',
'companionRemote.remote.tabSettings' => 'Impostazioni',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Impostazioni',
'companionRemote.remote.previous' => 'Precedente',
'companionRemote.remote.playPause' => 'Riproduci/Pausa',
'companionRemote.remote.next' => 'Successivo',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsJa extends TranslationsLibrariesSortLabels
@override String get rating => '評価';
@override String get communityRating => 'コミュニティ評価';
@override String get criticRating => '批評家評価';
@override String get userRating => 'ユーザー評価';
@override String get lastPlayed => '最終再生';
@override String get datePlayed => '再生日';
@override String get playCount => '再生回数';
@@ -2615,6 +2616,7 @@ extension on TranslationsJa {
'libraries.sortLabels.rating' => '評価',
'libraries.sortLabels.communityRating' => 'コミュニティ評価',
'libraries.sortLabels.criticRating' => '批評家評価',
'libraries.sortLabels.userRating' => 'ユーザー評価',
'libraries.sortLabels.lastPlayed' => '最終再生',
'libraries.sortLabels.datePlayed' => '再生日',
'libraries.sortLabels.playCount' => '再生回数',
@@ -2944,9 +2946,9 @@ extension on TranslationsJa {
'companionRemote.remote.tabLibraries' => 'ライブラリ',
'companionRemote.remote.tabSearch' => '検索',
'companionRemote.remote.tabDownloads' => 'ダウンロード',
'companionRemote.remote.tabSettings' => '設定',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => '設定',
'companionRemote.remote.previous' => '前へ',
'companionRemote.remote.playPause' => '再生/一時停止',
'companionRemote.remote.next' => '次へ',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsKo extends TranslationsLibrariesSortLabels
@override String get rating => '평점';
@override String get communityRating => '커뮤니티 평점';
@override String get criticRating => '평론가 평점';
@override String get userRating => '사용자 평점';
@override String get lastPlayed => '마지막 재생';
@override String get datePlayed => '재생일';
@override String get playCount => '재생 횟수';
@@ -2615,6 +2616,7 @@ extension on TranslationsKo {
'libraries.sortLabels.rating' => '평점',
'libraries.sortLabels.communityRating' => '커뮤니티 평점',
'libraries.sortLabels.criticRating' => '평론가 평점',
'libraries.sortLabels.userRating' => '사용자 평점',
'libraries.sortLabels.lastPlayed' => '마지막 재생',
'libraries.sortLabels.datePlayed' => '재생일',
'libraries.sortLabels.playCount' => '재생 횟수',
@@ -2944,9 +2946,9 @@ extension on TranslationsKo {
'companionRemote.remote.tabLibraries' => '미디어 라이브러리',
'companionRemote.remote.tabSearch' => '검색',
'companionRemote.remote.tabDownloads' => '다운로드',
'companionRemote.remote.tabSettings' => '설정',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => '설정',
'companionRemote.remote.previous' => '이전',
'companionRemote.remote.playPause' => '재생/일시정지',
'companionRemote.remote.next' => '다음',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsNb extends TranslationsLibrariesSortLabels
@override String get rating => 'Vurdering';
@override String get communityRating => 'Fellesskapsvurdering';
@override String get criticRating => 'Kritikervurdering';
@override String get userRating => 'Brukervurdering';
@override String get lastPlayed => 'Sist spilt';
@override String get datePlayed => 'Avspillingsdato';
@override String get playCount => 'Avspillinger';
@@ -2615,6 +2616,7 @@ extension on TranslationsNb {
'libraries.sortLabels.rating' => 'Vurdering',
'libraries.sortLabels.communityRating' => 'Fellesskapsvurdering',
'libraries.sortLabels.criticRating' => 'Kritikervurdering',
'libraries.sortLabels.userRating' => 'Brukervurdering',
'libraries.sortLabels.lastPlayed' => 'Sist spilt',
'libraries.sortLabels.datePlayed' => 'Avspillingsdato',
'libraries.sortLabels.playCount' => 'Avspillinger',
@@ -2944,9 +2946,9 @@ extension on TranslationsNb {
'companionRemote.remote.tabLibraries' => 'Biblioteker',
'companionRemote.remote.tabSearch' => 'Søk',
'companionRemote.remote.tabDownloads' => 'Nedlastinger',
'companionRemote.remote.tabSettings' => 'Innstillinger',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Innstillinger',
'companionRemote.remote.previous' => 'Forrige',
'companionRemote.remote.playPause' => 'Spill av/Pause',
'companionRemote.remote.next' => 'Neste',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsNl extends TranslationsLibrariesSortLabels
@override String get rating => 'Beoordeling';
@override String get communityRating => 'Communitybeoordeling';
@override String get criticRating => 'Criticusbeoordeling';
@override String get userRating => 'Gebruikersbeoordeling';
@override String get lastPlayed => 'Laatst afgespeeld';
@override String get datePlayed => 'Afspeeldatum';
@override String get playCount => 'Aantal afspelingen';
@@ -2615,6 +2616,7 @@ extension on TranslationsNl {
'libraries.sortLabels.rating' => 'Beoordeling',
'libraries.sortLabels.communityRating' => 'Communitybeoordeling',
'libraries.sortLabels.criticRating' => 'Criticusbeoordeling',
'libraries.sortLabels.userRating' => 'Gebruikersbeoordeling',
'libraries.sortLabels.lastPlayed' => 'Laatst afgespeeld',
'libraries.sortLabels.datePlayed' => 'Afspeeldatum',
'libraries.sortLabels.playCount' => 'Aantal afspelingen',
@@ -2944,9 +2946,9 @@ extension on TranslationsNl {
'companionRemote.remote.tabLibraries' => 'Bibliotheken',
'companionRemote.remote.tabSearch' => 'Zoeken',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Instellingen',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Instellingen',
'companionRemote.remote.previous' => 'Vorige',
'companionRemote.remote.playPause' => 'Afspelen/Pauzeren',
'companionRemote.remote.next' => 'Volgende',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsPl extends TranslationsLibrariesSortLabels
@override String get rating => 'Ocena';
@override String get communityRating => 'Ocena społeczności';
@override String get criticRating => 'Ocena krytyków';
@override String get userRating => 'Ocena użytkownika';
@override String get lastPlayed => 'Ostatnio odtwarzane';
@override String get datePlayed => 'Data odtworzenia';
@override String get playCount => 'Liczba odtworzeń';
@@ -2615,6 +2616,7 @@ extension on TranslationsPl {
'libraries.sortLabels.rating' => 'Ocena',
'libraries.sortLabels.communityRating' => 'Ocena społeczności',
'libraries.sortLabels.criticRating' => 'Ocena krytyków',
'libraries.sortLabels.userRating' => 'Ocena użytkownika',
'libraries.sortLabels.lastPlayed' => 'Ostatnio odtwarzane',
'libraries.sortLabels.datePlayed' => 'Data odtworzenia',
'libraries.sortLabels.playCount' => 'Liczba odtworzeń',
@@ -2944,9 +2946,9 @@ extension on TranslationsPl {
'companionRemote.remote.tabLibraries' => 'Biblioteki',
'companionRemote.remote.tabSearch' => 'Szukaj',
'companionRemote.remote.tabDownloads' => 'Pobrania',
'companionRemote.remote.tabSettings' => 'Ustawienia',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Ustawienia',
'companionRemote.remote.previous' => 'Poprzedni',
'companionRemote.remote.playPause' => 'Odtwórz/Pauza',
'companionRemote.remote.next' => 'Następny',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsPt extends TranslationsLibrariesSortLabels
@override String get rating => 'Avaliação';
@override String get communityRating => 'Avaliação da comunidade';
@override String get criticRating => 'Avaliação da crítica';
@override String get userRating => 'Avaliação do usuário';
@override String get lastPlayed => 'Última reprodução';
@override String get datePlayed => 'Data de reprodução';
@override String get playCount => 'Reproduções';
@@ -2615,6 +2616,7 @@ extension on TranslationsPt {
'libraries.sortLabels.rating' => 'Avaliação',
'libraries.sortLabels.communityRating' => 'Avaliação da comunidade',
'libraries.sortLabels.criticRating' => 'Avaliação da crítica',
'libraries.sortLabels.userRating' => 'Avaliação do usuário',
'libraries.sortLabels.lastPlayed' => 'Última reprodução',
'libraries.sortLabels.datePlayed' => 'Data de reprodução',
'libraries.sortLabels.playCount' => 'Reproduções',
@@ -2944,9 +2946,9 @@ extension on TranslationsPt {
'companionRemote.remote.tabLibraries' => 'Bibliotecas',
'companionRemote.remote.tabSearch' => 'Buscar',
'companionRemote.remote.tabDownloads' => 'Downloads',
'companionRemote.remote.tabSettings' => 'Configurações',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Configurações',
'companionRemote.remote.previous' => 'Anterior',
'companionRemote.remote.playPause' => 'Reproduzir/Pausar',
'companionRemote.remote.next' => 'Próximo',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsRu extends TranslationsLibrariesSortLabels
@override String get rating => 'Рейтинг';
@override String get communityRating => 'Оценка сообщества';
@override String get criticRating => 'Оценка критиков';
@override String get userRating => 'Пользовательская оценка';
@override String get lastPlayed => 'Последний просмотр';
@override String get datePlayed => 'Дата просмотра';
@override String get playCount => 'Количество просмотров';
@@ -2615,6 +2616,7 @@ extension on TranslationsRu {
'libraries.sortLabels.rating' => 'Рейтинг',
'libraries.sortLabels.communityRating' => 'Оценка сообщества',
'libraries.sortLabels.criticRating' => 'Оценка критиков',
'libraries.sortLabels.userRating' => 'Пользовательская оценка',
'libraries.sortLabels.lastPlayed' => 'Последний просмотр',
'libraries.sortLabels.datePlayed' => 'Дата просмотра',
'libraries.sortLabels.playCount' => 'Количество просмотров',
@@ -2944,9 +2946,9 @@ extension on TranslationsRu {
'companionRemote.remote.tabLibraries' => 'Библиотеки',
'companionRemote.remote.tabSearch' => 'Поиск',
'companionRemote.remote.tabDownloads' => 'Загрузки',
'companionRemote.remote.tabSettings' => 'Настройки',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Настройки',
'companionRemote.remote.previous' => 'Предыдущий',
'companionRemote.remote.playPause' => 'Воспроизведение/Пауза',
'companionRemote.remote.next' => 'Следующий',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsSv extends TranslationsLibrariesSortLabels
@override String get rating => 'Betyg';
@override String get communityRating => 'Användarbetyg';
@override String get criticRating => 'Kritikerbetyg';
@override String get userRating => 'Användarbetyg';
@override String get lastPlayed => 'Senast spelad';
@override String get datePlayed => 'Speldatum';
@override String get playCount => 'Antal spelningar';
@@ -2615,6 +2616,7 @@ extension on TranslationsSv {
'libraries.sortLabels.rating' => 'Betyg',
'libraries.sortLabels.communityRating' => 'Användarbetyg',
'libraries.sortLabels.criticRating' => 'Kritikerbetyg',
'libraries.sortLabels.userRating' => 'Användarbetyg',
'libraries.sortLabels.lastPlayed' => 'Senast spelad',
'libraries.sortLabels.datePlayed' => 'Speldatum',
'libraries.sortLabels.playCount' => 'Antal spelningar',
@@ -2944,9 +2946,9 @@ extension on TranslationsSv {
'companionRemote.remote.tabLibraries' => 'Bibliotek',
'companionRemote.remote.tabSearch' => 'Sök',
'companionRemote.remote.tabDownloads' => 'Nedladdningar',
'companionRemote.remote.tabSettings' => 'Inställningar',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => 'Inställningar',
'companionRemote.remote.previous' => 'Föregående',
'companionRemote.remote.playPause' => 'Spela/Pausa',
'companionRemote.remote.next' => 'Nästa',
+3 -1
View File
@@ -1740,6 +1740,7 @@ class _TranslationsLibrariesSortLabelsZh extends TranslationsLibrariesSortLabels
@override String get rating => '评分';
@override String get communityRating => '社区评分';
@override String get criticRating => '影评人评分';
@override String get userRating => '用户评分';
@override String get lastPlayed => '最近播放';
@override String get datePlayed => '播放日期';
@override String get playCount => '播放次数';
@@ -2615,6 +2616,7 @@ extension on TranslationsZh {
'libraries.sortLabels.rating' => '评分',
'libraries.sortLabels.communityRating' => '社区评分',
'libraries.sortLabels.criticRating' => '影评人评分',
'libraries.sortLabels.userRating' => '用户评分',
'libraries.sortLabels.lastPlayed' => '最近播放',
'libraries.sortLabels.datePlayed' => '播放日期',
'libraries.sortLabels.playCount' => '播放次数',
@@ -2944,9 +2946,9 @@ extension on TranslationsZh {
'companionRemote.remote.tabLibraries' => '媒体库',
'companionRemote.remote.tabSearch' => '搜索',
'companionRemote.remote.tabDownloads' => '下载',
'companionRemote.remote.tabSettings' => '设置',
_ => null,
} ?? switch (path) {
'companionRemote.remote.tabSettings' => '设置',
'companionRemote.remote.previous' => '上一个',
'companionRemote.remote.playPause' => '播放/暂停',
'companionRemote.remote.next' => '下一个',
+1
View File
@@ -751,6 +751,7 @@
"rating": "Betyg",
"communityRating": "Användarbetyg",
"criticRating": "Kritikerbetyg",
"userRating": "Användarbetyg",
"lastPlayed": "Senast spelad",
"datePlayed": "Speldatum",
"playCount": "Antal spelningar",
+1
View File
@@ -751,6 +751,7 @@
"rating": "评分",
"communityRating": "社区评分",
"criticRating": "影评人评分",
"userRating": "用户评分",
"lastPlayed": "最近播放",
"datePlayed": "播放日期",
"playCount": "播放次数",
+33 -6
View File
@@ -1834,19 +1834,46 @@ class PlexClient
final response = await _getWithFailover('/library/sections/$sectionId/sorts');
final sorts = _extractDirectoryList(response, MediaSort.fromJson);
if (sorts.isNotEmpty) {
return sorts;
}
// Fallback: return common sort options if API doesn't provide them
return _getFallbackSorts(libraryType);
final base = sorts.isNotEmpty ? sorts : _getFallbackSorts(libraryType);
return _withExtraSorts(base, libraryType);
} catch (e) {
appLogger.e('Failed to get library sorts: $e');
// Return fallback sort options on error
return _getFallbackSorts(libraryType);
return _withExtraSorts(_getFallbackSorts(libraryType), libraryType);
}
}
/// Append sort options that Plex honors via the `sort=` parameter but does not
/// advertise in `/library/sections/{id}/sorts`.
///
/// Plays (`viewCount`) and the signed-in user's rating (`userRating`) both
/// sort correctly on movie/show libraries, so we surface them client-side
/// (mirroring how the Jellyfin sort list is built). De-duped by key so we
/// never double up if a future Plex version starts advertising them.
List<MediaSort> _withExtraSorts(List<MediaSort> base, String? libraryType) {
final type = libraryType?.toLowerCase();
if (type != 'movie' && type != 'show') return base;
final keys = base.map((s) => s.key).toSet();
final extras = [
MediaSort(
key: 'viewCount',
descKey: 'viewCount:desc',
title: t.libraries.sortLabels.playCount,
defaultDirection: 'desc',
),
MediaSort(
key: 'userRating',
descKey: 'userRating:desc',
title: t.libraries.sortLabels.userRating,
defaultDirection: 'desc',
),
].where((s) => !keys.contains(s.key));
return [...base, ...extras];
}
/// Build fallback sort options based on library type.
///
/// If [libraryType] is null, returns generic sorts without the show-specific options.