From 0ed1b8afc0d460ddb43dc9c19a7e66c7978f8f7e Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sat, 31 Oct 2020 03:38:28 +0100 Subject: [PATCH] Supporting custom fonts --- src/app/pages/player/player.component.ts | 10 +++++++--- src/app/services/api.service.ts | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/app/pages/player/player.component.ts b/src/app/pages/player/player.component.ts index 086c156a..b0048aff 100644 --- a/src/app/pages/player/player.component.ts +++ b/src/app/pages/player/player.component.ts @@ -15,6 +15,7 @@ import { DomSanitizer, Title } from "@angular/platform-browser"; import { ActivatedRoute, Event, NavigationCancel, NavigationEnd, NavigationStart, Router } from "@angular/router"; import { OidcSecurityService } from "angular-auth-oidc-client"; import * as Hls from "hls.js"; +import { ShowService } from "../../services/api.service"; import { getWhatIsSupported, method, @@ -160,7 +161,8 @@ export class PlayerComponent implements OnInit, OnDestroy, AfterViewInit private title: Title, private router: Router, private location: Location, - private injector: Injector) + private injector: Injector, + private shows: ShowService) { } ngOnInit() @@ -405,7 +407,7 @@ export class PlayerComponent implements OnInit, OnDestroy, AfterViewInit document.body.requestFullscreen(); } - selectSubtitle(subtitle: Track | number, changeUrl: boolean = true) + async selectSubtitle(subtitle: Track | number, changeUrl: boolean = true) { if (typeof(subtitle) === "number") { @@ -460,9 +462,11 @@ export class PlayerComponent implements OnInit, OnDestroy, AfterViewInit { if (!this.subtitlesManager) { + let fonts: {[key: string]: string} = await this.shows.getFonts(this.item.showSlug).toPromise(); this.subtitlesManager = new SubtitlesOctopus({ video: this.player, - subUrl: `subtitle/${subtitle.slug}` + subUrl: `subtitle/${subtitle.slug}`, + fonts: Object.values(fonts) }); } else diff --git a/src/app/services/api.service.ts b/src/app/services/api.service.ts index 43de669a..a981674f 100644 --- a/src/app/services/api.service.ts +++ b/src/app/services/api.service.ts @@ -159,6 +159,11 @@ export class ShowService extends CrudApi return this.client.get>(`/api/collections/${collection}/shows${this.ArgsAsQuery(args)}`) .pipe(map(x => Object.assign(new Page(), x))); } + + getFonts(id: string | number): Observable<{[font: string]: string}> + { + return this.client.get(`/api/shows/${id}/fonts`); + } } @Injectable({