Merge remote-tracking branch 'upstream/master' into ribbons

This commit is contained in:
Tim Hobbs
2014-03-13 06:36:39 -07:00
160 changed files with 2743 additions and 1684 deletions

View File

@@ -244,7 +244,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="query">The query.</param>
/// <returns>Task{ItemsResult}.</returns>
Task<ItemsResult> GetSeasonsAsync(SeasonQuery query);
/// <summary>
/// Queries for items
/// </summary>
@@ -346,7 +346,14 @@ namespace MediaBrowser.Model.ApiClient
/// </summary>
/// <param name="query">The query.</param>
/// <returns>Task{ItemsResult}.</returns>
Task<ItemsResult> GetNextUpAsync(NextUpQuery query);
Task<ItemsResult> GetNextUpEpisodesAsync(NextUpQuery query);
/// <summary>
/// Gets the upcoming episodes asynchronous.
/// </summary>
/// <param name="query">The query.</param>
/// <returns>Task{ItemsResult}.</returns>
Task<ItemsResult> GetUpcomingEpisodesAsync(NextUpQuery query);
/// <summary>
/// Gets a genre
@@ -772,7 +779,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="options">The options.</param>
/// <returns>System.String.</returns>
string GetImageUrl(ProgramInfoDto item, ImageOptions options);
/// <summary>
/// Gets an image url that can be used to download an image from the api
/// </summary>
@@ -902,7 +909,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="options">The options.</param>
/// <returns>System.String.</returns>
string GetThumbImageUrl(BaseItemDto item, ImageOptions options);
/// <summary>
/// Gets the url needed to stream an audio file
/// </summary>
@@ -958,7 +965,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{ChannelInfoDto}.</returns>
Task<ChannelInfoDto> GetLiveTvChannelAsync(string id, string userId, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv recordings asynchronous.
/// </summary>
@@ -975,7 +982,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{RecordingInfoDto}.</returns>
Task<RecordingInfoDto> GetLiveTvRecordingAsync(string id, string userId, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv recording groups asynchronous.
/// </summary>
@@ -992,7 +999,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{RecordingGroupDto}.</returns>
Task<RecordingGroupDto> GetLiveTvRecordingGroupAsync(string id, string userId, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv timers asynchronous.
/// </summary>
@@ -1009,6 +1016,15 @@ namespace MediaBrowser.Model.ApiClient
/// <returns>Task{QueryResult{ProgramInfoDto}}.</returns>
Task<QueryResult<ProgramInfoDto>> GetLiveTvProgramsAsync(ProgramQuery query, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv program asynchronous.
/// </summary>
/// <param name="id">The identifier.</param>
/// <param name="userId">The user identifier.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{ProgramInfoDto}.</returns>
Task<ProgramInfoDto> GetLiveTvProgramAsync(string id, string userId, CancellationToken cancellationToken);
/// <summary>
/// Gets the recommended live tv programs asynchronous.
/// </summary>
@@ -1016,7 +1032,39 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{QueryResult{ProgramInfoDto}}.</returns>
Task<QueryResult<ProgramInfoDto>> GetRecommendedLiveTvProgramsAsync(RecommendedProgramQuery query, CancellationToken cancellationToken);
/// <summary>
/// Creates the live tv timer asynchronous.
/// </summary>
/// <param name="timer">The timer.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task CreateLiveTvTimerAsync(TimerInfoDto timer, CancellationToken cancellationToken);
/// <summary>
/// Updates the live tv timer asynchronous.
/// </summary>
/// <param name="timer">The timer.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task UpdateLiveTvTimerAsync(TimerInfoDto timer, CancellationToken cancellationToken);
/// <summary>
/// Creates the live tv series timer asynchronous.
/// </summary>
/// <param name="timer">The timer.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task CreateLiveTvSeriesTimerAsync(SeriesTimerInfoDto timer, CancellationToken cancellationToken);
/// <summary>
/// Updates the live tv series timer asynchronous.
/// </summary>
/// <param name="timer">The timer.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task UpdateLiveTvSeriesTimerAsync(SeriesTimerInfoDto timer, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv timer asynchronous.
/// </summary>
@@ -1024,7 +1072,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{TimerInfoDto}.</returns>
Task<TimerInfoDto> GetLiveTvTimerAsync(string id, CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv series timers asynchronous.
/// </summary>
@@ -1056,7 +1104,7 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task CancelLiveTvSeriesTimerAsync(string id, CancellationToken cancellationToken);
/// <summary>
/// Deletes the live tv recording asynchronous.
/// </summary>
@@ -1064,5 +1112,27 @@ namespace MediaBrowser.Model.ApiClient
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
Task DeleteLiveTvRecordingAsync(string id, CancellationToken cancellationToken);
/// <summary>
/// Gets the default timer information.
/// </summary>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{SeriesTimerInfoDto}.</returns>
Task<SeriesTimerInfoDto> GetDefaultLiveTvTimerInfo(CancellationToken cancellationToken);
/// <summary>
/// Gets the live tv guide information.
/// </summary>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{GuideInfo}.</returns>
Task<GuideInfo> GetLiveTvGuideInfo(CancellationToken cancellationToken);
/// <summary>
/// Gets the default timer information.
/// </summary>
/// <param name="programId">The program identifier.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{SeriesTimerInfoDto}.</returns>
Task<SeriesTimerInfoDto> GetDefaultLiveTvTimerInfo(string programId, CancellationToken cancellationToken);
}
}

View File

@@ -19,6 +19,8 @@ namespace MediaBrowser.Model.Configuration
public bool DeleteEmptyFolders { get; set; }
public bool CopyOriginalFile { get; set; }
public TvFileOrganizationOptions()
{
MinFileSizeMb = 50;
@@ -31,6 +33,8 @@ namespace MediaBrowser.Model.Configuration
MultiEpisodeNamePattern = "%sn - %sx%0e-x%0ed - %en.%ext";
SeasonFolderPattern = "Season %s";
SeasonZeroFolderName = "Season 0";
CopyOriginalFile = false;
}
}
}

View File

@@ -0,0 +1,8 @@

namespace MediaBrowser.Model.Configuration
{
public class DlnaOptions
{
public bool EnablePlayTo { get; set; }
}
}

View File

@@ -212,6 +212,8 @@ namespace MediaBrowser.Model.Configuration
public string ServerName { get; set; }
public string WanDdns { get; set; }
public DlnaOptions DlnaOptions { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ServerConfiguration" /> class.
/// </summary>
@@ -271,6 +273,8 @@ namespace MediaBrowser.Model.Configuration
};
MetadataOptions = options.ToArray();
DlnaOptions = new DlnaOptions();
}
}

View File

@@ -0,0 +1,29 @@

namespace MediaBrowser.Model.Dto
{
public class RecommendationDto
{
public BaseItemDto[] Items { get; set; }
public RecommendationType RecommendationType { get; set; }
public string BaselineItemName { get; set; }
public string CategoryId { get; set; }
}
public enum RecommendationType
{
SimilarToRecentlyPlayed = 0,
SimilarToLikedItem = 1,
HasDirectorFromRecentlyPlayed = 2,
HasActorFromRecentlyPlayed = 3,
HasLikedDirector = 4,
HasLikedActor = 5
}
}

View File

@@ -46,6 +46,30 @@ namespace MediaBrowser.Model.Entities
/// <value>The primary image tag.</value>
public Guid? PrimaryImageTag { get; set; }
/// <summary>
/// Gets or sets the thumb image tag.
/// </summary>
/// <value>The thumb image tag.</value>
public Guid? ThumbImageTag { get; set; }
/// <summary>
/// Gets or sets the thumb item identifier.
/// </summary>
/// <value>The thumb item identifier.</value>
public string ThumbItemId { get; set; }
/// <summary>
/// Gets or sets the thumb image tag.
/// </summary>
/// <value>The thumb image tag.</value>
public Guid? BackdropImageTag { get; set; }
/// <summary>
/// Gets or sets the thumb item identifier.
/// </summary>
/// <value>The thumb item identifier.</value>
public string BackdropItemId { get; set; }
/// <summary>
/// Gets a value indicating whether this instance has primary image.
/// </summary>

View File

@@ -60,6 +60,7 @@
<Compile Include="ApiClient\ServerEventArgs.cs" />
<Compile Include="Configuration\AutoOrganize.cs" />
<Compile Include="Configuration\BaseApplicationConfiguration.cs" />
<Compile Include="Configuration\DlnaOptions.cs" />
<Compile Include="Configuration\ManualLoginCategory.cs" />
<Compile Include="Configuration\MetadataPlugin.cs" />
<Compile Include="Configuration\MetadataOptions.cs" />
@@ -73,6 +74,7 @@
<Compile Include="Dto\ItemByNameCounts.cs" />
<Compile Include="Dto\ItemCounts.cs" />
<Compile Include="Dto\ItemIndex.cs" />
<Compile Include="Dto\RecommendationDto.cs" />
<Compile Include="Entities\PackageReviewInfo.cs" />
<Compile Include="FileOrganization\FileOrganizationResult.cs" />
<Compile Include="FileOrganization\FileOrganizationQuery.cs" />

View File

@@ -218,6 +218,18 @@ namespace MediaBrowser.Model.Querying
/// <value>The name starts with or greater.</value>
public string NameStartsWithOrGreater { get; set; }
/// <summary>
/// Gets or sets the name starts with.
/// </summary>
/// <value>The name starts with or greater.</value>
public string NameStartsWith { get; set; }
/// <summary>
/// Gets or sets the name starts with.
/// </summary>
/// <value>The name lessthan.</value>
public string NameLessThan { get; set; }
/// <summary>
/// Gets or sets the album artist starts with or greater.
/// </summary>

View File

@@ -75,16 +75,12 @@ namespace MediaBrowser.Model.Querying
public const string IsFolder = "IsFolder";
public const string IsUnplayed = "IsUnplayed";
public const string IsPlayed = "IsPlayed";
public const string TrailerCount = "TrailerCount";
public const string MovieCount = "MovieCount";
public const string SeriesCount = "SeriesCount";
public const string EpisodeCount = "EpisodeCount";
public const string SongCount = "SongCount";
public const string AlbumCount = "AlbumCount";
public const string MusicVideoCount = "MusicVideoCount";
public const string SeriesSortName = "SeriesSortName";
public const string VideoBitRate = "VideoBitRate";
public const string AirTime = "AirTime";
public const string Metascore = "Metascore";
public const string Studio = "Studio";
public const string Players = "Players";
public const string GameSystem = "GameSystem";
}
}

View File

@@ -86,6 +86,10 @@ namespace MediaBrowser.Model.Querying
public string NameStartsWithOrGreater { get; set; }
/// <summary>
/// Gets or sets the name starts with
/// </summary>
/// <value>The name starts with or greater.</value>
public string NameStartsWith { get; set; }
/// Gets or sets the name less than.
/// </summary>
/// <value>The name less than.</value>

View File

@@ -33,4 +33,32 @@ namespace MediaBrowser.Model.Querying
/// <value>The fields.</value>
public ItemFields[] Fields { get; set; }
}
public class UpcomingEpisodesQuery
{
/// <summary>
/// Gets or sets the user id.
/// </summary>
/// <value>The user id.</value>
public string UserId { get; set; }
/// <summary>
/// Skips over a given number of items within the results. Use for paging.
/// </summary>
/// <value>The start index.</value>
public int? StartIndex { get; set; }
/// <summary>
/// The maximum number of items to return
/// </summary>
/// <value>The limit.</value>
public int? Limit { get; set; }
/// <summary>
/// Fields to return within the items, in addition to basic information
/// </summary>
/// <value>The fields.</value>
public ItemFields[] Fields { get; set; }
}
}

View File

@@ -33,6 +33,8 @@ namespace MediaBrowser.Model.Search
public bool IncludeStudios { get; set; }
public bool IncludeArtists { get; set; }
public string[] IncludeItemTypes { get; set; }
public SearchQuery()
{
IncludeArtists = true;
@@ -40,6 +42,8 @@ namespace MediaBrowser.Model.Search
IncludeMedia = true;
IncludePeople = true;
IncludeStudios = true;
IncludeItemTypes = new string[] { };
}
}
}

View File

@@ -23,7 +23,7 @@ namespace MediaBrowser.Model.Session
/// </summary>
/// <value>The name of the item.</value>
public string ItemName { get; set; }
/// <summary>
/// Gets or sets the context (Movies, Music, Tv, etc)
/// Applicable to genres, studios and persons only because the context of items and artists can be inferred.
@@ -40,4 +40,4 @@ namespace MediaBrowser.Model.Session
public const string TvShows = "TvShows";
public const string Games = "Games";
}
}
}

View File

@@ -4,9 +4,9 @@ namespace MediaBrowser.Model.Session
public class MessageCommand
{
public string Header { get; set; }
public string Text { get; set; }
public long? TimeoutMs { get; set; }
}
}
}

View File

@@ -43,4 +43,4 @@ namespace MediaBrowser.Model.Session
/// </summary>
PlayLast
}
}
}

View File

@@ -38,4 +38,4 @@ namespace MediaBrowser.Model.Session
public long? SeekPositionTicks { get; set; }
}
}
}