diff --git a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.html b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.html
index 30a15359b..97fff3671 100644
--- a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.html
+++ b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.html
@@ -1,4 +1,6 @@
\ No newline at end of file
diff --git a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.scss b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.scss
index 41633aa5f..177a22d01 100644
--- a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.scss
+++ b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.scss
@@ -13,4 +13,14 @@
height: 100vh;
width: 100vw;
position: fixed;
+}
+
+.poster-desc {
+ padding-left: 1%;
+ color: white;
+ height: 100vh;
+ width: 100vw;
+ display: flex;
+ justify-content: end;
+ flex-direction: column;
}
\ No newline at end of file
diff --git a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.ts b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.ts
index 2231d13da..ebd228d85 100644
--- a/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.ts
+++ b/src/Ombi/ClientApp/src/app/components/image-background/image-background.component.ts
@@ -1,6 +1,6 @@
import { OmbiCommonModules } from "../modules";
import { Component, OnDestroy, OnInit } from "@angular/core";
-import { DomSanitizer, SafeStyle } from "@angular/platform-browser";
+import { DomSanitizer } from "@angular/platform-browser";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { ImageService } from "../../services";
import { fadeInOutAnimation } from "app/animations/fadeinout";
@@ -17,6 +17,7 @@ import { fadeInOutAnimation } from "app/animations/fadeinout";
export class ImageBackgroundComponent implements OnInit, OnDestroy {
public background: any;
+ public name: string;
private timer: NodeJS.Timer;
constructor(private images: ImageService, private sanitizer: DomSanitizer) { }
@@ -34,8 +35,9 @@ import { fadeInOutAnimation } from "app/animations/fadeinout";
}
private cycleBackground() {
- this.images.getRandomBackground().subscribe((x) => {
+ this.images.getRandomBackgroundWithInfo().subscribe((x) => {
this.background = this.sanitizer.bypassSecurityTrustStyle("url(" + x.url + ")");
+ this.name = x.name;
});
}
}
\ No newline at end of file
diff --git a/src/Ombi/ClientApp/src/app/interfaces/IImages.ts b/src/Ombi/ClientApp/src/app/interfaces/IImages.ts
index 0c73df490..baa1a9829 100644
--- a/src/Ombi/ClientApp/src/app/interfaces/IImages.ts
+++ b/src/Ombi/ClientApp/src/app/interfaces/IImages.ts
@@ -1,3 +1,7 @@
export interface IImages {
url: string;
}
+export interface IImagesInfo {
+ url: string;
+ name: string;
+}
diff --git a/src/Ombi/ClientApp/src/app/services/image.service.ts b/src/Ombi/ClientApp/src/app/services/image.service.ts
index 31699ca7a..c46876d73 100644
--- a/src/Ombi/ClientApp/src/app/services/image.service.ts
+++ b/src/Ombi/ClientApp/src/app/services/image.service.ts
@@ -4,7 +4,7 @@ import { Observable } from "rxjs";
import { HttpClient } from "@angular/common/http";
-import { IImages } from "../interfaces";
+import { IImages, IImagesInfo } from "../interfaces";
import { ServiceHelpers } from "./service.helpers";
@Injectable()
@@ -17,6 +17,10 @@ export class ImageService extends ServiceHelpers {
return this.http.get(`${this.url}background/`, {headers: this.headers});
}
+ public getRandomBackgroundWithInfo(): Observable {
+ return this.http.get(`${this.url}background/info`, {headers: this.headers});
+ }
+
public getTvBanner(tvdbid: number): Observable {
return this.http.get(`${this.url}tv/${tvdbid}`, {headers: this.headers});
}
@@ -31,8 +35,9 @@ export class ImageService extends ServiceHelpers {
public getMovieBackground(movieDbId: string): Observable {
return this.http.get(`${this.url}background/movie/${movieDbId}`, { headers: this.headers });
- }
- public getMovieBanner(movieDbId: string): Observable {
+ }
+
+ public getMovieBanner(movieDbId: string): Observable {
return this.http.get(`${this.url}banner/movie/${movieDbId}`, { headers: this.headers });
}
diff --git a/src/Ombi/Controllers/V1/ImagesController.cs b/src/Ombi/Controllers/V1/ImagesController.cs
index 9683c54b0..0b8a6ce4c 100644
--- a/src/Ombi/Controllers/V1/ImagesController.cs
+++ b/src/Ombi/Controllers/V1/ImagesController.cs
@@ -45,9 +45,9 @@ namespace Ombi.Controllers.V1
{
return string.Empty;
}
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvdbid}", () => FanartTvApi.GetTvImages(tvdbid, key.Value), DateTimeOffset.Now.AddDays(1));
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvdbid}", () => FanartTvApi.GetTvImages(tvdbid, key.Value), DateTimeOffset.Now.AddDays(1));
if (images == null)
{
return string.Empty;
@@ -70,16 +70,16 @@ namespace Ombi.Controllers.V1
[HttpGet("poster")]
public async Task GetRandomPoster()
{
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
var rand = new Random();
var val = rand.Next(1, 3);
if (val == 1)
{
- var movies = (await _movieEngineV2.PopularMovies(0, 10, HttpContext.RequestAborted ,"en")).ToArray();
+ var movies = (await _movieEngineV2.PopularMovies(0, 10, HttpContext.RequestAborted, "en")).ToArray();
var selectedMovieIndex = rand.Next(movies.Count());
var movie = movies[selectedMovieIndex];
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movie.Id}", () => FanartTvApi.GetMovieImages(movie.Id.ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movie.Id}", () => FanartTvApi.GetMovieImages(movie.Id.ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
if (images == null)
{
return string.Empty;
@@ -99,7 +99,7 @@ namespace Ombi.Controllers.V1
{
return images.moviethumb.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault();
}
- }
+ }
else
{
var tv = (await _tvSearchEngineV2.Popular(0, 10, "en")).ToArray();
@@ -114,9 +114,9 @@ namespace Ombi.Controllers.V1
[HttpGet("poster/movie/{movieDbId}")]
public async Task GetMoviePoster(string movieDbId)
{
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
if (images == null)
{
@@ -148,9 +148,9 @@ namespace Ombi.Controllers.V1
{
return string.Empty;
}
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvdbid}", () => FanartTvApi.GetTvImages(tvdbid, key.Value), DateTimeOffset.Now.AddDays(1));
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvdbid}", () => FanartTvApi.GetTvImages(tvdbid, key.Value), DateTimeOffset.Now.AddDays(1));
if (images == null)
{
@@ -178,10 +178,10 @@ namespace Ombi.Controllers.V1
[HttpGet("background/movie/{movieDbId}")]
public async Task GetMovieBackground(string movieDbId)
{
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
-
if (images == null)
{
return string.Empty;
@@ -203,9 +203,9 @@ namespace Ombi.Controllers.V1
[HttpGet("banner/movie/{movieDbId}")]
public async Task GetMovieBanner(string movieDbId)
{
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
- var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
+ var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1));
if (images == null)
{
@@ -246,34 +246,34 @@ namespace Ombi.Controllers.V1
var movieUrl = string.Empty;
var tvUrl = string.Empty;
- var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
+ var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1));
if (moviesArray.Length > 0)
{
var item = rand.Next(moviesArray.Length);
- var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
+ var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
while (!result.moviebackground?.Any() ?? true)
{
item = rand.Next(moviesArray.Length);
- result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
+ result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1));
}
var otherRand = new Random();
var res = otherRand.Next(result.moviebackground.Length);
-
+
movieUrl = result.moviebackground[res].url;
}
if (tvArray.Length > 0)
{
var item = rand.Next(tvArray.Length);
- var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1));
+ var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1));
while (!result.showbackground?.Any() ?? true)
{
item = rand.Next(tvArray.Length);
- result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1));
+ result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1));
}
var otherRand = new Random();
var res = otherRand.Next(result.showbackground.Length);
@@ -294,5 +294,67 @@ namespace Ombi.Controllers.V1
}
return new { url = tvUrl };
}
+
+ [HttpGet("background/info")]
+ public async Task