mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
Got tv working on the popout cards !wip
This commit is contained in:
parent
f3e781d576
commit
71ec151de1
20 changed files with 674 additions and 46 deletions
|
@ -2,7 +2,6 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using AutoMapper;
|
||||
using AutoMapper.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
|
@ -12,9 +11,9 @@ namespace Ombi.Mapping
|
|||
{
|
||||
public static IServiceCollection AddOmbiMappingProfile(this IServiceCollection services)
|
||||
{
|
||||
System.Reflection.Assembly ass = typeof(AutoMapperProfile).GetTypeInfo().Assembly;
|
||||
Assembly ass = typeof(AutoMapperProfile).GetTypeInfo().Assembly;
|
||||
var assemblies = new List<Type>();
|
||||
foreach (System.Reflection.TypeInfo ti in ass.DefinedTypes)
|
||||
foreach (TypeInfo ti in ass.DefinedTypes)
|
||||
{
|
||||
if (ti.ImplementedInterfaces.Contains(typeof(IProfileConfiguration)))
|
||||
{
|
||||
|
|
82
src/Ombi.Mapping/Profiles/TvProfileV2.cs
Normal file
82
src/Ombi.Mapping/Profiles/TvProfileV2.cs
Normal file
|
@ -0,0 +1,82 @@
|
|||
using System.Globalization;
|
||||
using AutoMapper;
|
||||
using Ombi.Api.TvMaze.Models.V2;
|
||||
using Ombi.Core.Models.Search;
|
||||
using Ombi.Core.Models.Search.V2;
|
||||
using Ombi.Helpers;
|
||||
|
||||
namespace Ombi.Mapping.Profiles
|
||||
{
|
||||
public class TvProfileV2 : Profile
|
||||
{
|
||||
public TvProfileV2()
|
||||
{
|
||||
CreateMap<FullSearch, SearchFullInfoTvShowViewModel>()
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.externals.thetvdb))
|
||||
.ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.premiered))
|
||||
.ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.externals.imdb))
|
||||
.ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.network.name))
|
||||
.ForMember(dest => dest.NetworkId, opts => opts.MapFrom(src => src.network.id.ToString()))
|
||||
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.summary.RemoveHtml()))
|
||||
.ForMember(dest => dest.Rating,
|
||||
opts => opts.MapFrom(src => src.rating.average.ToString(CultureInfo.CurrentUICulture)))
|
||||
.ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.runtime.ToString()))
|
||||
.ForMember(dest => dest.SeriesId, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.name))
|
||||
.ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.network))
|
||||
.ForMember(dest => dest.Images, opts => opts.MapFrom(src => src.image))
|
||||
.ForMember(dest => dest.Cast, opts => opts.MapFrom(src => src._embedded.cast))
|
||||
.ForMember(dest => dest.Crew, opts => opts.MapFrom(src => src._embedded.crew))
|
||||
.ForMember(dest => dest.Banner,
|
||||
opts => opts.MapFrom(src =>
|
||||
!string.IsNullOrEmpty(src.image.medium)
|
||||
? src.image.medium.Replace("http", "https")
|
||||
: string.Empty))
|
||||
.ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status));
|
||||
|
||||
CreateMap<Network, NetworkViewModel>()
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.Country, opts => opts.MapFrom(src => src.country))
|
||||
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.name));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Country, Core.Models.Search.V2.Country>()
|
||||
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.name))
|
||||
.ForMember(dest => dest.Code, opts => opts.MapFrom(src => src.code))
|
||||
.ForMember(dest => dest.Timezone, opts => opts.MapFrom(src => src.timezone));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Image, Images>()
|
||||
.ForMember(dest => dest.Medium, opts => opts.MapFrom(src => src.medium))
|
||||
.ForMember(dest => dest.Original, opts => opts.MapFrom(src => src.original));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Cast, CastViewModel>()
|
||||
.ForMember(dest => dest.Character, opts => opts.MapFrom(src => src.character))
|
||||
.ForMember(dest => dest.Person, opts => opts.MapFrom(src => src.person))
|
||||
.ForMember(dest => dest.Voice, opts => opts.MapFrom(src => src.voice))
|
||||
.ForMember(dest => dest.Self, opts => opts.MapFrom(src => src.self));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Person, PersonViewModel>()
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.name))
|
||||
.ForMember(dest => dest.Image, opts => opts.MapFrom(src => src.image))
|
||||
.ForMember(dest => dest.Url, opts => opts.MapFrom(src => src.url));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Crew, CrewViewModel>()
|
||||
.ForMember(dest => dest.Person, opts => opts.MapFrom(src => src.person))
|
||||
.ForMember(dest => dest.Type, opts => opts.MapFrom(src => src.type));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Cast, CastViewModel>()
|
||||
.ForMember(dest => dest.Person, opts => opts.MapFrom(src => src.person))
|
||||
.ForMember(dest => dest.Self, opts => opts.MapFrom(src => src.self))
|
||||
.ForMember(dest => dest.Voice, opts => opts.MapFrom(src => src.voice))
|
||||
.ForMember(dest => dest.Character, opts => opts.MapFrom(src => src.character));
|
||||
|
||||
CreateMap<Api.TvMaze.Models.V2.Character, CharacterViewModel>()
|
||||
.ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.name))
|
||||
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.id))
|
||||
.ForMember(dest => dest.Url, opts => opts.MapFrom(src => src.url))
|
||||
.ForMember(dest => dest.Image, opts => opts.MapFrom(src => src.image));
|
||||
|
||||
CreateMap<SearchTvShowViewModel, SearchFullInfoTvShowViewModel>().ReverseMap();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue