aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Van den brande <sven.vandenbrande@outlook.com>2013-11-02 22:38:21 +0100
committerSven Van den brande <sven.vandenbrande@outlook.com>2013-11-02 22:38:21 +0100
commit8f7021eb424a89ba0ee5c1acc52d03d149583a1a (patch)
tree0e52261371d6e1c37a0fbb4909d64784f3ae9fdd
parente8f8d6651c86b3fd3350a5afae1d759fbbad06bd (diff)
Added EpgFullInfo & EpgInfo
Modified RecordingInfo & ChannelInfo Changed LiveTvService
-rw-r--r--MediaBrowser.Api/LiveTv/LiveTvService.cs27
-rw-r--r--MediaBrowser.Controller/LiveTv/ChannelInfo.cs4
-rw-r--r--MediaBrowser.Controller/LiveTv/ILiveTvService.cs2
-rw-r--r--MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj6
-rw-r--r--MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj6
-rw-r--r--MediaBrowser.Model/LiveTv/EpgFullInfo.cs17
-rw-r--r--MediaBrowser.Model/LiveTv/EpgInfo.cs32
-rw-r--r--MediaBrowser.Model/LiveTv/RecordingInfo.cs61
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj2
9 files changed, 151 insertions, 6 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index f8e7b6370..6a8457ecb 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs
@@ -27,6 +27,13 @@ namespace MediaBrowser.Api.LiveTv
{
// Add filter by service if needed, and/or other filters
}
+
+ [Route("/LiveTv/EPG", "GET")]
+ [Api(Description = "Gets available live tv epgs..")]
+ public class GetEpg : IReturn<List<EpgFullInfo>>
+ {
+ // Add filter by service if needed, and/or other filters
+ }
public class LiveTvService : BaseApiService
{
@@ -92,5 +99,23 @@ namespace MediaBrowser.Api.LiveTv
return recordings.SelectMany(i => i);
}
+
+ public object Get(GetEpg request)
+ {
+ var result = GetEpgAsync(request).Result;
+
+ return ToOptimizedResult(result);
+ }
+
+ private async Task<IEnumerable<EpgFullInfo>> GetEpgAsync(GetEpg request)
+ {
+ var services = _liveTvManager.Services;
+
+ var tasks = services.Select(i => i.GetEpgAsync(CancellationToken.None));
+
+ var epg = await Task.WhenAll(tasks).ConfigureAwait(false);
+
+ return epg.SelectMany(i => i);
+ }
}
-}
+} \ No newline at end of file
diff --git a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
index 547fc6287..8d8b63847 100644
--- a/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
+++ b/MediaBrowser.Controller/LiveTv/ChannelInfo.cs
@@ -13,6 +13,10 @@ namespace MediaBrowser.Controller.LiveTv
/// <value>The name.</value>
public string Name { get; set; }
+ /// <summary>
+ /// Get or sets the Id.
+ /// </summary>
+ /// <value>The id of the channel.</value>
public string Id { get; set; }
/// <summary>
diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvService.cs b/MediaBrowser.Controller/LiveTv/ILiveTvService.cs
index a1e002bc8..86058696d 100644
--- a/MediaBrowser.Controller/LiveTv/ILiveTvService.cs
+++ b/MediaBrowser.Controller/LiveTv/ILiveTvService.cs
@@ -24,5 +24,7 @@ namespace MediaBrowser.Controller.LiveTv
Task<IEnumerable<ChannelInfo>> GetChannelsAsync(CancellationToken cancellationToken);
Task<IEnumerable<RecordingInfo>> GetRecordingsAsync(CancellationToken cancellationToken);
+
+ Task<IEnumerable<EpgFullInfo>> GetEpgAsync(CancellationToken cancellationToken);
}
}
diff --git a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
index 8a6197857..e254f9007 100644
--- a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
+++ b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
@@ -230,6 +230,12 @@
<Compile Include="..\MediaBrowser.Model\LiveTv\ChannelType.cs">
<Link>LiveTv\ChannelType.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\LiveTv\EpgFullInfo.cs">
+ <Link>LiveTv\EpgFullInfo.cs</Link>
+ </Compile>
+ <Compile Include="..\MediaBrowser.Model\LiveTv\EpgInfo.cs">
+ <Link>LiveTv\EpgInfo.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\LiveTv\LiveTvServiceInfo.cs">
<Link>LiveTv\LiveTvServiceInfo.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
index dfff0356b..b8625c7c6 100644
--- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
+++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
@@ -217,6 +217,12 @@
<Compile Include="..\MediaBrowser.Model\LiveTv\ChannelType.cs">
<Link>LiveTv\ChannelType.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\LiveTv\EpgFullInfo.cs">
+ <Link>LiveTv\EpgFullInfo.cs</Link>
+ </Compile>
+ <Compile Include="..\MediaBrowser.Model\LiveTv\EpgInfo.cs">
+ <Link>LiveTv\EpgInfo.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\LiveTv\LiveTvServiceInfo.cs">
<Link>LiveTv\LiveTvServiceInfo.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model/LiveTv/EpgFullInfo.cs b/MediaBrowser.Model/LiveTv/EpgFullInfo.cs
new file mode 100644
index 000000000..8e48537b8
--- /dev/null
+++ b/MediaBrowser.Model/LiveTv/EpgFullInfo.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+
+namespace MediaBrowser.Model.LiveTv
+{
+ public class EpgFullInfo
+ {
+ /// <summary>
+ /// ChannelId for the EPG.
+ /// </summary>
+ public string ChannelId { get; set; }
+
+ /// <summary>
+ /// List of all the programs for a specific channel
+ /// </summary>
+ public List<EpgInfo> EpgInfos { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/LiveTv/EpgInfo.cs b/MediaBrowser.Model/LiveTv/EpgInfo.cs
new file mode 100644
index 000000000..3573e5deb
--- /dev/null
+++ b/MediaBrowser.Model/LiveTv/EpgInfo.cs
@@ -0,0 +1,32 @@
+using System;
+
+namespace MediaBrowser.Model.LiveTv
+{
+ public class EpgInfo
+ {
+ /// <summary>
+ /// Id of the program.
+ /// </summary>
+ public string Id { get; set; }
+
+ /// <summary>
+ /// Description of the progam.
+ /// </summary>
+ public string Description { get; set; }
+
+ /// <summary>
+ /// The start date of the program, in UTC.
+ /// </summary>
+ public DateTime StartDate { get; set; }
+
+ /// <summary>
+ /// The end date of the program, in UTC.
+ /// </summary>
+ public DateTime EndDate { get; set; }
+
+ /// <summary>
+ /// Genre of the program.
+ /// </summary>
+ public string Genre { get; set; }
+ }
+} \ No newline at end of file
diff --git a/MediaBrowser.Model/LiveTv/RecordingInfo.cs b/MediaBrowser.Model/LiveTv/RecordingInfo.cs
index dab37a381..55a30a4b3 100644
--- a/MediaBrowser.Model/LiveTv/RecordingInfo.cs
+++ b/MediaBrowser.Model/LiveTv/RecordingInfo.cs
@@ -1,27 +1,78 @@
using System;
+using System.Collections.Generic;
namespace MediaBrowser.Model.LiveTv
{
public class RecordingInfo
{
+ /// <summary>
+ /// Id of the recording.
+ /// </summary>
+ public string Id { get; set; }
+
+ /// <summary>
+ /// ChannelId of the recording.
+ /// </summary>
public string ChannelId { get; set; }
+ /// <summary>
+ /// ChannelName of the recording.
+ /// </summary>
public string ChannelName { get; set; }
- public string Id { get; set; }
-
+ /// <summary>
+ /// Name of the recording.
+ /// </summary>
public string Name { get; set; }
+ /// <summary>
+ /// Description of the recording.
+ /// </summary>
public string Description { get; set; }
/// <summary>
- /// The start date of the recording, in UTC
+ /// The start date of the recording, in UTC.
/// </summary>
public DateTime StartDate { get; set; }
/// <summary>
- /// The end date of the recording, in UTC
+ /// The end date of the recording, in UTC.
/// </summary>
public DateTime EndDate { get; set; }
+
+ /// <summary>
+ /// Status of the recording.
+ /// </summary>
+ public string Status { get; set; } //TODO: Enum for status?? Difference NextPvr,Argus,...
+
+ /// <summary>
+ /// Quality of the Recording.
+ /// </summary>
+ public string Quality { get; set; } // TODO: Enum for quality?? Difference NextPvr,Argus,...
+
+ /// <summary>
+ /// Recurring recording?
+ /// </summary>
+ public bool Recurring { get; set; }
+
+ /// <summary>
+ /// Parent recurring.
+ /// </summary>
+ public string RecurringParent { get; set; }
+
+ /// <summary>
+ /// Start date for the recurring, in UTC.
+ /// </summary>
+ public DateTime RecurrringStartDate { get; set; }
+
+ /// <summary>
+ /// End date for the recurring, in UTC
+ /// </summary>
+ public DateTime RecurringEndDate { get; set; }
+
+ /// <summary>
+ /// When do we need the recording?
+ /// </summary>
+ public List<string> DayMask { get; set; }
}
-}
+} \ No newline at end of file
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index fc3b270f6..30ce53121 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -59,6 +59,8 @@
<Compile Include="Dto\ItemByNameCounts.cs" />
<Compile Include="Dto\ItemCounts.cs" />
<Compile Include="Dto\ItemIndex.cs" />
+ <Compile Include="LiveTv\EpgFullInfo.cs" />
+ <Compile Include="LiveTv\EpgInfo.cs" />
<Compile Include="Providers\RemoteImageInfo.cs" />
<Compile Include="Dto\StudioDto.cs" />
<Compile Include="Entities\CollectionType.cs" />