diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-04 06:16:57 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-04 06:16:57 +0100 |
| commit | 96435ba60e22bf0a82d777fc271cb6e1e2edc3f5 (patch) | |
| tree | 6e19ee92176d854deb51127bba1b700cf1ffbc22 /src/Models | |
| parent | 62a48e3d162eb6e24772097617f9dd88418c796c (diff) | |
| download | lettnytt-96435ba60e22bf0a82d777fc271cb6e1e2edc3f5.tar.xz lettnytt-96435ba60e22bf0a82d777fc271cb6e1e2edc3f5.zip | |
fea: !WIP nrk radio
Diffstat (limited to 'src/Models')
| -rw-r--r-- | src/Models/Database/RadioEpisode.cs | 13 | ||||
| -rw-r--r-- | src/Models/Database/RadioSeason.cs | 11 | ||||
| -rw-r--r-- | src/Models/Database/RadioSeries.cs | 11 | ||||
| -rw-r--r-- | src/Models/NrkLinks.cs | 14 | ||||
| -rw-r--r-- | src/Models/NrkPlaybackManifest.cs | 19 | ||||
| -rw-r--r-- | src/Models/NrkRadioCategorySearchResult.cs (renamed from src/Models/RadioCategorySearchResult.cs) | 19 | ||||
| -rw-r--r-- | src/Models/NrkRadioSeries.cs | 79 | ||||
| -rw-r--r-- | src/Models/RadioSeries.cs | 18 |
8 files changed, 151 insertions, 33 deletions
diff --git a/src/Models/Database/RadioEpisode.cs b/src/Models/Database/RadioEpisode.cs new file mode 100644 index 0000000..508177b --- /dev/null +++ b/src/Models/Database/RadioEpisode.cs @@ -0,0 +1,13 @@ +namespace I2R.LightNews.Models; + +public class RadioEpisode +{ + public int Id { get; set; } + public int SeriesId { get; set; } + public int SeasonId { get; set; } + public string NrkId { get; set; } + public string Title { get; set; } + public string Subtitle { get; set; } + public string SourceUrl { get; set; } + public string CanonicalUrl { get; set; } +}
\ No newline at end of file diff --git a/src/Models/Database/RadioSeason.cs b/src/Models/Database/RadioSeason.cs new file mode 100644 index 0000000..5db925d --- /dev/null +++ b/src/Models/Database/RadioSeason.cs @@ -0,0 +1,11 @@ +namespace I2R.LightNews.Models; + +public class RadioSeason +{ + public int Id { get; set; } + public int SeriesId { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public string CanonicalUrl { get; set; } + public string NrkId { get; set; } +}
\ No newline at end of file diff --git a/src/Models/Database/RadioSeries.cs b/src/Models/Database/RadioSeries.cs new file mode 100644 index 0000000..946b6ce --- /dev/null +++ b/src/Models/Database/RadioSeries.cs @@ -0,0 +1,11 @@ +namespace I2R.LightNews.Models; + +public class RadioSeries +{ + public int Id { get; set; } + public string NrkId { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public string Type { get; set; } + public string CanonicalUrl { get; set; } +}
\ No newline at end of file diff --git a/src/Models/NrkLinks.cs b/src/Models/NrkLinks.cs new file mode 100644 index 0000000..69f5ae3 --- /dev/null +++ b/src/Models/NrkLinks.cs @@ -0,0 +1,14 @@ +namespace I2R.LightNews.Models; + +public class NrkLinks +{ + public LinkModel NextPage { get; set; } + public LinkModel LastPage { get; set; } + public LinkModel Share { get; set; } + public LinkModel Episodes { get; set; } + + public class LinkModel + { + public string Href { get; set; } + } +}
\ No newline at end of file diff --git a/src/Models/NrkPlaybackManifest.cs b/src/Models/NrkPlaybackManifest.cs new file mode 100644 index 0000000..52f9503 --- /dev/null +++ b/src/Models/NrkPlaybackManifest.cs @@ -0,0 +1,19 @@ +namespace I2R.LightNews.Models; + +public class NrkPlaybackManifest +{ + public PlayableModel Playable { get; set; } + + public class PlayableModel + { + public List<Asset> Assets { get; set; } + + public class Asset + { + public string Url { get; set; } + public string Format { get; set; } + public string MimeType { get; set; } + public bool Encrypted { get; set; } + } + } +}
\ No newline at end of file diff --git a/src/Models/RadioCategorySearchResult.cs b/src/Models/NrkRadioCategorySearchResult.cs index 7fd4c5d..6672105 100644 --- a/src/Models/RadioCategorySearchResult.cs +++ b/src/Models/NrkRadioCategorySearchResult.cs @@ -5,7 +5,7 @@ namespace I2R.LightNews.Models; public class RadioCategorySearchResult { [JsonPropertyName("_links")] - public LinksModel Links { get; set; } + public NrkLinks Links { get; set; } public List<LetterModel> Letters { get; set; } public string Title { get; set; } @@ -17,7 +17,7 @@ public class RadioCategorySearchResult [JsonPropertyName("_links")] public LinksModel Links { get; set; } - public Guid Id { get; set; } + public string Id { get; set; } public string SeriesId { get; set; } public string SeasonId { get; set; } public string Title { get; set; } @@ -33,7 +33,8 @@ public class RadioCategorySearchResult public class LinksModel { - public RadioCategorySearchResult.LinksModel.LinkModel CustomSeason { get; set; } + public NrkLinks.LinkModel CustomSeason { get; set; } + public NrkLinks.LinkModel Series { get; set; } } } @@ -43,16 +44,4 @@ public class RadioCategorySearchResult public int Count { get; set; } public string Link { get; set; } } - - public class LinksModel - { - public LinkModel NextPage { get; set; } - public LinkModel LastPage { get; set; } - - - public class LinkModel - { - public string Href { get; set; } - } - } }
\ No newline at end of file diff --git a/src/Models/NrkRadioSeries.cs b/src/Models/NrkRadioSeries.cs new file mode 100644 index 0000000..3496f36 --- /dev/null +++ b/src/Models/NrkRadioSeries.cs @@ -0,0 +1,79 @@ +using System.Text.Json.Serialization; + +namespace I2R.LightNews.Models; + +public class NrkRadioSeries +{ + [JsonPropertyName("_links")] + public NrkLinks Links { get; set; } + + [JsonPropertyName("_embedded")] + public EmbeddedModel Embedded { get; set; } + + public class EmbeddedModel + { + public List<SeasonModel> Seasons { get; set; } + + public class SeasonModel + { + public List<TitleModel> Titles { get; set; } + public List<EpisodeModel> Episodes { get; set; } + public string Id { get; set; } + public bool HasAvailableEpisodes { get; set; } + public int EpisodeCount { get; set; } + + public class EpisodeModel + { + [JsonPropertyName("_embedded")] + public EmbeddedModel Embedded { get; set; } + + public class EmbeddedModel + { + public List<EpisodeModel> Episodes { get; set; } + + public class EpisodeModel + { + [JsonPropertyName("_links")] + public LinksModel Links { get; set; } + + public string Id { get; set; } + public string EpisodeId { get; set; } + public List<TitlesModel> Titles { get; set; } + public DateTime Date { get; set; } + public int DurationInSeconds { get; set; } + public int ProductionYear { get; set; } + + public class TitlesModel + { + public string Title { get; set; } + public string Subtitle { get; set; } + } + + public class LinksModel + { + public NrkLinks.LinkModel Playback { get; set; } + public NrkLinks.LinkModel Share { get; set; } + } + } + } + } + + public class TitleModel + { + public string Title { get; set; } + } + } + } + + public class NrkRadioSeriesLinks : NrkLinks + { + public List<Season> Seasons { get; set; } + + public class Season + { + public string Name { get; set; } + public string Href { get; set; } + public string Title { get; set; } + } + } +}
\ No newline at end of file diff --git a/src/Models/RadioSeries.cs b/src/Models/RadioSeries.cs deleted file mode 100644 index 6bd4efe..0000000 --- a/src/Models/RadioSeries.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace I2R.LightNews.Models; - -public class RadioSeries -{ - public string Name { get; set; } - public string Description { get; set; } - public string Type { get; set; } - public Uri CanonicalUri { get; set; } - public List<Episode> Episodes { get; set; } - - public class Episode - { - public string Title { get; set; } - public string Subtitle { get; set; } - public Uri SourceUri { get; set; } - public Uri CanonicalUri { get; set; } - } -}
\ No newline at end of file |
