aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/Library/Resolvers/PlaylistResolver.cs14
-rw-r--r--Emby.Server.Implementations/Localization/Core/fo.json42
-rw-r--r--Emby.Server.Implementations/Playlists/PlaylistManager.cs15
3 files changed, 56 insertions, 15 deletions
diff --git a/Emby.Server.Implementations/Library/Resolvers/PlaylistResolver.cs b/Emby.Server.Implementations/Library/Resolvers/PlaylistResolver.cs
index 74c1f69616..d6513fc79c 100644
--- a/Emby.Server.Implementations/Library/Resolvers/PlaylistResolver.cs
+++ b/Emby.Server.Implementations/Library/Resolvers/PlaylistResolver.cs
@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Emby.Server.Implementations.Playlists;
using Jellyfin.Data.Enums;
using Jellyfin.Extensions;
using MediaBrowser.Controller.Library;
@@ -46,6 +47,19 @@ namespace Emby.Server.Implementations.Library.Resolvers
};
}
+ // Anything directly inside the internal playlists folder is a playlist, even when its
+ // playlist.xml is missing: failing to resolve here makes the library scan treat the
+ // playlist as deleted from disk and remove it, taking its items with it.
+ if (args.Parent is PlaylistsFolder)
+ {
+ return new Playlist
+ {
+ Path = args.Path,
+ Name = filename,
+ OpenAccess = true
+ };
+ }
+
// It's a directory-based playlist if the directory contains a playlist file
IEnumerable<string> filePaths;
try
diff --git a/Emby.Server.Implementations/Localization/Core/fo.json b/Emby.Server.Implementations/Localization/Core/fo.json
index 575d3a4a77..6c3d33ba7b 100644
--- a/Emby.Server.Implementations/Localization/Core/fo.json
+++ b/Emby.Server.Implementations/Localization/Core/fo.json
@@ -61,5 +61,45 @@
"Undefined": "Óskilmarkað",
"TasksMaintenanceCategory": "Viðlíkahald",
"TaskCleanLogs": "Reinsa gerðalistaskjáttu",
- "UserOnlineFromDevice": "{0} er íbundin frá {1}"
+ "UserOnlineFromDevice": "{0} er íbundin frá {1}",
+ "HeaderNextUp": "Næst á skránni",
+ "NotificationOptionPluginError": "Brek í ískoytisforriti",
+ "NotificationOptionInstallationFailed": "Innleggingarbrek",
+ "NotificationOptionServerRestartRequired": "Tørvur er á ambætaraendurbyrjan",
+ "TasksApplicationCategory": "Nýtsluskipan",
+ "NotificationOptionApplicationUpdateAvailable": "Skipanardagføring er tøk",
+ "NotificationOptionApplicationUpdateInstalled": "Skipanardagføring varð innløgd",
+ "UserStoppedPlayingItemWithValues": "{0} er liðugur at spæla {1} á {2}",
+ "HomeVideos": "Heimaupptøkur",
+ "StartupEmbyServerIsLoading": "Jellyfin-ambætarin er undir byrjanarinnlesing. Vinaliga royn aftur um eitt bil.",
+ "UserOfflineFromDevice": "{0} breyt av á {1}",
+ "UserPasswordChangedWithName": "Loyniorðið hjá brúkaranum {0} er broytt",
+ "TasksChannelsCategory": "Alnetsrásir",
+ "TaskCleanActivityLog": "Reinsa virksemisskrá",
+ "TaskCleanActivityLogDescription": "Strikar skrásetingar eldri enn ásetta aldur.",
+ "TaskCleanCache": "Reinsa kovaskjáttu",
+ "TaskCleanCacheDescription": "Strikar kovafílar ið kervið ikki hevur tørv á longur.",
+ "TaskCleanTranscode": "Reinsa umkotuskjáttu",
+ "TaskDownloadMissingLyrics": "Niðurtak vantandi sangtekstir",
+ "TaskDownloadMissingSubtitles": "Niðurtak vantandi undirtekstir",
+ "CleanupUserDataTaskDescription": "Strikar allar brúkaradátur, so sum spælistøðu, yndislistastøðu o.s.fr., fyri miðlar ið ikki hava verið tøkir í í minsta lagi 90 dagar.",
+ "CleanupUserDataTask": "Koyrsla ið reinsar brúkaradátur",
+ "TaskRefreshPeople": "Dagfør persónsupplýsingar",
+ "TaskRefreshPeopleDescription": "Dagførur metadátur um leikarar og leikstjórar í tínum margmiðlasavni.",
+ "TaskRefreshChannelsDescription": "Dagførur upplýsingar um alnetsrásir.",
+ "TaskDownloadMissingSubtitlesDescription": "Leitar á alnótini eftir vantandi undirtekstum grundað á metadátauppsetan.",
+ "NotificationOptionTaskFailed": "Brek undir fyriskipaðari koyrslu",
+ "TaskRefreshLibraryDescription": "Skannar títt miðlasavn fyri nýggjum fílum og dagførur metadátur.",
+ "TaskKeyframeExtractor": "Lyklamyndaúttøka",
+ "TaskKeyframeExtractorDescription": "Úttekur lyklamyndir frá kykmynda-fílum til tess at byggja nágreiniligari HLS-spælilistar. Koyrslan kann taka langa tíð.",
+ "TaskOptimizeDatabaseDescription": "Trýstur dátugrunninin saman og loysur tóma goymslu. Koyrslan kann bøta um avrikið, eftir skanning ella aðrar broytingar í savninum ið elva til dátugrunnsbroytingar.",
+ "TaskRefreshChapterImagesDescription": "Ger smámyndir fyri kykmyndir ið hava kapitlar.",
+ "TaskRefreshChapterImages": "Kapitlamyndaúttøkur",
+ "NotificationOptionVideoPlayback": "Kykmyndaspæl byrjað",
+ "NotificationOptionVideoPlaybackStopped": "Kykmyndaspæl steðgað",
+ "NotificationOptionAudioPlayback": "Ljóðspæl byrjað",
+ "NotificationOptionAudioPlaybackStopped": "Ljóðspæl steðgað",
+ "TaskExtractMediaSegments": "Leita eftir margmiðlabrotum",
+ "TaskExtractMediaSegmentsDescription": "Framleiður upplýsingar um brot í margmiðlum, við hjálp frá MediaSegment-virktum ískoytisforritum.",
+ "NotificationOptionCameraImageUploaded": "Ljósmynd uppsent"
}
diff --git a/Emby.Server.Implementations/Playlists/PlaylistManager.cs b/Emby.Server.Implementations/Playlists/PlaylistManager.cs
index 409414139c..308faed8cc 100644
--- a/Emby.Server.Implementations/Playlists/PlaylistManager.cs
+++ b/Emby.Server.Implementations/Playlists/PlaylistManager.cs
@@ -219,28 +219,15 @@ namespace Emby.Server.Implementations.Playlists
var playlist = _libraryManager.GetItemById(playlistId) as Playlist
?? throw new ArgumentException("No Playlist exists with Id " + playlistId);
- // Retrieve all the items to be added to the playlist
+ // Retrieve all the items to be added to the playlist.
var newItems = GetPlaylistItems(newItemIds, user, options)
.Where(i => i.SupportsAddingToPlaylist);
- // Filter out duplicate items
- var existingIds = playlist.LinkedChildren.Select(c => c.ItemId).ToHashSet();
- newItems = newItems
- .Where(i => !existingIds.Contains(i.Id))
- .Distinct();
-
// Create a list of the new linked children to add to the playlist
var childrenToAdd = newItems
.Select(LinkedChild.Create)
.ToList();
- // Log duplicates that have been ignored, if any
- int numDuplicates = newItemIds.Count - childrenToAdd.Count;
- if (numDuplicates > 0)
- {
- _logger.LogWarning("Ignored adding {DuplicateCount} duplicate items to playlist {PlaylistName}.", numDuplicates, playlist.Name);
- }
-
// Do nothing else if there are no items to add to the playlist
if (childrenToAdd.Count == 0)
{