From df9dec296d8ba1139fbf7c3c3caf27f8ee4591aa Mon Sep 17 00:00:00 2001 From: trivernis Date: Mon, 15 Nov 2021 21:31:50 +0100 Subject: [PATCH] Update plugin Signed-off-by: trivernis --- mediarepo-ui/src-tauri/Cargo.lock | 4 +- mediarepo-ui/src-tauri/Cargo.toml | 2 +- .../file-gallery-entry.component.ts | 2 +- .../file-grid-entry.component.ts | 2 +- mediarepo-ui/src/app/models/Thumbnail.ts | 2 +- .../src/app/services/file/file.service.ts | 52 ------------------- 6 files changed, 6 insertions(+), 58 deletions(-) diff --git a/mediarepo-ui/src-tauri/Cargo.lock b/mediarepo-ui/src-tauri/Cargo.lock index 59e8ade..cbe267f 100644 --- a/mediarepo-ui/src-tauri/Cargo.lock +++ b/mediarepo-ui/src-tauri/Cargo.lock @@ -1580,8 +1580,8 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "mediarepo-api" -version = "0.7.0" -source = "git+https://github.com/Trivernis/mediarepo-api.git?rev=acda7307dc58e9ac489b12bab61561a1cbf951eb#acda7307dc58e9ac489b12bab61561a1cbf951eb" +version = "0.10.0" +source = "git+https://github.com/Trivernis/mediarepo-api.git?rev=3e8a415a4cf1c04e3e7ccefbcdd56b650ad40c85#3e8a415a4cf1c04e3e7ccefbcdd56b650ad40c85" dependencies = [ "async-trait", "chrono", diff --git a/mediarepo-ui/src-tauri/Cargo.toml b/mediarepo-ui/src-tauri/Cargo.toml index 1d6cb43..ff1bbc3 100644 --- a/mediarepo-ui/src-tauri/Cargo.toml +++ b/mediarepo-ui/src-tauri/Cargo.toml @@ -30,7 +30,7 @@ features = ["env-filter"] [dependencies.mediarepo-api] git = "https://github.com/Trivernis/mediarepo-api.git" -rev = "acda7307dc58e9ac489b12bab61561a1cbf951eb" +rev = "3e8a415a4cf1c04e3e7ccefbcdd56b650ad40c85" features = ["tauri-plugin"] [features] diff --git a/mediarepo-ui/src/app/components/file-gallery/file-gallery-entry/file-gallery-entry.component.ts b/mediarepo-ui/src/app/components/file-gallery/file-gallery-entry/file-gallery-entry.component.ts index cf2c617..290d4ec 100644 --- a/mediarepo-ui/src/app/components/file-gallery/file-gallery-entry/file-gallery-entry.component.ts +++ b/mediarepo-ui/src/app/components/file-gallery/file-gallery-entry/file-gallery-entry.component.ts @@ -45,6 +45,6 @@ export class FileGalleryEntryComponent implements OnInit, OnChanges { private setImageDelayed() { this.contentUrl = undefined; clearTimeout(this.urlSetTimeout); - this.urlSetTimeout = setTimeout(() => this.contentUrl = this.fileService.buildThumbnailUrl(this.file.data, 250, 250), 500); + this.urlSetTimeout = setTimeout(() => this.contentUrl = this.fileService.buildThumbnailUrl(this.file.data, 250, 250), 200); } } diff --git a/mediarepo-ui/src/app/components/file-grid/file-grid-entry/file-grid-entry.component.ts b/mediarepo-ui/src/app/components/file-grid/file-grid-entry/file-grid-entry.component.ts index a634e03..940b7d2 100644 --- a/mediarepo-ui/src/app/components/file-grid/file-grid-entry/file-grid-entry.component.ts +++ b/mediarepo-ui/src/app/components/file-grid/file-grid-entry/file-grid-entry.component.ts @@ -50,6 +50,6 @@ export class FileGridEntryComponent implements OnInit, OnChanges { this.contentUrl = undefined; clearTimeout(this.urlSetTimeout); this.urlSetTimeout = setTimeout(() => this.contentUrl = this.fileService.buildThumbnailUrl(this.gridEntry.file, - 250, 250), 500); + 250, 250), 200); } } diff --git a/mediarepo-ui/src/app/models/Thumbnail.ts b/mediarepo-ui/src/app/models/Thumbnail.ts index 18c7006..ec756de 100644 --- a/mediarepo-ui/src/app/models/Thumbnail.ts +++ b/mediarepo-ui/src/app/models/Thumbnail.ts @@ -1,5 +1,5 @@ export type Thumbnail = { - hash: string, + file_hash: string, height: number, width: number, mime_type: string | undefined diff --git a/mediarepo-ui/src/app/services/file/file.service.ts b/mediarepo-ui/src/app/services/file/file.service.ts index 9a07e72..e23bf3c 100644 --- a/mediarepo-ui/src/app/services/file/file.service.ts +++ b/mediarepo-ui/src/app/services/file/file.service.ts @@ -35,58 +35,6 @@ export class FileService { this.displayedFiles.next(files); } - public async readFile(file: File): Promise { - const once_uri = await invoke("plugin:mediarepo|read_file_by_hash", - {id: file.id, hash: file.hash, mimeType: file.mime_type}); - return this.sanitizer.bypassSecurityTrustResourceUrl(once_uri); - } - - /** - * Returns the thumbnail for a file with a specific size (allowing +-10%) - * If none can be found it asks the backend if it has one or generates one of that size - * @param {File} file - * @param {number} width - * @param {number} height - * @returns {Promise} - */ - public async getFileThumbnail(file: File, width: number, height: number): Promise { - const thumbnails = await this.getThumbnails(file); - const thumbnail = thumbnails.find(t => t.height >= height * 0.7 && t.width >= width * 0.7 && t.height <= height * 1.3 && t.width <= width * 1.3); - let url; - - if (thumbnail) { - url = await this.readThumbnail(thumbnail); - } else { - url = await this.getThumbnailOfSize(file, height * 0.9, width * 0.9, height * 1.1, width * 1.1); - delete this.thumbnailCache[file.id]; - } - - return url; - } - - public async readThumbnail(thumbnail: Thumbnail): Promise { - let once_uri = await invoke("plugin:mediarepo|read_thumbnail", - {hash: thumbnail.hash, mimeType: thumbnail.mime_type}); - return this.sanitizer.bypassSecurityTrustResourceUrl(once_uri); - } - - public async getThumbnailOfSize(file: File, minHeight: number, minWidth: number, maxHeight: number, maxWidth: number): Promise { - let once_uri = await invoke("plugin:mediarepo|get_thumbnail_of_size", {fileId: file.id, minSize: [minHeight, minWidth], maxSize: [maxHeight, maxWidth]}); - return this.sanitizer.bypassSecurityTrustResourceUrl(once_uri); - } - - public async getThumbnails(file: File): Promise { - const cachedThumbnails = this.thumbnailCache[file.id]; - if (cachedThumbnails) { - return cachedThumbnails; - } - const thumbnails = await invoke("plugin:mediarepo|get_file_thumbnails", - {id: file.id}); - this.thumbnailCache[file.id] = thumbnails; - - return thumbnails; - } - public async updateFileName(file: File, name: string): Promise { return await invoke("plugin:mediarepo|update_file_name", {id: file.id, name}) }