mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-02-23 13:02:26 +00:00
Compare commits
8 Commits
v10.11.0-r
...
v10.11.0-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d483c3efe6 | ||
|
|
275c1a3cc1 | ||
|
|
4942b2c15f | ||
|
|
3fc71293b4 | ||
|
|
8ea9bece03 | ||
|
|
baa7f5f0b0 | ||
|
|
b9c96f3d2c | ||
|
|
08f9b932ac |
2
.github/workflows/ci-compat.yml
vendored
2
.github/workflows/ci-compat.yml
vendored
@@ -105,7 +105,7 @@ jobs:
|
||||
run: |
|
||||
{
|
||||
echo 'body<<EOF'
|
||||
for file in Jellyfin.Data.dll MediaBrowser.Common.dll MediaBrowser.Controller.dll MediaBrowser.Model.dll Emby.Naming.dll Jellyfin.Extensions.dll Jellyfin.MediaEncoding.Keyframes.dll Jellyfin.Database.Implementations.dll Jellyfin.CodeAnalysis.dll; do
|
||||
for file in Jellyfin.Data.dll MediaBrowser.Common.dll MediaBrowser.Controller.dll MediaBrowser.Model.dll Emby.Naming.dll Jellyfin.Extensions.dll Jellyfin.MediaEncoding.Keyframes.dll Jellyfin.Database.Implementations.dll; do
|
||||
COMPAT_OUTPUT="$( { apicompat --left ./abi-base/${file} --right ./abi-head/${file}; } 2>&1 )"
|
||||
if [ "APICompat ran successfully without finding any breaking changes." != "${COMPAT_OUTPUT}" ]; then
|
||||
printf "\n${file}\n${COMPAT_OUTPUT}\n"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Custom Analyzers -->
|
||||
<ItemGroup Condition=" '$(MSBuildProjectName)' != 'Jellyfin.CodeAnalysis' ">
|
||||
<ItemGroup Condition=" '$(MSBuildProjectName)' != 'Jellyfin.CodeAnalysis' AND '$(Configuration)' == 'Debug' ">
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)src/Jellyfin.CodeAnalysis/Jellyfin.CodeAnalysis.csproj" OutputItemType="Analyzer" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -1,3 +1,62 @@
|
||||
{
|
||||
"Books": "liv"
|
||||
"Books": "Liv",
|
||||
"TasksLibraryCategory": "Libreri",
|
||||
"Albums": "Albòm yo",
|
||||
"Artists": "Atis yo",
|
||||
"Application": "Aplikasyon",
|
||||
"Channels": "Kanal yo",
|
||||
"ChapterNameValue": "Chapit {0}",
|
||||
"Default": "Defo",
|
||||
"DeviceOnlineWithName": "{0} konekte",
|
||||
"DeviceOfflineWithName": "{0} dekonekte",
|
||||
"External": "Extèn",
|
||||
"Collections": "Koleksyon yo",
|
||||
"Favorites": "Pi Renmen",
|
||||
"Folders": "Dosye",
|
||||
"Genres": "Jan yo",
|
||||
"Forced": "Fòse",
|
||||
"HeaderAlbumArtists": "Albòm Atis",
|
||||
"HeaderContinueWatching": "Kontinye Kade",
|
||||
"HeaderFavoriteAlbums": "Albòm Pi Renmen",
|
||||
"HeaderFavoriteArtists": "Atis Pi Renmen",
|
||||
"HeaderFavoriteEpisodes": "Epizòd Pi Renmen",
|
||||
"HeaderFavoriteShows": "Emisyon Pi Renmen",
|
||||
"HeaderFavoriteSongs": "Mizik Pi Renmen",
|
||||
"HeaderLiveTV": "Televizyon an Direk",
|
||||
"HeaderNextUp": "Pwochen an",
|
||||
"HomeVideos": "Videyo Lakay",
|
||||
"Latest": "Pi Resan",
|
||||
"MessageApplicationUpdated": "Sèvè Jellyfin met a jou",
|
||||
"MessageApplicationUpdatedTo": "Sèvè Jellyfin met a jou sou {0}",
|
||||
"Movies": "Fim",
|
||||
"MixedContent": "Kontni Melanje",
|
||||
"Music": "Mizik",
|
||||
"MusicVideos": "Videyo Mizik",
|
||||
"NameInstallFailed": "{0} enstalasyon fe fayit",
|
||||
"NameSeasonNumber": "Sezon {0}",
|
||||
"NameSeasonUnknown": "Sezon Enkoni",
|
||||
"NotificationOptionCameraImageUploaded": "Imaj Kamera telechaje",
|
||||
"NotificationOptionInstallationFailed": "Enstalasyon echwe",
|
||||
"Photos": "Foto",
|
||||
"PluginInstalledWithName": "{0} te enstale",
|
||||
"PluginUninstalledWithName": "{0} te dezenstale",
|
||||
"PluginUpdatedWithName": "{0} te mi a jou",
|
||||
"ScheduledTaskFailedWithName": "{0} echwe",
|
||||
"ScheduledTaskStartedWithName": "{0} komanse",
|
||||
"Songs": "Mizik yo",
|
||||
"Shows": "Emisyon yo",
|
||||
"System": "Sistèm",
|
||||
"TvShows": "Emisyon Tele",
|
||||
"User": "Itilizatè",
|
||||
"UserCreatedWithName": "Itilizatè {0} kreye",
|
||||
"UserDeletedWithName": "Itilizatè {0} a efase",
|
||||
"UserDownloadingItemWithValues": "{0} ap telechaje {1}",
|
||||
"UserOfflineFromDevice": "{0} dekonekte de {1}",
|
||||
"UserStartedPlayingItemWithValues": "{0} ap jwe {1} sou {2}",
|
||||
"UserStoppedPlayingItemWithValues": "{0} fin jwe {1} sou {2}",
|
||||
"UserPasswordChangedWithName": "Modpas la chanje pou Itilizatè {0}",
|
||||
"ValueSpecialEpisodeName": "Spesyal - {0}",
|
||||
"VersionNumber": "Vesyon {0}",
|
||||
"TasksApplicationCategory": "Aplikasyon",
|
||||
"TasksMaintenanceCategory": "Antretyen"
|
||||
}
|
||||
|
||||
@@ -257,6 +257,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!baseItemIds.Contains(refItem.Id))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
userData.ItemId = refItem.Id;
|
||||
operation.JellyfinDbContext.UserData.Add(userData);
|
||||
}
|
||||
@@ -287,7 +292,13 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine
|
||||
{
|
||||
foreach (SqliteDataReader dto in connection.Query(mediaStreamQuery))
|
||||
{
|
||||
operation.JellyfinDbContext.MediaStreamInfos.Add(GetMediaStream(dto));
|
||||
var entity = GetMediaStream(dto);
|
||||
if (!baseItemIds.Contains(entity.ItemId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
operation.JellyfinDbContext.MediaStreamInfos.Add(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +321,13 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine
|
||||
{
|
||||
foreach (SqliteDataReader dto in connection.Query(mediaAttachmentQuery))
|
||||
{
|
||||
operation.JellyfinDbContext.AttachmentStreamInfos.Add(GetMediaAttachment(dto));
|
||||
var entity = GetMediaAttachment(dto);
|
||||
if (!baseItemIds.Contains(entity.ItemId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
operation.JellyfinDbContext.AttachmentStreamInfos.Add(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,6 +413,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine
|
||||
foreach (SqliteDataReader dto in connection.Query(chapterQuery))
|
||||
{
|
||||
var chapter = GetChapter(dto);
|
||||
if (!baseItemIds.Contains(chapter.ItemId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
operation.JellyfinDbContext.Chapters.Add(chapter);
|
||||
}
|
||||
}
|
||||
@@ -422,6 +444,11 @@ internal class MigrateLibraryDb : IDatabaseMigrationRoutine
|
||||
foreach (SqliteDataReader dto in connection.Query(ancestorIdsQuery))
|
||||
{
|
||||
var ancestorId = GetAncestorId(dto);
|
||||
if (!baseItemIds.Contains(ancestorId.ItemId) || !baseItemIds.Contains(ancestorId.ParentItemId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
operation.JellyfinDbContext.AncestorIds.Add(ancestorId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,24 +7,6 @@
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Stability)'=='Unstable'">
|
||||
<!-- Include all symbols in the main nupkg until Azure Artifact Feed starts supporting ingesting NuGet symbol packages. -->
|
||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Jellyfin Contributors</Authors>
|
||||
<PackageId>Jellyfin.CodeAnalysis</PackageId>
|
||||
<VersionPrefix>10.11.0</VersionPrefix>
|
||||
<RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
|
||||
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -15,22 +15,22 @@ DELETE FROM BaseItems
|
||||
WHERE
|
||||
ParentId IS NOT NULL
|
||||
AND
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE ParentId = parent.Id);
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE parent.Id = BaseItems.ParentId);
|
||||
DELETE FROM BaseItems
|
||||
WHERE
|
||||
ParentId IS NOT NULL
|
||||
AND
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE ParentId = parent.Id);
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE parent.Id = BaseItems.ParentId);
|
||||
DELETE FROM BaseItems
|
||||
WHERE
|
||||
ParentId IS NOT NULL
|
||||
AND
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE ParentId = parent.Id);
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE parent.Id = BaseItems.ParentId);
|
||||
DELETE FROM BaseItems
|
||||
WHERE
|
||||
ParentId IS NOT NULL
|
||||
AND
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE ParentId = parent.Id);
|
||||
NOT EXISTS(SELECT 1 FROM BaseItems parent WHERE parent.Id = BaseItems.ParentId);
|
||||
""");
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_BaseItems_BaseItems_ParentId",
|
||||
|
||||
Reference in New Issue
Block a user