Skip to content
This repository was archived by the owner on Apr 3, 2025. It is now read-only.

Commit 6de8063

Browse files
committed
feat(tautulli): display audio language, subtitle language, and video dynamic range for activity
1 parent b98a0f8 commit 6de8063

File tree

11 files changed

+378
-163
lines changed

11 files changed

+378
-163
lines changed

assets/localization/en.json

+2
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,7 @@
818818
"tautulli.BackupDatabase": "Backup Database",
819819
"tautulli.Bandwidth": "Bandwidth",
820820
"tautulli.Burn": "Burn",
821+
"tautulli.Converting": "Converting",
821822
"tautulli.Container": "Container",
822823
"tautulli.Copy": "Copy",
823824
"tautulli.DeleteCache": "Delete Cache",
@@ -855,6 +856,7 @@
855856
"tautulli.Sessions": "Sessions",
856857
"tautulli.SessionsOne": "1 Session",
857858
"tautulli.SessionsMany": "{} Sessions",
859+
"tautulli.Speed": "Speed: {}x",
858860
"tautulli.Stream": "Stream",
859861
"tautulli.Subtitle": "Subtitle",
860862
"tautulli.Terminate": "Terminate",

assets/localization/es.json

+2
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,8 @@
680680
"sonarr.Streams": "Transmisiones",
681681
"sonarr.DownloadID": "ID de descarga",
682682
"sonarr.DownloadFailed": "Descarga fracasó",
683+
"sonarr.DeleteEpisodeFileHint1": "¿Seguro que quieres eliminar este archivo de episodio?",
684+
"sonarr.DeleteReasonManual": "El archivo fue borrado vía UI",
683685
"tautulli.Quality": "Calidad",
684686
"tautulli.None": "Ninguno",
685687
"tautulli.Terminate": "Terminar",

assets/localization/tr.json

+25-1
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,30 @@
282282
"radarr.Wanted": "İstenen",
283283
"radarr.Weight": "Ağırlık",
284284
"radarr.Year": "Yıl",
285+
"sabnzbd.Age": "Yaş",
286+
"sabnzbd.Duplicate": "Yinelenen",
287+
"sabnzbd.Failed": "Başarısız",
288+
"sabnzbd.Force": "Zorla",
289+
"sabnzbd.Repair": "Onar",
290+
"sabnzbd.RepairUnpack": "Onar/Ayıkla",
291+
"sabnzbd.RepairUnpackDelete": "Onar/Ayıkla/Sil",
292+
"sabnzbd.Size": "Boyut",
293+
"sabnzbd.ShutdownPC": "Bilgisayarı Kapat",
294+
"sabnzbd.ShutdownSABnzbd": "SABnzbd'yi Kapat",
295+
"sabnzbd.StandbyPC": "Bilgisayarı Beklemeye Al",
296+
"sabnzbd.Stop": "Durdur",
297+
"sabnzbd.CategoryDefault": "Kategori Öntanımlı Değeri",
298+
"sabnzbd.Completed": "Tamamlandı",
299+
"sabnzbd.Descending": "Azalan",
300+
"sabnzbd.High": "Yüksek",
301+
"sabnzbd.Low": "Düşük",
302+
"sabnzbd.Paused": "Duraklatıldı",
303+
"sabnzbd.All": "Tümü",
304+
"sabnzbd.Ascending": "Artan",
305+
"sabnzbd.HibernatePC": "Bilgisayarı Hazırda Beklet",
306+
"sabnzbd.None": "Yok",
307+
"sabnzbd.Name": "Ad",
308+
"sabnzbd.Normal": "Normal",
285309
"search.Subcategories": "Alt Kategoriler",
286310
"search.Size": "Boyut",
287311
"search.SentTo": "{}'e gönderildi",
@@ -602,7 +626,7 @@
602626
"sonarr.Monitor": "Takip Et",
603627
"sonarr.MonitorEpisode": "Bölümü Takip Et",
604628
"sonarr.MonitorSeries": "Diziyi Takip Et",
605-
"sonarr.Name": "İsim",
629+
"sonarr.Name": "Ad",
606630
"sonarr.NoEpisodesFound": "Bölüm Bulunamadı",
607631
"sonarr.NoSeasonsFound": "Sezonlar Bulunamadı",
608632
"sonarr.NoSeriesFound": "Diziler Bulunamadı",

assets/localization/zh-Hans.json

+1
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,7 @@
593593
"settings.DiscordDescription": "请求功能获得支持",
594594
"settings.General": "通用",
595595
"settings.GeneralDescription": "自定义LunaSea",
596+
"settings.BootModule": "启动模块",
596597
"sonarr.AddSeries": "添加系列",
597598
"sonarr.AddedOn": "添加于",
598599
"sonarr.Age": "年龄",

lib/api/tautulli/models/activity/session.dart

+6-6
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ class TautulliSession {
312312
fromJson: TautulliUtilities.ensureStringFromJson)
313313
final String? videoResolution;
314314

315-
/// Full resoltuion of the video stream.
315+
/// Full resolution of the video stream.
316316
@JsonKey(
317317
name: 'video_full_resolution',
318318
fromJson: TautulliUtilities.ensureStringFromJson)
@@ -793,13 +793,13 @@ class TautulliSession {
793793
@JsonKey(
794794
name: 'transcode_hw_encode',
795795
fromJson: TautulliUtilities.ensureStringFromJson)
796-
final String? transcodeHardwarEencode;
796+
final String? transcodeHardwareEncode;
797797

798798
/// Hardware encode title of the transcode stream.
799799
@JsonKey(
800800
name: 'transcode_hw_encode_title',
801801
fromJson: TautulliUtilities.ensureStringFromJson)
802-
final String? transcodeHardwarEencodeTitle;
802+
final String? transcodeHardwareEncodeTitle;
803803

804804
/// Is the transcoder using hardware acceleration for the full pipeline?
805805
@JsonKey(
@@ -958,7 +958,7 @@ class TautulliSession {
958958
@JsonKey(name: 'subtitles', fromJson: TautulliUtilities.ensureBooleanFromJson)
959959
final bool? subtitles;
960960

961-
/// Full resoltuion of the final video stream.
961+
/// Full resolution of the final video stream.
962962
@JsonKey(
963963
name: 'stream_video_full_resolution',
964964
fromJson: TautulliUtilities.ensureStringFromJson)
@@ -1295,8 +1295,8 @@ class TautulliSession {
12951295
this.transcodeHardwareRequested,
12961296
this.transcodeHardwareDecode,
12971297
this.transcodeHardwareDecodeTitle,
1298-
this.transcodeHardwarEencode,
1299-
this.transcodeHardwarEencodeTitle,
1298+
this.transcodeHardwareEncode,
1299+
this.transcodeHardwareEncodeTitle,
13001300
this.transcodeHardwareFullPipeline,
13011301
this.audioDecision,
13021302
this.videoDecision,

lib/api/tautulli/types/media.dart

+25-5
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@ enum TautulliMediaType {
99
ARTIST,
1010
ALBUM,
1111
TRACK,
12-
LIVE,
12+
PHOTO_ALBUM,
13+
PHOTO,
14+
CLIP,
1315
COLLECTION,
16+
PLAYLIST,
17+
LIVE,
1418
NULL;
1519

1620
static TautulliMediaType from(String? type) {
@@ -29,10 +33,18 @@ enum TautulliMediaType {
2933
return TautulliMediaType.ALBUM;
3034
case 'track':
3135
return TautulliMediaType.TRACK;
32-
case 'live':
33-
return TautulliMediaType.LIVE;
36+
case 'photoalbum':
37+
return TautulliMediaType.PHOTO_ALBUM;
38+
case 'photo':
39+
return TautulliMediaType.PHOTO;
40+
case 'clip':
41+
return TautulliMediaType.CLIP;
3442
case 'collection':
3543
return TautulliMediaType.COLLECTION;
44+
case 'playlist':
45+
return TautulliMediaType.PLAYLIST;
46+
case 'live':
47+
return TautulliMediaType.LIVE;
3648
default:
3749
return TautulliMediaType.NULL;
3850
}
@@ -55,10 +67,18 @@ enum TautulliMediaType {
5567
return 'album';
5668
case TautulliMediaType.TRACK:
5769
return 'track';
58-
case TautulliMediaType.LIVE:
59-
return 'live';
70+
case TautulliMediaType.PHOTO_ALBUM:
71+
return 'photoalbum';
72+
case TautulliMediaType.PHOTO:
73+
return 'photo';
74+
case TautulliMediaType.CLIP:
75+
return 'clip';
6076
case TautulliMediaType.COLLECTION:
6177
return 'collection';
78+
case TautulliMediaType.PLAYLIST:
79+
return 'playlist';
80+
case TautulliMediaType.LIVE:
81+
return 'live';
6282
default:
6383
return '';
6484
}

lib/extensions/string/string.dart

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ extension StringExtension on String {
2020
String toTitleCase({
2121
String delimiter = ' ',
2222
}) {
23+
if (isEmpty) return '';
24+
2325
final split = this.split(delimiter);
2426
for (var i = 0; i < split.length; i++) {
2527
String word = split[i];

0 commit comments

Comments
 (0)