mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-19 07:06:48 +01:00
Compare commits
1 Commits
master
...
renovate/g
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d28c15e3e |
@@ -33,7 +33,7 @@
|
||||
"libfontconfig1"
|
||||
]
|
||||
},
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:3": {
|
||||
"dockerDashComposeVersion": "v2"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/github-cli:1": {},
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0" />
|
||||
<PackageVersion Include="AutoFixture" Version="4.18.1" />
|
||||
<PackageVersion Include="BDInfo" Version="0.8.0" />
|
||||
<PackageVersion Include="BitFaster.Caching" Version="2.6.0" />
|
||||
<PackageVersion Include="BitFaster.Caching" Version="2.5.4" />
|
||||
<PackageVersion Include="BlurHashSharp.SkiaSharp" Version="1.4.0-pre.1" />
|
||||
<PackageVersion Include="BlurHashSharp" Version="1.4.0-pre.1" />
|
||||
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
|
||||
@@ -74,7 +74,7 @@
|
||||
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="[3.116.1]" />
|
||||
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
|
||||
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
|
||||
<PackageVersion Include="Svg.Skia" Version="3.7.0" />
|
||||
<PackageVersion Include="Svg.Skia" Version="3.4.1" />
|
||||
<PackageVersion Include="Swashbuckle.AspNetCore.ReDoc" Version="10.1.7" />
|
||||
<PackageVersion Include="Swashbuckle.AspNetCore" Version="10.1.7" />
|
||||
<PackageVersion Include="System.Text.Json" Version="10.0.8" />
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "No s'han pogut descarregar les lletres des de {0} per a {1}"
|
||||
"Original": "Original"
|
||||
}
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "No se pudieron descargar las letras desde {0} para {1}."
|
||||
"Original": "Original"
|
||||
}
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "Theip ar liricí a íoslódáil ó {0} do {1}"
|
||||
"Original": "Bunaidh"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"AppDeviceValues": "alkalmazás: {0}, eszköz: {1}",
|
||||
"AppDeviceValues": "Program: {0}, Eszköz: {1}",
|
||||
"Artists": "Előadók",
|
||||
"AuthenticationSucceededWithUserName": "{0} sikeresen hitelesítve",
|
||||
"Books": "Könyvek",
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "Dalszöveg letöltése {0}-tól {1}-hez sikertelen"
|
||||
"Original": "Eredeti"
|
||||
}
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "Scaricamento dei testi non riuscito da {0} per {1}"
|
||||
"Original": "Originale"
|
||||
}
|
||||
|
||||
@@ -106,7 +106,5 @@
|
||||
"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.",
|
||||
"LyricDownloadFailureFromForItem": "Download das Letras falharam em {0} para o item {1}",
|
||||
"Original": "Original"
|
||||
"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."
|
||||
}
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"TaskMoveTrickplayImagesDescription": "Перемещает существующие файлы trickplay в соответствии с настройками медиатеки.",
|
||||
"CleanupUserDataTask": "Задача очистки пользовательских данных",
|
||||
"CleanupUserDataTaskDescription": "Очищает все пользовательские данные (состояние просмотра, статус избранного и т.д.) с медиа, отсутствующих по меньшей мере в течение 90 дней.",
|
||||
"Original": "Оригинальный",
|
||||
"LyricDownloadFailureFromForItem": "Не получилось скачать текст песни с {0} для {1}"
|
||||
"Original": "Оригинальный"
|
||||
}
|
||||
|
||||
@@ -107,6 +107,5 @@
|
||||
"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",
|
||||
"LyricDownloadFailureFromForItem": "Misslyckades att ladda ner låttexter från {0} för {1}"
|
||||
"Original": "Original"
|
||||
}
|
||||
|
||||
@@ -106,7 +106,5 @@
|
||||
"TaskExtractMediaSegmentsDescription": "从支持 MediaSegment 的插件中提取或获取媒体分段。",
|
||||
"TaskMoveTrickplayImagesDescription": "根据媒体库设置移动现有的进度条预览图文件。",
|
||||
"CleanupUserDataTask": "用户数据清理任务",
|
||||
"CleanupUserDataTaskDescription": "清理已被删除超过90天的媒体中的所有用户数据(观看状态、收藏夹状态等)。",
|
||||
"LyricDownloadFailureFromForItem": "无法从 {0} 下载 {1} 的歌词",
|
||||
"Original": "原始"
|
||||
"CleanupUserDataTaskDescription": "清理已被删除超过90天的媒体中的所有用户数据(观看状态、收藏夹状态等)。"
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ public class RecordingsMetadataManager
|
||||
null,
|
||||
"dateadded",
|
||||
null,
|
||||
DateTime.UtcNow.ToString(DateAddedFormat, CultureInfo.InvariantCulture)).ConfigureAwait(false);
|
||||
DateTime.Now.ToString(DateAddedFormat, CultureInfo.InvariantCulture)).ConfigureAwait(false);
|
||||
|
||||
if (item.ProductionYear.HasValue)
|
||||
{
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using Jellyfin.Extensions;
|
||||
using Jellyfin.LiveTv.Recordings;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.LiveTv;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.LiveTv;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
namespace Jellyfin.LiveTv.Tests.Recordings;
|
||||
|
||||
public sealed class RecordingsMetadataManagerTests
|
||||
{
|
||||
private readonly string _tempDir =
|
||||
Path.Combine(Path.GetTempPath(), "jellyfin-test-" + Guid.NewGuid());
|
||||
|
||||
[Fact]
|
||||
public async Task SaveRecordingMetadata_DateAddedIsUtc()
|
||||
{
|
||||
Directory.CreateDirectory(_tempDir);
|
||||
var recordingPath = Path.Combine(_tempDir, "test-recording.ts");
|
||||
FileHelper.CreateEmpty(recordingPath);
|
||||
|
||||
var config = new Mock<IConfigurationManager>();
|
||||
config.Setup(c => c.GetConfiguration("livetv"))
|
||||
.Returns(new LiveTvOptions { SaveRecordingNFO = true, SaveRecordingImages = false });
|
||||
config.Setup(c => c.GetConfiguration("xbmcmetadata"))
|
||||
.Returns(new XbmcMetadataOptions());
|
||||
|
||||
var libraryManager = new Mock<ILibraryManager>();
|
||||
libraryManager
|
||||
.Setup(l => l.GetItemList(It.IsAny<InternalItemsQuery>()))
|
||||
.Returns(Array.Empty<BaseItem>());
|
||||
|
||||
var manager = new RecordingsMetadataManager(
|
||||
NullLogger<RecordingsMetadataManager>.Instance,
|
||||
config.Object,
|
||||
libraryManager.Object);
|
||||
|
||||
var timer = new TimerInfo { Name = "Test Recording", ProgramId = null };
|
||||
|
||||
var beforeUtc = DateTime.UtcNow.AddSeconds(-2);
|
||||
await manager.SaveRecordingMetadata(timer, recordingPath, null);
|
||||
var afterUtc = DateTime.UtcNow.AddSeconds(2);
|
||||
|
||||
var doc = new XmlDocument();
|
||||
doc.Load(Path.ChangeExtension(recordingPath, ".nfo"));
|
||||
var dateAddedText = doc.SelectSingleNode("//dateadded")?.InnerText ?? string.Empty;
|
||||
var parsed = DateTime.ParseExact(
|
||||
dateAddedText,
|
||||
"yyyy-MM-dd HH:mm:ss",
|
||||
CultureInfo.InvariantCulture);
|
||||
|
||||
Assert.InRange(parsed, beforeUtc, afterUtc);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user