Merge remote-tracking branch 'upstream/master' into search-rebased

This commit is contained in:
Shadowghost
2026-05-24 18:25:12 +02:00
211 changed files with 1529 additions and 2484 deletions

View File

@@ -132,7 +132,7 @@ namespace Emby.Server.Implementations.AppBase
}
else
{
_configurationFactories = [.._configurationFactories, factory];
_configurationFactories = [.. _configurationFactories, factory];
}
_configurationStores = _configurationFactories

View File

@@ -240,15 +240,15 @@ public class ChapterManager : IChapterManager
public void SaveChapters(BaseItem item, IReadOnlyList<ChapterInfo> chapters)
{
if (!Supports(item))
{
_logger.LogWarning("Attempted to save chapters for unsupported item type {Type}: {Name} ({Id})", item.GetType().Name, item.Name, item.Id);
return;
}
{
_logger.LogWarning("Attempted to save chapters for unsupported item type {Type}: {Name} ({Id})", item.GetType().Name, item.Name, item.Id);
return;
}
// Remove any chapters that are outside of the runtime of the item
var validChapters = chapters.Where(c => c.StartPositionTicks < item.RunTimeTicks).ToList();
_chapterRepository.SaveChapters(item.Id, validChapters);
}
}
/// <inheritdoc />
public ChapterInfo? GetChapter(Guid baseItemId, int index)

View File

@@ -45,7 +45,7 @@ namespace Emby.Server.Implementations.Library
'[' => ']',
'(' => ')',
'{' => '}',
_ => '\0'
_ => '\0'
};
if (attributeCloser != '\0' && (str[attributeEnd] == '=' || str[attributeEnd] == '-'))
{

View File

@@ -31,7 +31,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
/// </summary>
/// <param name="logger">The logger.</param>
/// <param name="namingOptions">The naming options.</param>
public SeriesResolver(ILogger<SeriesResolver> logger, NamingOptions namingOptions)
public SeriesResolver(ILogger<SeriesResolver> logger, NamingOptions namingOptions)
{
_logger = logger;
_namingOptions = namingOptions;

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImagesDescription": "ينقل ملفات معاينات التنقل الحالية وفقاً لإعدادات المكتبة.",
"CleanupUserDataTask": "مهمة تنظيف بيانات المستخدم",
"CleanupUserDataTaskDescription": "ينظف جميع بيانات المستخدم (مثل حالة المشاهدة وحالة المفضلة وغيرها) للمحتوى الذي لم يعد موجوداً لمدة 90 يوماً على الأقل.",
"Original": "فريد"
"Original": "فريد",
"LyricDownloadFailureFromForItem": "فشل تحميل الكلمات من {0} إلى {1}"
}

View File

@@ -0,0 +1,63 @@
{
"Artists": "Arzourien",
"AuthenticationSucceededWithUserName": "{0} kennasket gant berzh",
"Books": "Levrioù",
"ChapterNameValue": "Pennad {0}",
"Collections": "Dastumadegoù",
"Default": "Dre ziouer",
"External": "Diavaez",
"FailedLoginAttemptWithUserName": "Kennaskañ c'hwitet gant {0}",
"Favorites": "Sinedoù",
"Folders": "Teuliadoù",
"Forced": "Rediet",
"Genres": "Doareoù",
"HeaderContinueWatching": "Kenderc'hel da sellet",
"HeaderFavoriteEpisodes": "Rannoù Karetañ",
"HeaderFavoriteShows": "Heuliadennoù Karetañ",
"HeaderLiveTV": "TV war-eeun",
"HeaderNextUp": "Da c'houde",
"HearingImpaired": "Tud fall o C'hleved",
"HomeVideos": "Videoioù Personel",
"Inherit": "Hêrezhiñ",
"LabelIpAddressValue": "Chomlec'h IP : {0}",
"LabelRunningTimeValue": "Padelezh : {0}",
"Latest": "Diwezhañ",
"AppDeviceValues": "Arload : {0}, Trobarzhell : {1}",
"LyricDownloadFailureFromForItem": "C'hwitet eo pellgargañ ar c'homzoù eus {0} evit {1}",
"MixedContent": "Danvez mesket",
"Movies": "Filmoù",
"Music": "Sonerezh",
"MusicVideos": "Videoioù Sonerezh",
"NameInstallFailed": "{0} c'hwitet war ar staliadur",
"NameSeasonNumber": "Koulzad {0}",
"NameSeasonUnknown": "Koulzad Dianav",
"NewVersionIsAvailable": "Ur stumm Servijer Jellyfin nevez a c'haller pellgargañ.",
"NotificationOptionApplicationUpdateAvailable": "Hizivadur an arload zo da gaout",
"NotificationOptionApplicationUpdateInstalled": "Hizivadur an arload staliet",
"NotificationOptionAudioPlayback": "Lenn aodio lañset",
"NotificationOptionAudioPlaybackStopped": "Lenn aodio ehanet",
"Original": "Orin",
"Photos": "Fotoioù",
"Shows": "Heuliadennoù",
"Undefined": "Dianav",
"TasksMaintenanceCategory": "Trezalch",
"TasksLibraryCategory": "Levraoueg",
"TasksApplicationCategory": "Arload",
"NotificationOptionInstallationFailed": "C'hwitet war staliañ",
"NotificationOptionPluginError": "Fazi Askouezh",
"NotificationOptionPluginInstalled": "Askouezh staliet",
"NotificationOptionPluginUninstalled": "Askouezh distaliet",
"ScheduledTaskFailedWithName": "c'hwitadenn war {0}",
"TvShows": "Heuliadennoù TV",
"VersionNumber": "Stumm {0}",
"TasksChannelsCategory": "Chadennoù enlinenn",
"TaskAudioNormalization": "Normalizadur an aodio",
"TaskRefreshPeople": "Freskaat ar gomedianed",
"TaskUpdatePlugins": "Hizivaat an askouezhioù",
"TaskRefreshChannels": "Freskaat ar chadennoù",
"TaskOptimizeDatabase": "Gwellekaat an diaz roadennoù",
"TaskKeyframeExtractor": "Eztenner skeudennoù-alc'hwez",
"NotificationOptionCameraImageUploaded": "Karget eo skeudenn ar benveg",
"NotificationOptionNewLibraryContent": "Danvez nevez ouzhpennet",
"NotificationOptionPluginUpdateInstalled": "Staliet eo hizivadur an askouezh"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImagesDescription": "Mou els fitxers existents d'imatges de previsualització segons la configuració de la mediateca.",
"CleanupUserDataTaskDescription": "Neteja totes les dades d'usuari (estat de la visualització, estat dels preferits, etc.) del contingut multimèdia que no ha estat present durant almenys 90 dies.",
"CleanupUserDataTask": "Tasca de neteja de dades d'usuari",
"Original": "Original"
"Original": "Original",
"LyricDownloadFailureFromForItem": "No s'han pogut descarregar les lletres des de {0} per a {1}"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImagesDescription": "Přesune existující soubory Trickplay podle nastavení knihovny.",
"CleanupUserDataTaskDescription": "Odstraní všechna uživatelská data (stav zhlédnutí, oblíbené atd.) z médií, které již neexistují více než 90 dní.",
"CleanupUserDataTask": "Pročistit uživatelská data",
"Original": "Originál"
"Original": "Originál",
"LyricDownloadFailureFromForItem": "Nepodařilo se stáhnout texty pro {1} ze služby {0}"
}

View File

@@ -106,5 +106,7 @@
"TaskMoveTrickplayImagesDescription": "Flyt eksisterende trickplay-billeder jævnfør biblioteksindstillinger.",
"TaskExtractMediaSegmentsDescription": "Udtrækker eller henter mediesegmenter fra plugins som understøtter MediaSegment.",
"CleanupUserDataTask": "Brugerdata oprydningsopgave",
"CleanupUserDataTaskDescription": "Rydder alle brugerdata (eks. visning- og favoritstatus) fra medier, der har været utilgængelige i mindst 90 dage."
"CleanupUserDataTaskDescription": "Rydder alle brugerdata (eks. visning- og favoritstatus) fra medier, der har været utilgængelige i mindst 90 dage.",
"LyricDownloadFailureFromForItem": "Sangtekster kunne ikke downloades fra {0} til {1}",
"Original": "Original"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImages": "Migrar la ubicación de la imagen de Trickplay",
"CleanupUserDataTask": "Tarea de limpieza de datos del usuario",
"CleanupUserDataTaskDescription": "Limpia todos los datos del usuario (estado de visualización, favoritos, etc.) de los medios que ya no están disponibles desde hace al menos 90 días.",
"Original": "Original"
"Original": "Original",
"LyricDownloadFailureFromForItem": "No se pudieron descargar las letras desde {0} para {1}."
}

View File

@@ -106,5 +106,7 @@
"TaskExtractMediaSegmentsDescription": "Eraldab või võtab meedialõigud MediaSegment'i toega pluginatest.",
"TaskMoveTrickplayImages": "Muuda trickplay piltide asukoht",
"CleanupUserDataTask": "Puhasta kasutajaandmed",
"CleanupUserDataTaskDescription": "Puhastab kõik kasutajaandmed (vaatamise olek, lemmikute olek jne) meediast, mida pole enam vähemalt 90 päeva saadaval olnud."
"CleanupUserDataTaskDescription": "Puhastab kõik kasutajaandmed (vaatamise olek, lemmikute olek jne) meediast, mida pole enam vähemalt 90 päeva saadaval olnud.",
"LyricDownloadFailureFromForItem": "Laulusõnade hankimine teenusest {0} loole {1} nurjus",
"Original": "Algne"
}

View File

@@ -106,5 +106,7 @@
"TaskMoveTrickplayImages": "Siirrä Trickplay-kuvien sijainti",
"TaskMoveTrickplayImagesDescription": "Siirtää olemassa olevia trickplay-tiedostoja kirjaston asetusten mukaan.",
"CleanupUserDataTask": "Käyttäjätietojen puhdistustehtävä",
"CleanupUserDataTaskDescription": "Puhdistaa kaikki käyttäjätiedot (katselutila, suosikit ym.) medioista, joita ei ole ollut saatavilla yli 90 päivään."
"CleanupUserDataTaskDescription": "Puhdistaa kaikki käyttäjätiedot (katselutila, suosikit ym.) medioista, joita ei ole ollut saatavilla yli 90 päivään.",
"LyricDownloadFailureFromForItem": "Sanoitusten lataus kohteesta {0} kappaleelle {1} epäonnistui",
"Original": "Alkuperäinen"
}

View File

@@ -107,5 +107,6 @@
"TaskDownloadMissingSubtitles": "Íosluchtaigh fotheidil ar iarraidh",
"CleanupUserDataTask": "Tasc glantacháin sonraí úsáideora",
"CleanupUserDataTaskDescription": "Glanann sé gach sonraí úsáideora (stádas faire, stádas is fearr leat srl.) ó mheáin nach bhfuil i láthair a thuilleadh ar feadh 90 lá ar a laghad.",
"Original": "Bunaidh"
"Original": "Bunaidh",
"LyricDownloadFailureFromForItem": "Theip ar liricí a íoslódáil ó {0} do {1}"
}

View File

@@ -1,5 +1,5 @@
{
"AppDeviceValues": "Program: {0}, Eszköz: {1}",
"AppDeviceValues": "alkalmazás: {0}, eszköz: {1}",
"Artists": "Előadók",
"AuthenticationSucceededWithUserName": "{0} sikeresen hitelesítve",
"Books": "Könyvek",
@@ -107,5 +107,6 @@
"TaskExtractMediaSegmentsDescription": "Kinyeri vagy megszerzi a médiaszegmenseket a MediaSegment támogatással rendelkező bővítményekből.",
"CleanupUserDataTaskDescription": "Legalább 90 napja nem elérhető médiákhoz kapcsolódó összes felhasználói adat (pl. megtekintési állapot, kedvencek) törlése.",
"CleanupUserDataTask": "Felhasználói adatok tisztítása feladat",
"Original": "Eredeti"
"Original": "Eredeti",
"LyricDownloadFailureFromForItem": "Dalszöveg letöltése {0}-tól {1}-hez sikertelen"
}

View File

@@ -107,5 +107,6 @@
"TaskExtractMediaSegments": "Scansiona Segmento Media",
"CleanupUserDataTask": "Task di pulizia dei dati utente",
"CleanupUserDataTaskDescription": "Pulisce tutti i dati utente (stato di visione, status preferiti, ecc.) dai contenuti non più presenti da almeno 90 giorni.",
"Original": "Originale"
"Original": "Originale",
"LyricDownloadFailureFromForItem": "Scaricamento dei testi non riuscito da {0} per {1}"
}

View File

@@ -2,7 +2,7 @@
"Genres": "ჟანრები",
"TasksApplicationCategory": "აპლიკაცია",
"AppDeviceValues": "აპლიკაცია: {0}, მოწყობილობა: {1}",
"Artists": "არტისტი",
"Artists": "შემსრულებლები",
"AuthenticationSucceededWithUserName": "{0} -ის ავთენტიკაცია წარმატებულია",
"Books": "წიგნები",
"Forced": "იძულებითი",
@@ -22,7 +22,7 @@
"HearingImpaired": "სმენადაქვეითებული",
"LabelRunningTimeValue": "ხანგრძლივობა: {0}",
"MixedContent": "შერეული შემცველობა",
"MusicVideos": "მუსიკალური ვიდეოები",
"MusicVideos": "მუსიკი ვიდეოები",
"NotificationOptionInstallationFailed": "დაყენების შეცდომა",
"NotificationOptionApplicationUpdateInstalled": "აპლიკაციის განახლება დაყენებულია",
"NotificationOptionAudioPlayback": "აუდიოს დაკვრა დაწყებულია",
@@ -33,22 +33,22 @@
"TasksChannelsCategory": "ინტერნეტ-არხები",
"TaskRefreshChannelsDescription": "ინტერნეტ-არხის ინფორმაციის განახლება.",
"Collections": "კოლექციები",
"Default": "ნაგულისხმეი",
"Default": "ნაგულისხმეი",
"Favorites": "რჩეულები",
"Folders": "საქაღალდეები",
"HeaderFavoriteShows": "რჩეული სერიალები",
"HeaderLiveTV": "ლაივ ტელევიზია",
"HeaderLiveTV": "ცოცხალი ტელევიზია",
"HeaderNextUp": "შემდეგი",
"HomeVideos": "სახლის ვიდეოები",
"NameSeasonNumber": "სეზონი {0}",
"NameSeasonUnknown": "სეზონი უცნობია",
"NotificationOptionPluginError": "მოდულის შეცდომა",
"NotificationOptionPluginInstalled": "მოდული დაყენებულია",
"NotificationOptionPluginError": "დამატების შეცდომა",
"NotificationOptionPluginInstalled": "დამატება დაყენებულია",
"NotificationOptionPluginUninstalled": "მოდული წაიშალა",
"ScheduledTaskFailedWithName": "{0} ვერ შესრულდა",
"ScheduledTaskFailedWithName": "{0} ჩავარდა",
"TvShows": "სატელევიზიო სერიალები",
"TaskRefreshPeople": "ხალხის განახლება",
"TaskUpdatePlugins": "მოდულების განახლება",
"TaskUpdatePlugins": "დამატებების განახლება",
"TaskRefreshChannels": "არხების განახლება",
"TaskOptimizeDatabase": "მონაცემთა ბაზის ოპტიმიზაცია",
"TaskKeyframeExtractor": "საკვანძო კადრის გამომღები",
@@ -106,5 +106,7 @@
"TaskMoveTrickplayImages": "Trickplay სურათების მიგრაცია",
"TaskMoveTrickplayImagesDescription": "გადააქვს trickplay ფაილები ბიბლიოთეკის პარამეტრებზე დაყრდნობით.",
"CleanupUserDataTask": "მომხმარებლების მონაცემების გასუფთავება",
"CleanupUserDataTaskDescription": "ასუფთავებს მომხმარებლების მონაცემებს (ყურების სტატუსი, ფავორიტები ანდ ა.შ) მედია ელემენტებისთვის რომლების 90 დღეზე მეტია აღარ არსებობენ."
"CleanupUserDataTaskDescription": "ასუფთავებს მომხმარებლების მონაცემებს (ყურების სტატუსი, ფავორიტები ანდ ა.შ) მედია ელემენტებისთვის რომლების 90 დღეზე მეტია აღარ არსებობენ.",
"LyricDownloadFailureFromForItem": "{1}-ისთვის {0}-დან ლირიკის გადმოწერა ჩავარდა",
"Original": "ორიგინალი"
}

View File

@@ -2,5 +2,14 @@
"AppDeviceValues": "Taupānga: {0}, Pūrere: {1}",
"Artists": "Kaiwaiata",
"AuthenticationSucceededWithUserName": "{0} has been successfully authenticated",
"Books": "Ngā pukapuka"
"Books": "Ngā pukapuka",
"Default": "Taunoa",
"Collections": "Kohinga",
"External": "Waho",
"Folders": "Kōpaki",
"Forced": "Kaha",
"Music": "Waiata",
"Movies": "Kiriata",
"Latest": "Hou",
"Inherit": "Riro"
}

View File

@@ -98,5 +98,10 @@
"TaskAudioNormalization": "സാധാരണ ശബ്ദ നിലയിലെത്തിലെത്തിക്കുക",
"TaskAudioNormalizationDescription": "സാധാരണ ശബ്ദ നിലയിലെത്തിലെത്തിക്കുന്ന ഡാറ്റയ്ക്കായി ഫയലുകൾ സ്കാൻ ചെയ്യുക.",
"TaskRefreshTrickplayImages": "ട്രിക്ക് പ്ലേ ചിത്രങ്ങൾ സൃഷ്ടിക്കുക",
"TaskRefreshTrickplayImagesDescription": "പ്രവർത്തനക്ഷമമാക്കിയ ലൈബ്രറികളിൽ വീഡിയോകൾക്കായി ട്രിക്ക്പ്ലേ പ്രിവ്യൂകൾ സൃഷ്ടിക്കുന്നു."
"TaskRefreshTrickplayImagesDescription": "പ്രവർത്തനക്ഷമമാക്കിയ ലൈബ്രറികളിൽ വീഡിയോകൾക്കായി ട്രിക്ക്പ്ലേ പ്രിവ്യൂകൾ സൃഷ്ടിക്കുന്നു.",
"Original": "ഓറിജിനൽ",
"TaskDownloadMissingLyrics": "ഇല്ലാത്ത വരികൾ ഡൗൺലോഡ് ചെയ്യുക",
"TaskDownloadMissingLyricsDescription": "പാട്ടുകളുടെ വരികൾ ഡൗൺലോഡ് ചെയ്യുന്നു",
"TaskExtractMediaSegments": "മീഡിയ സെഗ്‌മെന്റ് സ്‌കാൻ",
"TaskExtractMediaSegmentsDescription": "മീഡിയസെഗ്മെന്റ് പ്രാപ്തമാക്കിയ പ്ലഗിനുകളിൽ നിന്ന് മീഡിയ സെഗ്‌മെന്റുകൾ എക്‌സ്‌ട്രാക്റ്റുചെയ്യുന്നു അല്ലെങ്കിൽ നേടുന്നു."
}

View File

@@ -8,7 +8,7 @@
"FailedLoginAttemptWithUserName": "Mislukte aanmeldpoging van {0}",
"Favorites": "Favorieten",
"Folders": "Mappen",
"HeaderContinueWatching": "Verderkijken",
"HeaderContinueWatching": "Verder kijken",
"HeaderFavoriteEpisodes": "Favoriete afleveringen",
"HeaderFavoriteShows": "Favoriete series",
"HeaderLiveTV": "Live-tv",

View File

@@ -106,5 +106,7 @@
"TaskExtractMediaSegmentsDescription": "Extrai ou obtém segmentos de mídia de plug-ins habilitados para MediaSegment.",
"TaskMoveTrickplayImages": "Migrar o local da imagem do Trickplay",
"CleanupUserDataTask": "Tarefa de limpeza de dados do usuário",
"CleanupUserDataTaskDescription": "Limpa todos os dados do usuário (estado de visualização, status de favorito, etc.) de mídias que não estão presentes por pelo menos 90 dias."
"CleanupUserDataTaskDescription": "Limpa todos os dados do usuário (estado de visualização, status de favorito, etc.) de mídias que não estão presentes por pelo menos 90 dias.",
"LyricDownloadFailureFromForItem": "Download das Letras falharam em {0} para o item {1}",
"Original": "Original"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImages": "Migrar a localização da imagem do Trickplay",
"CleanupUserDataTask": "Task de limpeza de dados do usuário",
"CleanupUserDataTaskDescription": "Remove todos os dados do usuário (progresso, favoritos etc) de mídias que não estão presentes há pelo menos 90 dias.",
"Original": "Original"
"Original": "Original",
"LyricDownloadFailureFromForItem": "Erro ao descarregar letras de {0} para {1}"
}

View File

@@ -106,5 +106,7 @@
"TaskDownloadMissingLyrics": "Descarcă versurile lipsă",
"TaskDownloadMissingLyricsDescription": "Descarcă versuri pentru melodii",
"CleanupUserDataTask": "Sarcina de curatare a datelor utilizatorului",
"CleanupUserDataTaskDescription": "Sterge toate datele utilizatorului (starea vizionarii, starea favoritelor etc.) de pe suporturile media care nu mai sunt prezente timp de cel puțin 90 de zile."
"CleanupUserDataTaskDescription": "Sterge toate datele utilizatorului (starea vizionarii, starea favoritelor etc.) de pe suporturile media care nu mai sunt prezente timp de cel puțin 90 de zile.",
"LyricDownloadFailureFromForItem": "Versurile nu au putut fi descărcate din {0} pentru {1}",
"Original": "Original"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImagesDescription": "Перемещает существующие файлы trickplay в соответствии с настройками медиатеки.",
"CleanupUserDataTask": "Задача очистки пользовательских данных",
"CleanupUserDataTaskDescription": "Очищает все пользовательские данные (состояние просмотра, статус избранного и т.д.) с медиа, отсутствующих по меньшей мере в течение 90 дней.",
"Original": "Оригинальный"
"Original": "Оригинальный",
"LyricDownloadFailureFromForItem": "Не получилось скачать текст песни с {0} для {1}"
}

View File

@@ -107,5 +107,6 @@
"TaskMoveTrickplayImagesDescription": "Flyttar befintliga trickplay-filer enligt bibliotekets inställningar.",
"CleanupUserDataTaskDescription": "Tar bort all användardata (såsom vad du sett, favoriter med mera) för media som inte funnits på enheten på minst 90 dagar.",
"CleanupUserDataTask": "Uppgift för rensning av användardata",
"Original": "Original"
"Original": "Original",
"LyricDownloadFailureFromForItem": "Misslyckades att ladda ner låttexter från {0} för {1}"
}

View File

@@ -82,5 +82,7 @@
"TaskRefreshChapterImages": "Sahnadan tasvirini chiqarish",
"TaskRefreshChapterImagesDescription": "Sahnalarni o'z ichiga olgan videolar uchun eskizlarni yaratadi.",
"TaskRefreshLibrary": "Media kutubxonangizni skanerlash",
"TaskCleanLogsDescription": "{0} kundan eski log fayllarni o'chiradi."
"TaskCleanLogsDescription": "{0} kundan eski log fayllarni o'chiradi.",
"Original": "Original",
"LyricDownloadFailureFromForItem": "{0} dan {1} gacha qo'shiq matninin yuklab olishda xatolik ketdi"
}

View File

@@ -106,5 +106,7 @@
"TaskExtractMediaSegmentsDescription": "从支持 MediaSegment 的插件中提取或获取媒体分段。",
"TaskMoveTrickplayImagesDescription": "根据媒体库设置移动现有的进度条预览图文件。",
"CleanupUserDataTask": "用户数据清理任务",
"CleanupUserDataTaskDescription": "清理已被删除超过90天的媒体中的所有用户数据观看状态、收藏夹状态等。"
"CleanupUserDataTaskDescription": "清理已被删除超过90天的媒体中的所有用户数据观看状态、收藏夹状态等。",
"LyricDownloadFailureFromForItem": "无法从 {0} 下载 {1} 的歌词",
"Original": "原始"
}

View File

@@ -318,13 +318,13 @@ namespace Emby.Server.Implementations.Localization
// A lot of countries don't explicitly have a separate rating for adult content
if (ratings.All(x => x.RatingScore?.Score != 1000))
{
ratings.Add(new ParentalRating("XXX", new(1000, null)));
ratings.Add(new ParentalRating("XXX", new(1000, null)));
}
// A lot of countries don't explicitly have a separate rating for banned content
if (ratings.All(x => x.RatingScore?.Score != 1001))
{
ratings.Add(new ParentalRating("Banned", new(1001, null)));
ratings.Add(new ParentalRating("Banned", new(1001, null)));
}
return [.. ratings.OrderBy(r => r.RatingScore?.Score).ThenBy(r => r.RatingScore?.SubScore)];

View File

@@ -564,7 +564,8 @@ namespace Emby.Server.Implementations.Plugins
Id = instance.Id,
Status = PluginStatus.Active,
Name = instance.Name,
Version = instance.Version.ToString()
Version = instance.Version.ToString(),
ImageResourceName = (instance as IHasEmbeddedImage)?.ImageResourceName
})
{
Instance = instance

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;

View File

@@ -386,7 +386,7 @@ namespace Emby.Server.Implementations.Session
{
if (session is null)
{
return;
return;
}
if (string.IsNullOrEmpty(info.MediaSourceId))

View File

@@ -89,11 +89,11 @@ public class SystemManager : ISystemManager
.GetVirtualFolders()
.Where(e => !string.IsNullOrWhiteSpace(e.ItemId)) // this should not be null but for some users it is.
.Select(e => new LibraryStorageInfo()
{
Id = Guid.Parse(e.ItemId),
Name = e.Name,
Folders = e.Locations.Select(f => StorageHelper.GetFreeSpaceOf(f)).ToArray()
});
{
Id = Guid.Parse(e.ItemId),
Name = e.Name,
Folders = e.Locations.Select(f => StorageHelper.GetFreeSpaceOf(f)).ToArray()
});
return new SystemStorageInfo()
{