aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs6
-rw-r--r--MediaBrowser.Controller/Playlists/Playlist.cs33
-rw-r--r--MediaBrowser.Dlna/Ssdp/SsdpHandler.cs3
-rw-r--r--MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs14
-rw-r--r--MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs (renamed from MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs)2
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json56
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json85
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj1
-rw-r--r--MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj3
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs4
-rw-r--r--MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj1
11 files changed, 182 insertions, 26 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 162c57b91..b965bf6f1 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1193,13 +1193,13 @@ namespace MediaBrowser.Api.Playback
return state.VideoRequest.Framerate.Value;
}
- var maxrate = state.VideoRequest.MaxFramerate ?? 23.97602;
+ var maxrate = state.VideoRequest.MaxFramerate;
- if (state.VideoStream != null)
+ if (maxrate.HasValue && state.VideoStream != null)
{
var contentRate = state.VideoStream.AverageFrameRate ?? state.VideoStream.RealFrameRate;
- if (contentRate.HasValue && contentRate.Value > maxrate)
+ if (contentRate.HasValue && contentRate.Value > maxrate.Value)
{
return maxrate;
}
diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs
index 2659a7c13..5da810a91 100644
--- a/MediaBrowser.Controller/Playlists/Playlist.cs
+++ b/MediaBrowser.Controller/Playlists/Playlist.cs
@@ -1,5 +1,7 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using System;
@@ -82,6 +84,30 @@ namespace MediaBrowser.Controller.Playlists
return LibraryManager.Sort(songs, user, new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName }, SortOrder.Ascending);
}
+ // Grab these explicitly to avoid the sorting that will happen below
+ var collection = i as BoxSet;
+ if (collection != null)
+ {
+ var items = user == null
+ ? collection.Children
+ : collection.GetChildren(user, true);
+
+ return items
+ .Where(m => !m.IsFolder);
+ }
+
+ // Grab these explicitly to avoid the sorting that will happen below
+ var season = i as Season;
+ if (season != null)
+ {
+ var items = user == null
+ ? season.Children
+ : season.GetChildren(user, true);
+
+ return items
+ .Where(m => !m.IsFolder);
+ }
+
var folder = i as Folder;
if (folder != null)
@@ -93,12 +119,7 @@ namespace MediaBrowser.Controller.Playlists
items = items
.Where(m => !m.IsFolder);
- if (!folder.IsPreSorted)
- {
- items = LibraryManager.Sort(items, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending);
- }
-
- return items;
+ return LibraryManager.Sort(items, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending);
}
return new[] { i };
diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
index beeeb31c0..10a234fb1 100644
--- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
+++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
@@ -62,7 +62,8 @@ namespace MediaBrowser.Dlna.Ssdp
{
if (string.Equals(args.Method, "M-SEARCH", StringComparison.OrdinalIgnoreCase))
{
- var mx = args.Headers["mx"];
+ string mx = null;
+ args.Headers.TryGetValue("mx", out mx);
int delaySeconds;
if (!string.IsNullOrWhiteSpace(mx) &&
int.TryParse(mx, NumberStyles.Any, CultureInfo.InvariantCulture, out delaySeconds)
diff --git a/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs
index 5e2c8b919..efafeae96 100644
--- a/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs
@@ -65,8 +65,7 @@ namespace MediaBrowser.Providers.TV
var season = (Season)item;
var series = season.Series;
- var identity = season.Identities.OfType<SeasonIdentity>().FirstOrDefault(id => id.Type == MetadataProviders.Tvdb.ToString());
- var seriesId = identity != null ? identity.SeriesId : null;
+ var seriesId = series != null ? series.GetProviderId(MetadataProviders.Tvdb) : null;
if (!string.IsNullOrEmpty(seriesId) && season.IndexNumber.HasValue)
{
@@ -77,9 +76,18 @@ namespace MediaBrowser.Providers.TV
var path = Path.Combine(seriesDataPath, "banners.xml");
+ var identity = season.Identities.OfType<SeasonIdentity>()
+ .FirstOrDefault(id => id.Type == MetadataProviders.Tvdb.ToString());
+
+ var seasonNumber = season.IndexNumber.Value;
+
+ if (identity != null)
+ {
+ seasonNumber = AdjustForSeriesOffset(series, identity.SeasonIndex);
+ }
+
try
{
- int seasonNumber = AdjustForSeriesOffset(series, identity.SeasonIndex);
return GetImages(path, item.GetPreferredMetadataLanguage(), seasonNumber, cancellationToken);
}
catch (FileNotFoundException)
diff --git a/MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs b/MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs
index 7b2a1314e..2f6643588 100644
--- a/MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs
+++ b/MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs
@@ -4,7 +4,7 @@ using System;
using System.IO;
using System.Threading;
-namespace MediaBrowser.ServerApplication.EntryPoints
+namespace MediaBrowser.Server.Implementations.EntryPoints
{
public class WanAddressEntryPoint : IServerEntryPoint
{
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
index 4e00741d7..c8ce64b83 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
@@ -382,5 +382,59 @@
"LabelImageFetchers": "Image fetchers:",
"LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.",
"ButtonQueueAllFromHere": "Queue all from here",
- "ButtonPlayAllFromHere": "Play all from here"
+ "ButtonPlayAllFromHere": "Play all from here",
+ "LabelDynamicExternalId": "{0} Id:",
+ "HeaderIdentify": "Identify Item",
+ "PersonTypePerson": "Person",
+ "LabelTitleDisplayOrder": "Title display order:",
+ "OptionSortName": "Sort name",
+ "OptionReleaseDate": "Release date",
+ "LabelSeasonNumber": "Season number:",
+ "LabelDiscNumber": "Disc number",
+ "LabelParentNumber": "Parent number",
+ "LabelEpisodeNumber": "Episode number:",
+ "LabelTrackNumber": "Track number:",
+ "LabelNumber": "Number:",
+ "LabelReleaseDate": "Release date:",
+ "LabelEndDate": "End date:",
+ "LabelYear": "Year:",
+ "LabelDateOfBirth": "Date of birth:",
+ "LabelBirthYear": "Birth year:",
+ "LabelDeathDate": "Death date:",
+ "HeaderRemoveMediaLocation": "Remove Media Location",
+ "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?",
+ "HeaderRenameMediaFolder": "Rename Media Folder",
+ "LabelNewName": "New name:",
+ "HeaderAddMediaFolder": "Add Media Folder",
+ "HeaderAddMediaFolderHelp": "Name (Movies, Music, TV, etc):",
+ "HeaderRemoveMediaFolder": "Remove Media Folder",
+ "MessageTheFollowingLocationWillBeRemovedFromLibrary": "The following media locations will be removed from your library:",
+ "MessageAreYouSureYouWishToRemoveMediaFolder": "Are you sure you wish to remove this media folder?",
+ "ButtonRename": "Rename",
+ "ButtonChangeType": "Change type",
+ "ButtonRemove": "Remove",
+ "HeaderMediaLocations": "Media Locations",
+ "LabelFolderTypeValue": "Folder type: {0}",
+ "LabelPathSubstitutionHelp": "Optional: Path substitution can map server paths to network shares that clients can access for direct playback.",
+ "FolderTypeMixed": "Mixed movies & tv",
+ "FolderTypeMovies": "Movies",
+ "FolderTypeMusic": "Music",
+ "FolderTypeAdultVideos": "Adult videos",
+ "FolderTypePhotos": "Photos",
+ "FolderTypeMusicVideos": "Music videos",
+ "FolderTypeHomeVideos": "Home videos",
+ "FolderTypeGames": "Games",
+ "FolderTypeBooks": "Books",
+ "FolderTypeTvShows": "TV shows",
+ "TabMovies": "Movies",
+ "TabSeries": "Series",
+ "TabEpisodes": "Episodes",
+ "TabTrailers": "Trailers",
+ "TabGames": "Games",
+ "TabAlbums": "Albums",
+ "TabSongs": "Songs",
+ "TabMusicVideos": "Music Videos",
+ "BirthPlaceValue": "Birth place: {0}",
+ "DeathDateValue": "Died: {0}",
+ "BirthDateValue": "Born: {0}"
}
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index d93cc6e23..df9e28b90 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -179,6 +179,8 @@
"TabMovies": "Movies",
"TabStudios": "Studios",
"TabTrailers": "Trailers",
+ "LabelArtists": "Artists:",
+ "LabelArtistsHelp": "Separate multiple using ;",
"HeaderLatestMovies": "Latest Movies",
"HeaderLatestTrailers": "Latest Trailers",
"OptionHasSpecialFeatures": "Special Features",
@@ -233,7 +235,6 @@
"OptionIsSD": "SD",
"OptionMetascore": "Metascore",
"ButtonSelect": "Select",
- "ButtonSearch": "Search",
"ButtonGroupVersions": "Group Versions",
"ButtonAddToCollection": "Add to Collection",
"PismoMessage": "Utilizing Pismo File Mount through a donated license.",
@@ -314,6 +315,8 @@
"TabStatus": "Status",
"TabSettings": "Settings",
"ButtonRefreshGuideData": "Refresh Guide Data",
+ "ButtonRefresh": "Refresh",
+ "ButtonAdvancedRefresh": "Advanced Refresh",
"OptionPriority": "Priority",
"OptionRecordOnAllChannels": "Record program on all channels",
"OptionRecordAnytime": "Record program at any time",
@@ -656,6 +659,8 @@
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
"LabelType": "Type:",
+ "LabelPersonRole": "Role:",
+ "LabelPersonRoleHelp": "Role is generally only applicable to actors.",
"LabelProfileContainer": "Container:",
"LabelProfileVideoCodecs": "Video codecs:",
"LabelProfileAudioCodecs": "Audio codecs:",
@@ -907,8 +912,11 @@
"TabFilter": "Filter",
"ButtonView": "View",
"LabelPageSize": "Item limit:",
+ "LabelPath": "Path:",
"LabelView": "View:",
"TabUsers": "Users",
+ "LabelSortName": "Sort name:",
+ "LabelDateAdded": "Date added:",
"HeaderFeatures": "Features",
"HeaderAdvanced": "Advanced",
"ButtonSync": "Sync",
@@ -1013,15 +1021,84 @@
"HeaderDownloadPeopleMetadataForHelp": "Enabling additional options will provide more on-screen information but will result in slower library scans.",
"ViewTypeFolders": "Folders",
"LabelDisplayFoldersView": "Display a folders view to show plain media folders",
- "ViewTypeLiveTvRecordingGroups": "Recordings",
+ "ViewTypeLiveTvRecordingGroups": "Recordings",
"ViewTypeLiveTvChannels": "Channels",
"LabelAllowLocalAccessWithoutPassword": "Allow local access without a password",
"LabelAllowLocalAccessWithoutPasswordHelp": "When enabled, a password will not be required when signing in from within your home network.",
"HeaderPassword": "Password",
"HeaderLocalAccess": "Local Access",
"HeaderViewOrder": "View Order",
- "LabelSelectUserViewOrder": "Choose the order your views will be displayed in within Media Browser apps",
+ "LabelSelectUserViewOrder": "Choose the order your views will be displayed in within Media Browser apps",
+ "LabelMetadataRefreshMode": "Metadata refresh mode:",
+ "LabelImageRefreshMode": "Image refresh mode:",
+ "OptionDownloadMissingImages": "Download missing images",
+ "OptionReplaceExistingImages": "Replace existing images",
+ "OptionRefreshAllData": "Refresh all data",
+ "OptionAddMissingDataOnly": "Add missing data only",
+ "OptionLocalRefreshOnly": "Local refresh only",
+ "HeaderRefreshMetadata": "Refresh Metadata",
+ "HeaderPersonInfo": "Person Info",
+ "HeaderIdentifyItem": "Identify Item",
+ "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.",
+ "HeaderConfirmDeletion": "Confirm Deletion",
+ "LabelFollowingFileWillBeDeleted": "The following file will be deleted:",
+ "LabelIfYouWishToContinueWithDeletion": "If you wish to continue, please confirm by entering the value of:",
+ "ButtonIdentify": "Identify",
+ "LabelAlbumArtist": "Album artist:",
+ "LabelAlbum": "Album:",
+ "LabelCommunityRating": "Community rating:",
+ "LabelVoteCount": "Vote count:",
+ "LabelMetascore": "Metascore:",
+ "LabelCriticRating": "Critic rating:",
+ "LabelCriticRatingSummary": "Critic rating summary:",
+ "LabelAwardSummary": "Award summary:",
+ "LabelWebsite": "Website:",
+ "LabelTagline": "Tagline:",
+ "LabelOverview": "Overview:",
+ "LabelShortOverview": "Short overview:",
+ "LabelReleaseDate": "Release date:",
+ "LabelYear": "Year:",
+ "LabelPlaceOfBirth": "Place of birth:",
+ "LabelEndDate": "End date:",
+ "LabelAirDate": "Air days:",
+ "LabelAirTime:": "Air time:",
+ "LabelRuntimeMinutes": "Run time (minutes):",
+ "LabelParentalRating": "Parental rating:",
+ "LabelCustomRating": "Custom rating:",
+ "LabelBudget": "Budget",
+ "LabelRevenue": "Revenue ($):",
+ "LabelOriginalAspectRatio": "Original aspect ratio:",
+ "LabelPlayers": "Players:",
+ "Label3DFormat": "3D format:",
+ "HeaderAlternateEpisodeNumbers": "Alternate Episode Numbers",
+ "HeaderSpecialEpisodeInfo": "Special Episode Info",
+ "HeaderExternalIds": "External Id's:",
+ "LabelDvdSeasonNumber": "Dvd season number:",
+ "LabelDvdEpisodeNumber": "Dvd episode number:",
+ "LabelAbsoluteEpisodeNumber": "Absolute episode number:",
+ "LabelAirsBeforeSeason": "Airs before season:",
+ "LabelAirsAfterSeason": "Airs after season:",
+ "LabelAirsBeforeEpisode": "Airs before episode:",
+ "HeaderDisplaySettings": "Display Settings",
+ "LabelTreatImageAs": "Treat image as:",
+ "LabelDisplayOrder": "Display order:",
+ "LabelDisplaySpecialsWithinSeasons": "Display specials within seasons they aired in",
+ "HeaderCountries": "Countries",
+ "HeaderGenres": "Genres",
+ "HeaderPeople": "People",
+ "HeaderPlotKeywords": "Plot Keywords",
+ "HeaderStudios": "Studios",
+ "HeaderTags": "Tags",
+ "HeaderMetadataSettings": "Metadata Settings",
+ "LabelLockItemToPreventChanges": "Lock this item to prevent future changes",
+ "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.",
+ "TabSupporterClub": "Supporter Club",
+ "HeaderDonationType": "Donation type:",
+ "OptionMakeOneTimeDonation": "Make a one-time donation",
+ "OptionLifeTimeSupporterClubMembership": "Lifetime supporter club membership",
+ "HeaderSupporterBenefit": "Becoming a supporter club member provides additional benefits such as access to premium plugins, internet channel content, and more.",
"OptionNoTrailer": "No Trailer",
"OptionNoThemeSong": "No Theme Song",
- "OptionNoThemeVideo": "No Theme Video"
+ "OptionNoThemeVideo": "No Theme Video",
+ "LabelOneTimeDonationAmount": "Donation amount:"
}
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index 2b0c3579b..7eed7f2ba 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -130,6 +130,7 @@
<Compile Include="EntryPoints\Notifications\WebSocketNotifier.cs" />
<Compile Include="EntryPoints\RefreshUsersMetadata.cs" />
<Compile Include="EntryPoints\UsageEntryPoint.cs" />
+ <Compile Include="EntryPoints\WanAddressEntryPoint.cs" />
<Compile Include="FileOrganization\EpisodeFileOrganizer.cs" />
<Compile Include="FileOrganization\Extensions.cs" />
<Compile Include="FileOrganization\FileOrganizationService.cs" />
diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
index b6c1ab98b..5d2db2910 100644
--- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
+++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
@@ -79,9 +79,6 @@
<Link>FFMpeg\FFMpegDownloader.cs</Link>
</Compile>
<Compile Include="IO\FileSystemFactory.cs" />
- <Compile Include="..\MediaBrowser.ServerApplication\EntryPoints\WanAddressEntryPoint.cs">
- <Link>EntryPoints\WanAddressEntryPoint.cs</Link>
- </Compile>
<Compile Include="..\MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloadInfo.cs">
<Link>FFMpeg\FFMpegDownloadInfo.cs</Link>
</Compile>
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 00cefdb22..dc4baf298 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -1,5 +1,4 @@
-using System.Net;
-using MediaBrowser.Api;
+using MediaBrowser.Api;
using MediaBrowser.Common;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Events;
@@ -78,7 +77,6 @@ using MediaBrowser.Server.Implementations.ServerManager;
using MediaBrowser.Server.Implementations.Session;
using MediaBrowser.Server.Implementations.Sync;
using MediaBrowser.Server.Implementations.Themes;
-using MediaBrowser.ServerApplication.EntryPoints;
using MediaBrowser.ServerApplication.FFMpeg;
using MediaBrowser.ServerApplication.IO;
using MediaBrowser.ServerApplication.Native;
diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
index ce17f9e8e..2e33ee2d5 100644
--- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
+++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
@@ -100,7 +100,6 @@
<Compile Include="EntryPoints\KeepServerAwake.cs" />
<Compile Include="EntryPoints\ResourceEntryPoint.cs" />
<Compile Include="EntryPoints\StartupWizard.cs" />
- <Compile Include="EntryPoints\WanAddressEntryPoint.cs" />
<Compile Include="FFMpeg\FFMpegDownloader.cs" />
<Compile Include="FFMpeg\FFMpegDownloadInfo.cs" />
<Compile Include="FFMpeg\FFMpegInfo.cs" />