From e92b5034c00a2b3896c7c0f7bbcacd3bc2aa2994 Mon Sep 17 00:00:00 2001 From: Jurgis Sakalauskas Date: Wed, 7 Dec 2022 17:26:02 +0200 Subject: [PATCH] add LRT main menu --- src/KodiApi/Dto/api-response.dto.ts | 9 +++++++++ src/KodiApi/Dto/response-item.dto.ts | 1 + src/KodiApi/LRT/lrt.controller.ts | 9 +++++++++ src/KodiApi/LRT/lrt.service.ts | 27 ++++++++++++++++++++++++++- 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/KodiApi/Dto/api-response.dto.ts b/src/KodiApi/Dto/api-response.dto.ts index 632a941..1bf6f26 100644 --- a/src/KodiApi/Dto/api-response.dto.ts +++ b/src/KodiApi/Dto/api-response.dto.ts @@ -7,6 +7,7 @@ export default class ApiResponse { category: string; play: string; msgBoxOK: string; + nosort: boolean; setTitle(title) { this.category = title; @@ -30,5 +31,13 @@ export default class ApiResponse { addMessage(message) { this.msgBoxOK = message; + + return this; + } + + setNoSort(value = true) { + this.nosort = value; + + return this; } } diff --git a/src/KodiApi/Dto/response-item.dto.ts b/src/KodiApi/Dto/response-item.dto.ts index b13dfb6..ea4bdc2 100644 --- a/src/KodiApi/Dto/response-item.dto.ts +++ b/src/KodiApi/Dto/response-item.dto.ts @@ -43,6 +43,7 @@ export default class ResponseItem { setActionSearch() { this.action = 'search'; delete this.isPlayable; + delete this.mediatype; this.isFolder = false; return this; diff --git a/src/KodiApi/LRT/lrt.controller.ts b/src/KodiApi/LRT/lrt.controller.ts index 417553e..a213002 100644 --- a/src/KodiApi/LRT/lrt.controller.ts +++ b/src/KodiApi/LRT/lrt.controller.ts @@ -20,6 +20,15 @@ export class LrtController { }; } + @Get('recent') + getRecent(@Req() request: Request) { + return { + mod: 'lrt', + path: request.url, + recent: true, + }; + } + @Get('cat/:id') getCategory(@Req() request: Request, @Param('id') id: number) { return { diff --git a/src/KodiApi/LRT/lrt.service.ts b/src/KodiApi/LRT/lrt.service.ts index ad75926..1ca1500 100644 --- a/src/KodiApi/LRT/lrt.service.ts +++ b/src/KodiApi/LRT/lrt.service.ts @@ -8,6 +8,31 @@ export class LrtService { private readonly kodiApiResponseFactory: KodiApiResponseFactory, ) {} getMainMenu(): ApiResponse { - return this.kodiApiResponseFactory.createApiResponse(); + const apiResponse = this.kodiApiResponseFactory.createApiResponse(); + apiResponse.setNoSort().setTitle('LRT.lt'); + this.createMainMenu(apiResponse); + + return apiResponse; + } + + private createMainMenu(apiResponse: ApiResponse): void { + const items = { + 'lrt/recent': 'neseniai ieškoti', + 'lrt/tema/vaikams': 'vaikams', + 'lrt/tema/sportas': 'sportas', + 'lrt/tema/kultura': 'kultura', + 'lrt/tema/muzika': 'muzika', + 'lrt/tema/viskas': 'viskas', + 'lrt/tema/tv-laidos': 'tv-laidos', + }; + apiResponse + .createItem() + .setPath('lrt/search') + .setActionSearch() + .setLabel('paieška'); + + for (const [path, label] of Object.entries(items)) { + apiResponse.createItem().setLabel(label).setToFolder().setPath(path); + } } }