Bläddra i källkod

Merge branch 'beta'

Luke Pulverenti 9 år sedan
förälder
incheckning
ed184b194b

+ 5 - 0
MediaBrowser.Controller/Entities/InternalItemsQuery.cs

@@ -181,6 +181,11 @@ namespace MediaBrowser.Controller.Entities
 
         public InternalItemsQuery(User user)
             : this()
+        {
+            SetUser(user);
+        }
+
+        public void SetUser(User user)
         {
             if (user != null)
             {

+ 124 - 79
MediaBrowser.Controller/Entities/UserViewBuilder.cs

@@ -125,13 +125,13 @@ namespace MediaBrowser.Controller.Entities
                 case CollectionType.HomeVideos:
                 case CollectionType.Games:
                 case CollectionType.MusicVideos:
-                {
-                    if (query.Recursive)
                     {
-                        return GetResult(queryParent.GetRecursiveChildren(user, true), queryParent, query);
+                        if (query.Recursive)
+                        {
+                            return GetResult(queryParent.GetRecursiveChildren(user, true), queryParent, query);
+                        }
+                        return GetResult(queryParent.GetChildren(user, true), queryParent, query);
                     }
-                    return GetResult(queryParent.GetChildren(user, true), queryParent, query);
-                }
 
                 case CollectionType.Folders:
                     return GetResult(user.RootFolder.GetChildren(user, true), queryParent, query);
@@ -140,7 +140,7 @@ namespace MediaBrowser.Controller.Entities
                     return await GetPlaylistsView(queryParent, user, query).ConfigureAwait(false);
 
                 case CollectionType.BoxSets:
-                    return await GetBoxsetView(queryParent, user, query).ConfigureAwait(false);
+                    return GetBoxsetView(queryParent, user, query);
 
                 case CollectionType.TvShows:
                     return await GetTvView(queryParent, user, query).ConfigureAwait(false);
@@ -206,7 +206,7 @@ namespace MediaBrowser.Controller.Entities
                     return GetMusicLatest(queryParent, user, query);
 
                 case SpecialFolder.MusicPlaylists:
-                    return await GetMusicPlaylists(queryParent, user, query).ConfigureAwait(false);
+                    return GetMusicPlaylists(queryParent, user, query);
 
                 case SpecialFolder.MusicAlbums:
                     return GetMusicAlbums(queryParent, user, query);
@@ -310,14 +310,14 @@ namespace MediaBrowser.Controller.Entities
 
         private async Task<QueryResult<BaseItem>> GetMusicGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(queryParent, user, new[] { CollectionType.Music, CollectionType.MusicVideos })
-                .Where(i => !i.IsFolder)
-                .Where(i => i.Genres.Contains(displayParent.Name, StringComparer.OrdinalIgnoreCase))
-                .OfType<IHasAlbumArtist>();
+            query.Recursive = true;
+            query.ParentId = queryParent.Id;
+            query.Genres = new[] { displayParent.Name };
+            query.SetUser(user);
 
-            var artists = _libraryManager.GetAlbumArtists(items);
+            query.IncludeItemTypes = new[] { typeof(MusicAlbum).Name };
 
-            return GetResult(artists, queryParent, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMusicAlbumArtists(Folder parent, User user, InternalItemsQuery query)
@@ -353,26 +353,36 @@ namespace MediaBrowser.Controller.Entities
             return GetResult(artists, parent, query);
         }
 
-        private Task<QueryResult<BaseItem>> GetMusicPlaylists(Folder parent, User user, InternalItemsQuery query)
+        private QueryResult<BaseItem> GetMusicPlaylists(Folder parent, User user, InternalItemsQuery query)
         {
-            query.IncludeItemTypes = new[] { "Playlist" };
+            query.ParentId = null;
+            query.IncludeItemTypes = new[] { typeof(Playlist).Name };
+            query.SetUser(user);
             query.Recursive = true;
 
-            return parent.GetItems(query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMusicAlbums(Folder parent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => i is MusicAlbum && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
 
-            return PostFilterAndSort(items, parent, null, query);
+            query.IncludeItemTypes = new[] { typeof(MusicAlbum).Name };
+
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMusicSongs(Folder parent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => i is Audio.Audio && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
 
-            return PostFilterAndSort(items, parent, null, query);
+            query.IncludeItemTypes = new[] { typeof(Audio.Audio).Name };
+
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMusicLatest(Folder parent, User user, InternalItemsQuery query)
@@ -389,27 +399,29 @@ namespace MediaBrowser.Controller.Entities
 
             query.SortBy = new string[] { };
 
-            //var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music, CollectionType.MusicVideos }, i => i is MusicVideo || i is Audio.Audio && FilterItem(i, query));
-
             return PostFilterAndSort(items, parent, null, query);
         }
 
         private QueryResult<BaseItem> GetFavoriteSongs(Folder parent, User user, InternalItemsQuery query)
         {
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
             query.IsFavorite = true;
+            query.IncludeItemTypes = new[] { typeof(Audio.Audio).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => i is Audio.Audio && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetFavoriteAlbums(Folder parent, User user, InternalItemsQuery query)
         {
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
             query.IsFavorite = true;
+            query.IncludeItemTypes = new[] { typeof(MusicAlbum).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Music }, i => i is MusicAlbum && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private async Task<QueryResult<BaseItem>> FindPlaylists(Folder parent, User user, InternalItemsQuery query)
@@ -428,19 +440,13 @@ namespace MediaBrowser.Controller.Entities
         {
             if (query.Recursive)
             {
-                var recursiveItems = GetRecursiveChildren(parent, user,
-                    new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty })
-                    .Where(i => i is Movie || i is BoxSet);
+                query.Recursive = true;
+                query.ParentId = parent.Id;
+                query.SetUser(user);
 
-                //var collections = _collectionManager.CollapseItemsWithinBoxSets(recursiveItems, user).ToList();
+                query.IncludeItemTypes = new[] { typeof(Movie).Name, typeof(BoxSet).Name };
 
-                //if (collections.Count > 0)
-                //{
-                //    recursiveItems.AddRange(_collectionManager.CollapseItemsWithinBoxSets(recursiveItems, user));
-                //    recursiveItems = recursiveItems.DistinctBy(i => i.Id).ToList();
-                //}
-
-                return GetResult(recursiveItems, parent, query);
+                return _libraryManager.GetItemsResult(query);
             }
 
             var list = new List<BaseItem>();
@@ -457,43 +463,51 @@ namespace MediaBrowser.Controller.Entities
 
         private QueryResult<BaseItem> GetFavoriteMovies(Folder parent, User user, InternalItemsQuery query)
         {
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
             query.IsFavorite = true;
+            query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetFavoriteSeries(Folder parent, User user, InternalItemsQuery query)
         {
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
             query.IsFavorite = true;
+            query.IncludeItemTypes = new[] { typeof(Series).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Series && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetFavoriteEpisodes(Folder parent, User user, InternalItemsQuery query)
         {
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
             query.IsFavorite = true;
+            query.IncludeItemTypes = new[] { typeof(Episode).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Episode && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMovieMovies(Folder parent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
 
-            return PostFilterAndSort(items, parent, null, query);
+            query.IncludeItemTypes = new[] { typeof(Movie).Name };
+
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMovieCollections(Folder parent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is BoxSet && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, null, query);
+            return GetBoxsetView(parent, user, query);
         }
 
         private QueryResult<BaseItem> GetMovieLatest(Folder parent, User user, InternalItemsQuery query)
@@ -501,9 +515,13 @@ namespace MediaBrowser.Controller.Entities
             query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
             query.SortOrder = SortOrder.Descending;
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
+            query.Limit = GetSpecialItemsLimit();
+            query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            return PostFilterAndSort(items, parent, GetSpecialItemsLimit(), query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetMovieResume(Folder parent, User user, InternalItemsQuery query)
@@ -511,10 +529,13 @@ namespace MediaBrowser.Controller.Entities
             query.SortBy = new[] { ItemSortBy.DatePlayed, ItemSortBy.SortName };
             query.SortOrder = SortOrder.Descending;
             query.IsResumable = true;
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
+            query.Limit = GetSpecialItemsLimit();
+            query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }, i => i is Movie && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, GetSpecialItemsLimit(), query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private async Task<QueryResult<BaseItem>> GetMovieGenres(Folder parent, User user, InternalItemsQuery query)
@@ -547,11 +568,14 @@ namespace MediaBrowser.Controller.Entities
 
         private async Task<QueryResult<BaseItem>> GetMovieGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(queryParent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty })
-                .Where(i => i is Movie)
-                .Where(i => i.Genres.Contains(displayParent.Name, StringComparer.OrdinalIgnoreCase));
+            query.Recursive = true;
+            query.ParentId = queryParent.Id;
+            query.Genres = new[] { displayParent.Name };
+            query.SetUser(user);
+
+            query.IncludeItemTypes = new[] { typeof(Movie).Name };
 
-            return GetResult(items, queryParent, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private async Task<QueryResult<BaseItem>> GetPlaylistsView(Folder parent, User user, InternalItemsQuery query)
@@ -559,20 +583,27 @@ namespace MediaBrowser.Controller.Entities
             return GetResult(_playlistManager.GetPlaylists(user.Id.ToString("N")), parent, query);
         }
 
-        private async Task<QueryResult<BaseItem>> GetBoxsetView(Folder parent, User user, InternalItemsQuery query)
+        private QueryResult<BaseItem> GetBoxsetView(Folder parent, User user, InternalItemsQuery query)
         {
-            var collections = _collectionManager.GetCollections(user);
+            query.ParentId = null;
+            query.IncludeItemTypes = new[] { typeof(BoxSet).Name };
+            query.SetUser(user);
+            query.Recursive = true;
 
-            return GetResult(collections, parent, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private async Task<QueryResult<BaseItem>> GetTvView(Folder parent, User user, InternalItemsQuery query)
         {
             if (query.Recursive)
             {
-                var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => (i is Series || i is Season || i is Episode) && FilterItem(i, query));
+                query.Recursive = true;
+                query.ParentId = parent.Id;
+                query.SetUser(user);
 
-                return PostFilterAndSort(items, parent, null, query);
+                query.IncludeItemTypes = new[] { typeof(Series).Name, typeof(Season).Name, typeof(Episode).Name };
+
+                return _libraryManager.GetItemsResult(query);
             }
 
             var list = new List<BaseItem>();
@@ -593,9 +624,13 @@ namespace MediaBrowser.Controller.Entities
             query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
             query.SortOrder = SortOrder.Descending;
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Episode && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
+            query.Limit = GetSpecialItemsLimit();
+            query.IncludeItemTypes = new[] { typeof(Episode).Name };
 
-            return PostFilterAndSort(items, parent, GetSpecialItemsLimit(), query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetTvNextUp(Folder parent, InternalItemsQuery query)
@@ -618,17 +653,24 @@ namespace MediaBrowser.Controller.Entities
             query.SortBy = new[] { ItemSortBy.DatePlayed, ItemSortBy.SortName };
             query.SortOrder = SortOrder.Descending;
             query.IsResumable = true;
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
+            query.Limit = GetSpecialItemsLimit();
+            query.IncludeItemTypes = new[] { typeof(Episode).Name };
 
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Episode && FilterItem(i, query));
-
-            return PostFilterAndSort(items, parent, GetSpecialItemsLimit(), query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetTvSeries(Folder parent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(parent, user, new[] { CollectionType.TvShows, string.Empty }, i => i is Series && FilterItem(i, query));
+            query.Recursive = true;
+            query.ParentId = parent.Id;
+            query.SetUser(user);
 
-            return PostFilterAndSort(items, parent, null, query);
+            query.IncludeItemTypes = new[] { typeof(Series).Name };
+
+            return _libraryManager.GetItemsResult(query);
         }
 
         private async Task<QueryResult<BaseItem>> GetTvGenres(Folder parent, User user, InternalItemsQuery query)
@@ -661,11 +703,14 @@ namespace MediaBrowser.Controller.Entities
 
         private async Task<QueryResult<BaseItem>> GetTvGenreItems(Folder queryParent, Folder displayParent, User user, InternalItemsQuery query)
         {
-            var items = GetRecursiveChildren(queryParent, user, new[] { CollectionType.TvShows, string.Empty })
-                .Where(i => i is Series)
-                .Where(i => i.Genres.Contains(displayParent.Name, StringComparer.OrdinalIgnoreCase));
+            query.Recursive = true;
+            query.ParentId = queryParent.Id;
+            query.Genres = new[] { displayParent.Name };
+            query.SetUser(user);
+
+            query.IncludeItemTypes = new[] { typeof(Series).Name };
 
-            return GetResult(items, queryParent, query);
+            return _libraryManager.GetItemsResult(query);
         }
 
         private QueryResult<BaseItem> GetResult<T>(QueryResult<T> result)
@@ -1735,7 +1780,7 @@ namespace MediaBrowser.Controller.Entities
 
             if (query.SeriesStatuses.Length > 0)
             {
-                var ok = new[] { item }.OfType<Series>().Any(p => p.Status.HasValue && query.SeriesStatuses.Contains(p.Status.Value)); 
+                var ok = new[] { item }.OfType<Series>().Any(p => p.Status.HasValue && query.SeriesStatuses.Contains(p.Status.Value));
                 if (!ok)
                 {
                     return false;

+ 7 - 6
MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -1385,6 +1385,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv
 
         private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, User user)
         {
+            if (user == null || (query.IsInProgress ?? false))
+            {
+                return new QueryResult<BaseItem>();
+            }
+
             var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders()
                 .SelectMany(i => i.Locations)
                 .Distinct(StringComparer.OrdinalIgnoreCase)
@@ -1413,13 +1418,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                 return new QueryResult<BaseItem>();
             }
 
-            if (user != null && !(query.IsInProgress ?? false))
+            if (_services.Count == 1)
             {
-                var initialResult = GetEmbyRecordings(query, user);
-                if (initialResult.TotalRecordCount > 0)
-                {
-                    return initialResult;
-                }
+                return GetEmbyRecordings(query, user);
             }
 
             await RefreshRecordings(cancellationToken).ConfigureAwait(false);

+ 2 - 1
MediaBrowser.Server.Implementations/Notifications/SqliteNotificationsRepository.cs

@@ -41,7 +41,8 @@ namespace MediaBrowser.Server.Implementations.Notifications
             string[] queries = {
 
                                 "create table if not exists Notifications (Id GUID NOT NULL, UserId GUID NOT NULL, Date DATETIME NOT NULL, Name TEXT NOT NULL, Description TEXT, Url TEXT, Level TEXT NOT NULL, IsRead BOOLEAN NOT NULL, Category TEXT NOT NULL, RelatedId TEXT, PRIMARY KEY (Id, UserId))",
-                                "create index if not exists idx_Notifications on Notifications(Id, UserId)",
+                                "create index if not exists idx_Notifications1 on Notifications(Id)",
+                                "create index if not exists idx_Notifications2 on Notifications(UserId)",
 
                                 //pragmas
                                 "pragma temp_store = memory",

+ 25 - 13
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -1643,9 +1643,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
                 using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
                 {
-                    //Logger.Debug("GetItemList query time: {0}ms. Query: {1}",
-                    //    Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
-                    //    cmd.CommandText);
+                    LogQueryTime("GetItemList", cmd, now);
 
                     while (reader.Read())
                     {
@@ -1659,6 +1657,26 @@ namespace MediaBrowser.Server.Implementations.Persistence
             }
         }
 
+        private void LogQueryTime(string methodName, IDbCommand cmd, DateTime startDate)
+        {
+            var elapsed = (DateTime.UtcNow - startDate).TotalMilliseconds;
+
+            if (elapsed >= 500)
+            {
+                Logger.Debug("{2} query time (slow): {0}ms. Query: {1}",
+                    Convert.ToInt32(elapsed),
+                    cmd.CommandText,
+                    methodName);
+            }
+            else
+            {
+                //Logger.Debug("{2} query time: {0}ms. Query: {1}",
+                //    Convert.ToInt32(elapsed),
+                //    cmd.CommandText,
+                //    methodName);
+            }
+        }
+
         public QueryResult<BaseItem> GetItems(InternalItemsQuery query)
         {
             if (query == null)
@@ -1728,9 +1746,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
                 using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
                 {
-                    //Logger.Debug("GetItems query time: {0}ms. Query: {1}",
-                    //    Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
-                    //    cmd.CommandText);
+                    LogQueryTime("GetItems", cmd, now);
 
                     while (reader.Read())
                     {
@@ -1878,9 +1894,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
                 using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
                 {
-                    //Logger.Debug("GetItemIdsList query time: {0}ms. Query: {1}",
-                    //    Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
-                    //    cmd.CommandText);
+                    LogQueryTime("GetItemIdsList", cmd, now);
 
                     while (reader.Read())
                     {
@@ -2036,9 +2050,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
                 using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
                 {
-                    //Logger.Debug("GetItemIds query time: {0}ms. Query: {1}",
-                    //    Convert.ToInt32((DateTime.UtcNow - now).TotalMilliseconds),
-                    //    cmd.CommandText);
+                    LogQueryTime("GetItemIds", cmd, now);
 
                     while (reader.Read())
                     {
@@ -2562,8 +2574,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
                         clause += " OR ";
                     }
                     clause += "Album=@AlbumName" + index;
-                    index++;
                     cmd.Parameters.Add(cmd, "@AlbumName" + index, DbType.String).Value = name;
+                    index++;
                 }
 
                 clause += ")";

+ 3 - 1
MediaBrowser.Server.Implementations/Sync/SyncRepository.cs

@@ -49,9 +49,11 @@ namespace MediaBrowser.Server.Implementations.Sync
 
                                 "create table if not exists SyncJobs (Id GUID PRIMARY KEY, TargetId TEXT NOT NULL, Name TEXT NOT NULL, Profile TEXT, Quality TEXT, Bitrate INT, Status TEXT NOT NULL, Progress FLOAT, UserId TEXT NOT NULL, ItemIds TEXT NOT NULL, Category TEXT, ParentId TEXT, UnwatchedOnly BIT, ItemLimit INT, SyncNewContent BIT, DateCreated DateTime, DateLastModified DateTime, ItemCount int)",
                                 "create index if not exists idx_SyncJobs on SyncJobs(Id)",
+                                "create index if not exists idx_SyncJobs1 on SyncJobs(TargetId)",
 
                                 "create table if not exists SyncJobItems (Id GUID PRIMARY KEY, ItemId TEXT, ItemName TEXT, MediaSourceId TEXT, JobId TEXT, TemporaryPath TEXT, OutputPath TEXT, Status TEXT, TargetId TEXT, DateCreated DateTime, Progress FLOAT, AdditionalFiles TEXT, MediaSource TEXT, IsMarkedForRemoval BIT, JobItemIndex INT, ItemDateModifiedTicks BIGINT)",
-                                "create index if not exists idx_SyncJobItems on SyncJobs(Id)",
+                                "create index if not exists idx_SyncJobItems1 on SyncJobItems(Id)",
+                                "create index if not exists idx_SyncJobItems2 on SyncJobItems(TargetId)",
 
                                 //pragmas
                                 "pragma temp_store = memory",

+ 0 - 6
MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj

@@ -140,12 +140,6 @@
     <Content Include="dashboard-ui\components\metadataeditor\personeditor.template.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="dashboard-ui\components\recordingeditor\recordingeditor.js">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="dashboard-ui\components\recordingeditor\recordingeditor.template.html">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="dashboard-ui\components\remotecontrol.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>