fix(IBookmarkPreviewer): No more on-demand loading

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
Marcel Klehr 2024-02-04 15:20:40 +01:00
parent 0b3c5e039d
commit 847ac04d73
10 changed files with 21 additions and 17 deletions

View File

@ -14,5 +14,5 @@ interface IBookmarkPreviewer {
* @param Bookmark $bookmark
* @return IImage|null
*/
public function getImage($bookmark): ?IImage;
public function getImage($bookmark, $cacheOnly = false): ?IImage;
}

View File

@ -71,7 +71,7 @@ class BookmarkPreviewer implements IBookmarkPreviewer {
* @param Bookmark $bookmark
* @return IImage
*/
public function getImage($bookmark): ?IImage {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if ($this->enabled === 'false') {
return null;
}
@ -98,7 +98,7 @@ class BookmarkPreviewer implements IBookmarkPreviewer {
} catch (NotFoundException $e) {
} catch (NotPermittedException $e) {
}
$image = $previewer->getImage($bookmark);
$image = $previewer->getImage($bookmark, $cacheOnly);
if (isset($image)) {
$this->cache->set($key, $image->serialize(), self::CACHE_TTL);
return $image;

View File

@ -480,7 +480,7 @@ class BookmarkService {
* @var $bookmark Bookmark
*/
$bookmark = $this->bookmarkMapper->find($id);
return $this->bookmarkPreviewer->getImage($bookmark);
return $this->bookmarkPreviewer->getImage($bookmark, true);
}
/**
@ -494,7 +494,7 @@ class BookmarkService {
* @var $bookmark Bookmark
*/
$bookmark = $this->bookmarkMapper->find($id);
return $this->faviconPreviewer->getImage($bookmark);
return $this->faviconPreviewer->getImage($bookmark, true);
}
/**

View File

@ -65,7 +65,7 @@ class FaviconPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if ($this->enabled === 'false') {
return null;
}
@ -88,6 +88,10 @@ class FaviconPreviewer implements IBookmarkPreviewer {
} catch (NotPermittedException $e) {
}
if ($cacheOnly) {
return null;
}
$url = $bookmark->getUrl();
$site = $this->scrapeUrl($url);

View File

@ -46,8 +46,8 @@ class DefaultBookmarkPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
if (!isset($bookmark)) {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if (!isset($bookmark) || $cacheOnly) {
return null;
}
$site = $this->scrapeUrl($bookmark->getUrl());

View File

@ -43,13 +43,13 @@ class PageresBookmarkPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if (!isset($bookmark)) {
return null;
}
$serverPath = self::getPageresPath();
if ($serverPath === null) {
if ($serverPath === null || $cacheOnly) {
return null;
}

View File

@ -63,11 +63,11 @@ class ScreeenlyBookmarkPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if (!isset($bookmark)) {
return null;
}
if ($this->apiKey === '') {
if ($this->apiKey === '' || $cacheOnly) {
return null;
}
$url = $bookmark->getUrl();

View File

@ -57,8 +57,8 @@ class ScreenshotMachineBookmarkPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
if (!isset($bookmark)) {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if (!isset($bookmark) || $cacheOnly) {
return null;
}
if ($this->apiKey === '') {

View File

@ -66,8 +66,8 @@ class WebshotBookmarkPreviewer implements IBookmarkPreviewer {
*
* @return Image|null
*/
public function getImage($bookmark): ?IImage {
if (!isset($bookmark)) {
public function getImage($bookmark, $cacheOnly = false): ?IImage {
if (!isset($bookmark) || $cacheOnly) {
return null;
}
if ($this->apiUrl === '') {

View File

@ -158,7 +158,7 @@ export default {
}
return results
}
return this.$store.getters.getFolder(this.$store.state.fetchState.query.folder)[0].children.flatMap(searchFolder)
return this.$store.getters.getFolder(this.$store.state.fetchState.query.folder || -1)[0].children.flatMap(searchFolder)
}
if (this.$route.name !== this.routes.HOME && this.$route.name !== this.routes.FOLDER) {
return []