mirror of https://github.com/Ombi-app/Ombi
parent
43e22acaca
commit
e4ab1447aa
@ -1,13 +1,13 @@
|
||||
<div class="right">
|
||||
<mat-button-toggle-group name="discoverMode" (change)="toggleChanged($event)" value="{{discoverOptions}}" class="discover-filter-buttons-group">
|
||||
<mat-button-toggle [ngClass]="{'button-active': discoverOptions === DiscoverOption.Combined}" value="{{DiscoverOption.Combined}}" class="discover-filter-button">{{'Discovery.Combined' | translate}}</mat-button-toggle>
|
||||
<mat-button-toggle [ngClass]="{'button-active': discoverOptions === DiscoverOption.Movie}" value="{{DiscoverOption.Movie}}" class="discover-filter-button">{{'Discovery.Movies' | translate}}</mat-button-toggle>
|
||||
<mat-button-toggle [ngClass]="{'button-active': discoverOptions === DiscoverOption.Tv}" value="{{DiscoverOption.Tv}}" class="discover-filter-button">{{'Discovery.Tv' | translate}}</mat-button-toggle>
|
||||
<mat-button-toggle id="{{id}}Combined" [ngClass]="{'button-active': discoverOptions === DiscoverOption.Combined}" value="{{DiscoverOption.Combined}}" class="discover-filter-button">{{'Discovery.Combined' | translate}}</mat-button-toggle>
|
||||
<mat-button-toggle id="{{id}}Movie" [ngClass]="{'button-active': discoverOptions === DiscoverOption.Movie}" value="{{DiscoverOption.Movie}}" class="discover-filter-button">{{'Discovery.Movies' | translate}}</mat-button-toggle>
|
||||
<mat-button-toggle id="{{id}}Tv" [ngClass]="{'button-active': discoverOptions === DiscoverOption.Tv}" value="{{DiscoverOption.Tv}}" class="discover-filter-button">{{'Discovery.Tv' | translate}}</mat-button-toggle>
|
||||
</mat-button-toggle-group>
|
||||
</div>
|
||||
|
||||
<p-carousel #carousel [numVisible]="10" [numScroll]="10" [page]="0" [value]="discoverResults" [responsiveOptions]="responsiveOptions" (onPage)="newPage()">
|
||||
<ng-template let-result pTemplate="item">
|
||||
<discover-card [result]="result"></discover-card>
|
||||
<discover-card id="result{{result.id}}" [result]="result"></discover-card>
|
||||
</ng-template>
|
||||
</p-carousel>
|
@ -0,0 +1,750 @@
|
||||
[
|
||||
{
|
||||
"title": "Game of Thrones",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2011-04-18T01:00:00",
|
||||
"network": "HBO",
|
||||
"networkId": null,
|
||||
"runtime": "60",
|
||||
"genre": null,
|
||||
"overview": "Seven noble families fight for control of the mythical land of Westeros. Friction between the houses leads to full-scale war. All while a very ancient evil awakens in the farthest north. Amidst the war, a neglected military order of misfits, the Night's Watch, is all that stands between the realms of men and icy horrors beyond.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "9.10556",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=bjqEWgDVPe0",
|
||||
"homepage": "https://www.hbo.com/game-of-thrones",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 121361,
|
||||
"approved": true,
|
||||
"denied": false,
|
||||
"deniedReason": null,
|
||||
"requested": true,
|
||||
"requestId": 1,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0944947",
|
||||
"theTvDbId": "121361",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Breaking Bad",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2008-01-21T02:00:00",
|
||||
"network": "AMC",
|
||||
"networkId": null,
|
||||
"runtime": "45",
|
||||
"genre": null,
|
||||
"overview": "When Walter White, a New Mexico chemistry teacher, is diagnosed with Stage III cancer and given a prognosis of only two years left to live. He becomes filled with a sense of fearlessness and an unrelenting desire to secure his family's financial future at any cost as he enters the dangerous world of drugs and crime.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "9.28991",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=XZ8daibM3AE",
|
||||
"homepage": "https://www.amc.com/shows/breaking-bad",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 81189,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0903747",
|
||||
"theTvDbId": "81189",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "The Walking Dead",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "returning series",
|
||||
"firstAired": "2010-11-01T01:00:00",
|
||||
"network": "AMC",
|
||||
"networkId": null,
|
||||
"runtime": "42",
|
||||
"genre": null,
|
||||
"overview": "Sheriff's deputy Rick Grimes awakens from a coma to find a post-apocalyptic world dominated by flesh-eating zombies. He sets out to find his family and encounters many other survivors along the way.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.18472269269855",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=R1v0uFms68U",
|
||||
"homepage": "https://www.amc.com/shows/the-walking-dead",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 153021,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1520211",
|
||||
"theTvDbId": "153021",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "The Big Bang Theory",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2007-09-25T00:00:00",
|
||||
"network": "CBS",
|
||||
"networkId": null,
|
||||
"runtime": "25",
|
||||
"genre": null,
|
||||
"overview": "A woman who moves into an apartment across the hall from two brilliant but socially awkward physicists shows them how little they know about life outside of the laboratory.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "20:00",
|
||||
"rating": "8.14052",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=3g2yTcg1QFI",
|
||||
"homepage": "https://www.cbs.com/shows/big_bang_theory/",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 80379,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0898266",
|
||||
"theTvDbId": "80379",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Sherlock",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2010-07-25T20:00:00",
|
||||
"network": "BBC One",
|
||||
"networkId": null,
|
||||
"runtime": "90",
|
||||
"genre": null,
|
||||
"overview": "A modern update finds the famous sleuth and his doctor partner solving crime in 21st century London.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "9.043281293560078",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=xK7S9mrFWL4",
|
||||
"homepage": "https://www.bbc.co.uk/programmes/b018ttws",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 176941,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1475582",
|
||||
"theTvDbId": "176941",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "How I Met Your Mother",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2005-09-20T00:00:00",
|
||||
"network": "CBS",
|
||||
"networkId": null,
|
||||
"runtime": "22",
|
||||
"genre": null,
|
||||
"overview": "A father recounts to his children - through a series of flashbacks - the journey he and his four best friends took leading up to him meeting their mother.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "20:00",
|
||||
"rating": "8.24396",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=XgUmyAGwxgw",
|
||||
"homepage": "https://www.cbs.com/shows/how_i_met_your_mother/",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 75760,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0460649",
|
||||
"theTvDbId": "75760",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Dexter",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2006-10-02T01:00:00",
|
||||
"network": "Showtime",
|
||||
"networkId": null,
|
||||
"runtime": "50",
|
||||
"genre": null,
|
||||
"overview": "Dexter Morgan, a blood spatter pattern analyst for the Miami Metro Police also leads a secret life as a serial killer, hunting down criminals who have slipped through the cracks of justice.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.56617",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=YQeUmSD1c3g",
|
||||
"homepage": "https://www.sho.com/dexter",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 79349,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0773262",
|
||||
"theTvDbId": "79349",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Friends",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "1994-09-23T00:00:00",
|
||||
"network": "NBC",
|
||||
"networkId": null,
|
||||
"runtime": "25",
|
||||
"genre": null,
|
||||
"overview": "The misadventures of a group of friends as they navigate the pitfalls of work, life and love in Manhattan.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "20:00",
|
||||
"rating": "8.72021",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=hDNNmeeJs1Q",
|
||||
"homepage": "",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 79168,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0108778",
|
||||
"theTvDbId": "79168",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Stranger Things",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "returning series",
|
||||
"firstAired": "2016-07-15T07:00:00",
|
||||
"network": "Netflix",
|
||||
"networkId": null,
|
||||
"runtime": "50",
|
||||
"genre": null,
|
||||
"overview": "When a young boy vanishes, a small town uncovers a mystery involving secret experiments, terrifying supernatural forces, and one strange little girl.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "03:00",
|
||||
"rating": "8.705786185554972",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=b9EkMc79ZSU",
|
||||
"homepage": "https://www.netflix.com/title/80057281",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 305288,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt4574334",
|
||||
"theTvDbId": "305288",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Arrow",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2012-10-11T01:00:00",
|
||||
"network": "The CW",
|
||||
"networkId": null,
|
||||
"runtime": "42",
|
||||
"genre": null,
|
||||
"overview": "Spoiled billionaire playboy Oliver Queen is missing and presumed dead when his yacht is lost at sea. He returns five years later a changed man, determined to clean up the city as a hooded vigilante armed with a bow.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "7.70376",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=hTv13EjlLNg",
|
||||
"homepage": "https://www.cwtv.com/shows/arrow",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 257655,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt2193021",
|
||||
"theTvDbId": "257655",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Lost",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2004-09-23T01:00:00",
|
||||
"network": "ABC",
|
||||
"networkId": null,
|
||||
"runtime": "42",
|
||||
"genre": null,
|
||||
"overview": "Stripped of everything, the survivors of a horrific plane crash must work together to stay alive. But the island holds many secrets.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.23659",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=72kQIIDBIUU",
|
||||
"homepage": "https://abc.go.com/shows/lost",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 73739,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0411008",
|
||||
"theTvDbId": "73739",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "House",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2004-11-17T02:00:00",
|
||||
"network": "FOX",
|
||||
"networkId": null,
|
||||
"runtime": "45",
|
||||
"genre": null,
|
||||
"overview": "Dr. Gregory House is a maverick physician who is devoid of bedside manner. While his behavior can border on antisocial, Dr. House thrives on the challenge of solving the medical puzzles that other doctors give up on. Together with his hand-picked team of young medical experts, he'll do whatever it takes in the race against the clock to solve the case.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.66596",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=MczMB8nU1sY",
|
||||
"homepage": "https://www.fox.com/house/index.htm",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 73255,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0412142",
|
||||
"theTvDbId": "73255",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Homeland",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2011-10-03T01:00:00",
|
||||
"network": "Showtime",
|
||||
"networkId": null,
|
||||
"runtime": "45",
|
||||
"genre": null,
|
||||
"overview": "CIA officer Carrie Mathison is tops in her field despite being bipolar, which makes her volatile and unpredictable. With the help of her long-time mentor Saul Berenson, Carrie fearlessly risks everything, including her personal well-being and even sanity, at every turn.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.343610105492623",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=KyFmS3wRPCQ",
|
||||
"homepage": "https://www.sho.com/sho/homeland/home",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 247897,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1796960",
|
||||
"theTvDbId": "247897",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "House of Cards",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2013-02-01T08:00:00",
|
||||
"network": "Netflix",
|
||||
"networkId": null,
|
||||
"runtime": "50",
|
||||
"genre": null,
|
||||
"overview": "Set in present day Washington, D.C., House of Cards is the story of Frank Underwood, a ruthless and cunning politician, and his wife Claire who will stop at nothing to conquer everything. This wicked political drama penetrates the shadowy world of greed, sex and corruption in modern D.C.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "03:00",
|
||||
"rating": "8.667647295881357",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=x1E8PSGcyqI",
|
||||
"homepage": "https://www.netflix.com/title/70178217",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 262980,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1856010",
|
||||
"theTvDbId": "262980",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Supernatural",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2005-09-14T00:00:00",
|
||||
"network": "The CW",
|
||||
"networkId": null,
|
||||
"runtime": "45",
|
||||
"genre": null,
|
||||
"overview": "When they were boys, Sam and Dean Winchester lost their mother to a mysterious and demonic supernatural force. Subsequently, their father raised them to be soldiers. He taught them about the paranormal evil that lives in the dark corners and on the back roads of America ... and he taught them how to kill it. Now, the Winchester brothers crisscross the country in their '67 Chevy Impala, battling every kind of supernatural threat they encounter along the way.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "20:00",
|
||||
"rating": "8.448307891123497",
|
||||
"siteRating": 0,
|
||||
"trailer": "",
|
||||
"homepage": "https://www.cwtv.com/shows/supernatural",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 78901,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt0460681",
|
||||
"theTvDbId": "78901",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Fringe",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2008-09-10T01:00:00",
|
||||
"network": "FOX",
|
||||
"networkId": null,
|
||||
"runtime": "46",
|
||||
"genre": null,
|
||||
"overview": "FBI Special Agent Olivia Dunham, brilliant but formerly institutionalized scientist Walter Bishop and his scheming, reluctant son Peter uncover a deadly mystery involving a series of unbelievable events and realize they may be a part of a larger, more disturbing pattern that blurs the line between science fiction and technology.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.697706364733797",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=29bSzbqZ3xE",
|
||||
"homepage": "https://www.fox.com/fringe",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 82066,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1119644",
|
||||
"theTvDbId": "82066",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
},
|
||||
{
|
||||
"title": "Suits",
|
||||
"aliases": null,
|
||||
"banner": null,
|
||||
"seriesId": 0,
|
||||
"status": "ended",
|
||||
"firstAired": "2011-06-24T01:00:00",
|
||||
"network": "USA Network",
|
||||
"networkId": null,
|
||||
"runtime": "43",
|
||||
"genre": null,
|
||||
"overview": "College drop-out Mike Ross accidentally lands a job with one of New York's best legal closers, Harvey Specter. They soon become a winning team with Mike's raw talent and photographic memory, and Mike soon reminds Harvey of why he went into the field of law in the first place.",
|
||||
"lastUpdated": 0,
|
||||
"airsDayOfWeek": null,
|
||||
"airsTime": "21:00",
|
||||
"rating": "8.55011",
|
||||
"siteRating": 0,
|
||||
"trailer": "https://youtube.com/watch?v=2Q18TnxZxLI",
|
||||
"homepage": "https://www.usanetwork.com/suits",
|
||||
"seasonRequests": [],
|
||||
"requestAll": false,
|
||||
"firstSeason": false,
|
||||
"latestSeason": false,
|
||||
"fullyAvailable": false,
|
||||
"partlyAvailable": false,
|
||||
"type": 0,
|
||||
"backdropPath": null,
|
||||
"id": 247808,
|
||||
"approved": false,
|
||||
"denied": null,
|
||||
"deniedReason": null,
|
||||
"requested": false,
|
||||
"requestId": 0,
|
||||
"available": false,
|
||||
"plexUrl": null,
|
||||
"embyUrl": null,
|
||||
"jellyfinUrl": null,
|
||||
"quality": null,
|
||||
"imdbId": "tt1632701",
|
||||
"theTvDbId": "247808",
|
||||
"theMovieDbId": null,
|
||||
"subscribed": false,
|
||||
"showSubscribe": false
|
||||
}
|
||||
]
|
@ -0,0 +1,3 @@
|
||||
export abstract class BasePage {
|
||||
abstract visit(options: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow>;
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
import { BasePage } from "../base.page";
|
||||
|
||||
class CarouselComponent {
|
||||
private id: string;
|
||||
|
||||
|
||||
get combinedButton(): Cypress.Chainable<any> {
|
||||
return cy.get(`#${this.id}Combined-button`);
|
||||
}
|
||||
|
||||
get movieButton(): Cypress.Chainable<any> {
|
||||
return cy.get(`#${this.id}Movie-button`);
|
||||
}
|
||||
|
||||
get tvButton(): Cypress.Chainable<any> {
|
||||
return cy.get(`#${this.id}Tv-button`);
|
||||
}
|
||||
|
||||
constructor(id: string) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
class DiscoverPage extends BasePage {
|
||||
|
||||
popularCarousel = new CarouselComponent('popular');
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
visit(options?: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow> {
|
||||
return cy.visit(`/discover`, options);
|
||||
}
|
||||
}
|
||||
|
||||
export const discoverPage = new DiscoverPage();
|
@ -0,0 +1,3 @@
|
||||
export * from './discover/discover.page';
|
||||
export * from './login/login.page';
|
||||
export * from './wizard/wizard.page';
|
@ -0,0 +1,30 @@
|
||||
import { BasePage } from "../base.page";
|
||||
|
||||
class LoginPage extends BasePage {
|
||||
|
||||
get username(): Cypress.Chainable<any> {
|
||||
return cy.get('#username-field');
|
||||
}
|
||||
|
||||
get password(): Cypress.Chainable<any> {
|
||||
return cy.get('#password-field');
|
||||
}
|
||||
|
||||
get ombiSignInButton(): Cypress.Chainable<any> {
|
||||
return cy.get('[data-cy=OmbiButton]');
|
||||
}
|
||||
|
||||
get plexSignInButton(): Cypress.Chainable<any> {
|
||||
return cy.get('[data-cy=oAuthPlexButton]');
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
visit(options?: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow> {
|
||||
return cy.visit(`/login`, options);
|
||||
}
|
||||
}
|
||||
|
||||
export const loginPage = new LoginPage();
|
@ -0,0 +1,64 @@
|
||||
import { BasePage } from "../base.page";
|
||||
|
||||
class LocalUserTab {
|
||||
get username(): Cypress.Chainable<any> {
|
||||
return cy.get('#adminUsername');
|
||||
}
|
||||
|
||||
get password(): Cypress.Chainable<any> {
|
||||
return cy.get('#adminPassword');
|
||||
}
|
||||
|
||||
get next(): Cypress.Chainable<any> {
|
||||
return cy.getByData('nextLocalUser');
|
||||
}
|
||||
}
|
||||
|
||||
class WelcomeTab {
|
||||
get next(): Cypress.Chainable<any> {
|
||||
return cy.getByData('nextWelcome');
|
||||
}
|
||||
}
|
||||
|
||||
class MediaServerTab {
|
||||
get next(): Cypress.Chainable<any> {
|
||||
return cy.getByData('nextMediaServer');
|
||||
}
|
||||
}
|
||||
|
||||
class OmbiConfigTab {
|
||||
get next(): Cypress.Chainable<any> {
|
||||
return cy.getByData('nextOmbiConfig');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class WizardPage extends BasePage {
|
||||
|
||||
localUserTab: LocalUserTab;
|
||||
welcomeTab: WelcomeTab;
|
||||
mediaServerTab: MediaServerTab;
|
||||
ombiConfigTab: OmbiConfigTab;
|
||||
|
||||
get finishButton(): Cypress.Chainable<any> {
|
||||
return cy.get('#finishWizard');
|
||||
}
|
||||
|
||||
get matStepsHeader(): Cypress.Chainable<any> {
|
||||
return cy.get('mat-step-header');
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.localUserTab = new LocalUserTab();
|
||||
this.welcomeTab = new WelcomeTab();
|
||||
this.mediaServerTab = new MediaServerTab();
|
||||
this.ombiConfigTab = new OmbiConfigTab();
|
||||
}
|
||||
|
||||
visit(options?: Cypress.VisitOptions): Cypress.Chainable<Cypress.AUTWindow> {
|
||||
return cy.visit(`/`, options);
|
||||
}
|
||||
}
|
||||
|
||||
export const wizardPage = new WizardPage();
|
@ -0,0 +1,74 @@
|
||||
import { discoverPage as Page } from '@/integration/page-objects';
|
||||
|
||||
describe("Discover Cards Tests", () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
});
|
||||
|
||||
it("Popular combined should load movies and TV", () => {
|
||||
|
||||
cy.intercept("GET","**/search/Movie/Popular/**").as('moviePopular');
|
||||
cy.intercept("GET","**/search/Tv/popular/**").as('tvPopular');
|
||||
Page.visit();
|
||||
|
||||
|
||||
cy.wait('@moviePopular');
|
||||
cy.wait('@tvPopular');
|
||||
|
||||
});
|
||||
|
||||
it("Popular Movie should load movies", () => {
|
||||
|
||||
cy.intercept("GET","**/search/Movie/Popular/**").as('moviePopular');
|
||||
Page.visit();
|
||||
Page.popularCarousel.movieButton.click();
|
||||
|
||||
cy.wait('@moviePopular');
|
||||
|
||||
});
|
||||
|
||||
it.only("Popular TV should load TV", () => {
|
||||
|
||||
cy.intercept("GET","**/search/Tv/popular/**").as('tvPopular');
|
||||
Page.visit();
|
||||
Page.popularCarousel.tvButton.click();
|
||||
|
||||
cy.wait('@tvPopular');
|
||||
});
|
||||
|
||||
it("Popular Moives selected when set in localstorage", () => {
|
||||
|
||||
window.localStorage.setItem("DiscoverOptions2","2");
|
||||
cy.intercept("GET","**/search/Movie/Popular/**").as('moviePopular');
|
||||
Page.visit();
|
||||
Page.popularCarousel.movieButton.parent().should('have.class','button-active');
|
||||
|
||||
cy.wait('@moviePopular');
|
||||
|
||||
});
|
||||
|
||||
it("Popular Tv selected when set in localstorage", () => {
|
||||
|
||||
window.localStorage.setItem("DiscoverOptions2","3");
|
||||
cy.intercept("GET","**/search/Tv/popular/**").as('tvPopular');
|
||||
Page.visit();
|
||||
Page.popularCarousel.tvButton.parent().should('have.class','button-active');
|
||||
|
||||
cy.wait('@tvPopular');
|
||||
|
||||
});
|
||||
|
||||
it("Popular Combined selected when set in localstorage", () => {
|
||||
|
||||
window.localStorage.setItem("DiscoverOptions2","1");
|
||||
cy.intercept("GET","**/search/Movie/Popular/**").as('moviePopular');
|
||||
cy.intercept("GET","**/search/Tv/popular/**").as('tvPopular');
|
||||
Page.visit();
|
||||
Page.popularCarousel.combinedButton.parent().should('have.class','button-active');
|
||||
|
||||
cy.wait('@moviePopular');
|
||||
cy.wait('@tvPopular');
|
||||
|
||||
});
|
||||
|
||||
});
|
@ -1,83 +1,88 @@
|
||||
describe("Login Tests", () => {
|
||||
import { loginPage as Page } from "@/integration/page-objects";
|
||||
|
||||
describe("Login Tests", () => {
|
||||
it("Landing Page is enabled, should redirect", () => {
|
||||
|
||||
cy.landingSettings(true);
|
||||
cy.visit("");
|
||||
Page.visit();
|
||||
cy.location("pathname").should("eq", "/landingpage");
|
||||
cy.get("[data-cy=continue]").click();
|
||||
cy.location("pathname").should("contains", "/login");
|
||||
});
|
||||
|
||||
it("Landing Page is disabled, should not redirect", () => {
|
||||
|
||||
cy.landingSettings(false);
|
||||
cy.visit("");
|
||||
Page.visit();
|
||||
|
||||
cy.location("pathname").should("eq", "/login");
|
||||
});
|
||||
|
||||
it("Plex OAuth Enabled, should be button", () => {
|
||||
cy.landingSettings(false);
|
||||
cy.fixture('login/authenticationSettngs').then((settings) => {
|
||||
settings.enableOAuth = true;
|
||||
cy.intercept('GET', '/Settings/Authentication', settings).as('authSettings')
|
||||
})
|
||||
cy.fixture("login/authenticationSettngs").then((settings) => {
|
||||
settings.enableOAuth = true;
|
||||
cy.intercept("GET", "/Settings/Authentication", settings).as(
|
||||
"authSettings"
|
||||
);
|
||||
});
|
||||
|
||||
cy.visit("");
|
||||
Page.visit();
|
||||
|
||||
cy.get("[data-cy=oAuthPlexButton]").should('be.visible');
|
||||
cy.get("[data-cy=OmbiButton]").should('be.visible');
|
||||
Page.plexSignInButton.should("be.visible");
|
||||
Page.ombiSignInButton.should("be.visible");
|
||||
});
|
||||
|
||||
it("Plex OAuth Diabled, Should show local form", () => {
|
||||
cy.landingSettings(false);
|
||||
cy.fixture('login/authenticationSettngs').then((settings) => {
|
||||
settings.enableOAuth = false;
|
||||
cy.intercept('GET', '/Settings/Authentication', settings).as('authSettings')
|
||||
})
|
||||
cy.fixture("login/authenticationSettngs").then((settings) => {
|
||||
settings.enableOAuth = false;
|
||||
cy.intercept("GET", "/Settings/Authentication", settings).as(
|
||||
"authSettings"
|
||||
);
|
||||
});
|
||||
|
||||
cy.visit("");
|
||||
Page.visit();
|
||||
|
||||
cy.get("[data-cy=OmbiButton]").should('be.visible');
|
||||
Page.ombiSignInButton.should("be.visible");
|
||||
|
||||
cy.get('#username-field').should('be.visible');
|
||||
cy.get('#password-field').should('be.visible');
|
||||
Page.username.should("be.visible");
|
||||
Page.password.should("be.visible");
|
||||
});
|
||||
|
||||
it('Invalid Password',() => {
|
||||
it("Invalid Password", () => {
|
||||
cy.landingSettings(false);
|
||||
cy.visit('/');
|
||||
cy.contains('Sign in');
|
||||
|
||||
cy.get('#username-field').type('automation');
|
||||
cy.get('#password-field').type('incorrectpw');
|
||||
Page.visit();
|
||||
cy.contains("Sign in");
|
||||
|
||||
Page.username.type("automation");
|
||||
Page.password.type("incorrectpw");
|
||||
|
||||
cy.get('[data-cy=OmbiButton]').click();
|
||||
cy.verifyNotification('Incorrect username');
|
||||
Page.ombiSignInButton.click();
|
||||
cy.verifyNotification("Incorrect username");
|
||||
});
|
||||
|
||||
it('Invalid Username',() => {
|
||||
it("Invalid Username", () => {
|
||||
cy.landingSettings(false);
|
||||
cy.visit('/');
|
||||
cy.contains('Sign in');
|
||||
|
||||
cy.get('#username-field').type('bad username');
|
||||
cy.get('#password-field').type('incorrectpw');
|
||||
Page.visit();
|
||||
cy.contains("Sign in");
|
||||
|
||||
Page.username.type("bad username");
|
||||
Page.password.type("incorrectpw");
|
||||
|
||||
cy.get('[data-cy=OmbiButton]').click();
|
||||
cy.verifyNotification('Incorrect username');
|
||||
Page.ombiSignInButton.click();
|
||||
cy.verifyNotification("Incorrect username");
|
||||
});
|
||||
|
||||
it('Correct Login',() => {
|
||||
it("Correct Login", () => {
|
||||
cy.landingSettings(false);
|
||||
cy.visit('/');
|
||||
cy.contains('Sign in');
|
||||
Page.visit();
|
||||
cy.contains("Sign in");
|
||||
|
||||
cy.get('#username-field').type(Cypress.env('username'));
|
||||
cy.get('#password-field').type(Cypress.env('password'));
|
||||
Page.username.type(Cypress.env("username"));
|
||||
Page.password.type(Cypress.env("password"));
|
||||
|
||||
cy.get('[data-cy=OmbiButton]').click();
|
||||
cy.url().should('include', '/discover')
|
||||
Page.ombiSignInButton.click();
|
||||
cy.url().should("include", "/discover");
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in new issue