From 8345c1f44f12b4a742e6b2d1bb21fa0cb88b6284 Mon Sep 17 00:00:00 2001 From: 4gray Date: Mon, 10 Mar 2025 19:19:01 +0100 Subject: [PATCH] fix: update app version retrieval to use GitHub releases API --- src/app/services/settings.service.ts | 31 +++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/app/services/settings.service.ts b/src/app/services/settings.service.ts index b4eda5832..30d7040f0 100644 --- a/src/app/services/settings.service.ts +++ b/src/app/services/settings.service.ts @@ -5,15 +5,10 @@ import { catchError, map, Observable } from 'rxjs'; import { STORE_KEY } from '../shared/enums/store-keys.enum'; import { Theme } from './../settings/theme.enum'; -/** Url of the package.json file in the app repository, required to get the version of the released app */ -const PACKAGE_JSON_URL = - 'https://raw.githubusercontent.com/4gray/iptvnator/master/package.json'; - @Injectable({ providedIn: 'root', }) export class SettingsService { - /** Creates an instance of SettingsService */ constructor( private http: HttpClient, private storage: StorageMap @@ -62,12 +57,24 @@ export class SettingsService { * Returns the version of the released app */ getAppVersion() { - return this.http.get<{ version: string }>(PACKAGE_JSON_URL).pipe( - map((response) => response.version), - catchError((err) => { - console.error(err); - throw new Error(err); - }) - ); + return this.http + .get< + { created_at: string; name: string }[] + >('https://api.github.com/repos/4gray/iptvnator/releases') + .pipe( + map( + (response) => + response.sort( + (a, b) => + new Date(b.created_at).getTime() - + new Date(a.created_at).getTime() + )[0] + ), + map((response) => response.name), + catchError((err) => { + console.error(err); + throw new Error(err); + }) + ); } }