* Started building out idea around detail drawer. Need code from word count to continue * Fixed the logic for caluclating time to read on comics * Adding styles * more styling fixes * Cleaned up the styles a bit more so it's at least functional. Not sure on the feature, might abandon. * Pulled Robbie's changes in and partially migrated them to the drawer. * Add offset overrides for offcanvas so it takes our header into account * Implemented a basic time left to finish the series (or at least what's in Kavita). Rough around the edges. * Cleaned up the drawer code. * Added Quick Catch ups to recommended page. Updated the timeout for scan tasks to ensure we don't run 2 at the same time. * Quick catchups implemented * Added preliminary support for Korean filename parsing. Reduced an array alloc that is called many thousands of times per scan. * Fixing drawer overflow * Fixed a calculation bug with average reading time. * Small spacing changes to drawer * Don't show estimated reading time if the user hasn't read anything * Bump eventsource from 1.1.1 to 2.0.2 in /UI/Web Bumps [eventsource](https://github.com/EventSource/eventsource) from 1.1.1 to 2.0.2. - [Release notes](https://github.com/EventSource/eventsource/releases) - [Changelog](https://github.com/EventSource/eventsource/blob/master/HISTORY.md) - [Commits](https://github.com/EventSource/eventsource/compare/v1.1.1...v2.0.2) --- updated-dependencies: - dependency-name: eventsource dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * Added image to series detail drawer Co-authored-by: Robbie Davis <robbie@therobbiedavis.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
52 lines
2.8 KiB
TypeScript
52 lines
2.8 KiB
TypeScript
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
import { Injectable } from '@angular/core';
|
|
import { map } from 'rxjs';
|
|
import { environment } from 'src/environments/environment';
|
|
import { UtilityService } from '../shared/_services/utility.service';
|
|
import { PaginatedResult } from '../_models/pagination';
|
|
import { Series } from '../_models/series';
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class RecommendationService {
|
|
|
|
private baseUrl = environment.apiUrl;
|
|
|
|
constructor(private httpClient: HttpClient, private utilityService: UtilityService) { }
|
|
|
|
getQuickReads(libraryId: number, pageNum?: number, itemsPerPage?: number) {
|
|
let params = new HttpParams();
|
|
params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);
|
|
return this.httpClient.get<PaginatedResult<Series[]>>(this.baseUrl + 'recommended/quick-reads?libraryId=' + libraryId, {observe: 'response', params})
|
|
.pipe(map(response => this.utilityService.createPaginatedResult(response)));
|
|
}
|
|
|
|
getQuickCatchupReads(libraryId: number, pageNum?: number, itemsPerPage?: number) {
|
|
let params = new HttpParams();
|
|
params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);
|
|
return this.httpClient.get<PaginatedResult<Series[]>>(this.baseUrl + 'recommended/quick-catchup-reads?libraryId=' + libraryId, {observe: 'response', params})
|
|
.pipe(map(response => this.utilityService.createPaginatedResult(response)));
|
|
}
|
|
|
|
getHighlyRated(libraryId: number, pageNum?: number, itemsPerPage?: number) {
|
|
let params = new HttpParams();
|
|
params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);
|
|
return this.httpClient.get<PaginatedResult<Series[]>>(this.baseUrl + 'recommended/highly-rated?libraryId=' + libraryId, {observe: 'response', params})
|
|
.pipe(map(response => this.utilityService.createPaginatedResult(response)));
|
|
}
|
|
|
|
getRediscover(libraryId: number, pageNum?: number, itemsPerPage?: number) {
|
|
let params = new HttpParams();
|
|
params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);
|
|
return this.httpClient.get<PaginatedResult<Series[]>>(this.baseUrl + 'recommended/rediscover?libraryId=' + libraryId, {observe: 'response', params})
|
|
.pipe(map(response => this.utilityService.createPaginatedResult(response)));
|
|
}
|
|
|
|
getMoreIn(libraryId: number, genreId: number, pageNum?: number, itemsPerPage?: number) {
|
|
let params = new HttpParams();
|
|
params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);
|
|
return this.httpClient.get<PaginatedResult<Series[]>>(this.baseUrl + 'recommended/more-in?libraryId=' + libraryId + '&genreId=' + genreId, {observe: 'response', params})
|
|
.pipe(map(response => this.utilityService.createPaginatedResult(response)));
|
|
}
|
|
}
|