Skip to content

Commit 7aee55c

Browse files
committed
New: Show error message if continue reading file does not exist
1 parent 4962724 commit 7aee55c

21 files changed

+65
-7
lines changed

CHANGELOG.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
88

99
##### 🚀 New Features
1010

11+
- Show error message if continue reading file does not exist
12+
1113
##### 🐛 Bug Fixes
1214

1315
- node-zstd not have native dependencies in arm64 build (Linux and macOS) [`e906f21`](https://github.com/ollm/OpenComic/commit/e906f212dae36c43d514beda44fba62e5ca26be5)
1416
- Manga mode not working in epub [`a901754`](https://github.com/ollm/OpenComic/commit/a901754a4274687cddbfa3820ca3667b8b80e6ee)
15-
- eBook not working with decimal device pixel ratio (1.5, 2.5, etc)
17+
- eBook not working with decimal device pixel ratio (1.5, 2.5, etc) [`4962724`](https://github.com/ollm/OpenComic/commit/496272442747e466638e890a187f84b100deda14)
1618

1719
## [v1.1.0](https://github.com/ollm/OpenComic/releases/tag/v1.1.0) (13-01-2024)
1820

languages/ca.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continuar llegint",
61+
"continueReadingNotExists": "El fitxer desat a continuar llegint no existeix actualment",
6162
"emptyIndex": "No hi ha cap còmic en la biblioteca",
6263
"emptyFolder": "No hi ha cap arxiu compatible en aquesta carpeta",
6364
"emptyRecentlyOpened": "No hi ha fitxers oberts recentment",

languages/cs.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Pokračovat ve čtení",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "V této sbírce nejsou žádné komiksy.",
6263
"emptyFolder": "V této složce nejsou žádné kompatibilní soubory.",
6364
"emptyRecentlyOpened": "",

languages/de.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Lesen fortsetzen",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "In dieser Kollektion gibt es keine Comics.",
6263
"emptyFolder": "In diesem Ordner gibt es keine kompatiblen Dateien.",
6364
"emptyRecentlyOpened": "",

languages/en.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continue reading",
61+
"continueReadingNotExists": "The file saved in continue reading does not currently exist",
6162
"emptyIndex": "There are no comics in the library",
6263
"emptyFolder": "There is no compatible file in this folder",
6364
"emptyRecentlyOpened": "No recently opened files",

languages/es.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continuar leyendo",
61+
"continueReadingNotExists": "El archivo guardado en continuar leyendo no existe actualmente",
6162
"emptyIndex": "No hay ningún cómic en la biblioteca",
6263
"emptyFolder": "No hay ningún archivo compatible en esta carpeta",
6364
"emptyRecentlyOpened": "No hay archivos abiertos recientemente",

languages/fr.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continuer à lire",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "Il n'y a aucun comics dans cette collection.",
6263
"emptyFolder": "Il n'y a aucun fichier compatible dans ce dossier.",
6364
"emptyRecentlyOpened": "",

languages/hu.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Folytatás",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "Ebben a gyűjteményben nincsenek képregények.",
6263
"emptyFolder": "Ebben a mappában nincsenek megfelelő fájlok.",
6364
"emptyRecentlyOpened": "",

languages/it.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continua a leggere",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "Non ci sono fumetti in questa raccolta.",
6263
"emptyFolder": "Non ci sono file compatibili in questa cartella.",
6364
"emptyRecentlyOpened": "",

languages/ja.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "続きを読む",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "このコレクションには本がありません",
6263
"emptyFolder": "このフォルダには閲覧可能なファイルがありません",
6364
"emptyRecentlyOpened": "",

languages/pt-br.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Continue lendo",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "Não há quadrinhos nesta coleção.",
6263
"emptyFolder": "Não há arquivo compatível nesta pasta.",
6364
"emptyRecentlyOpened": "",

languages/ru.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Продолжить чтение",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "В этом сборнике нет комиксов.",
6263
"emptyFolder": "В этой папке нет совместимых файлов.",
6364
"emptyRecentlyOpened": "",

languages/th.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "อ่านต่อ",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "ไม่มีคอมมิกส์ในห้องสมุด",
6263
"emptyFolder": "ไม่มีไฟล์ที่รองรับในโฟลเดอร์นี้",
6364
"emptyRecentlyOpened": "ไม่มีไฟล์ที่เปิดล่าสุด",

languages/vi.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "Đọc tiếp",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "Chưa có truyện trong bộ sưu tập",
6263
"emptyFolder": "Không có tệp tương thích trong thư mục",
6364
"emptyRecentlyOpened": "Chưa mở tệp nào gần đây",

languages/zh-hans.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "继续阅读",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "库里还没有漫画。",
6263
"emptyFolder": "此文件夹中没有兼容的文件。",
6364
"emptyRecentlyOpened": "没有最近打开的文件。",

languages/zh-hant.json

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
},
5959
"comics": {
6060
"continueReading": "繼續閱讀",
61+
"continueReadingNotExists": "",
6162
"emptyIndex": "收藏夾裡還沒有漫畫。",
6263
"emptyFolder": "這個檔案夾裡沒有可讀檔案。",
6364
"emptyRecentlyOpened": "",

scripts/dom.js

+18
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ async function loadFilesIndexPage(file, animation, path, keepScroll, mainPath)
294294
readingProgress.thumbnail = (thumbnail.cache) ? thumbnail.path : '';
295295
readingProgress.mainPath = mainPath;
296296
readingProgress.pathText = returnTextPath(readingProgress.path, mainPath, true, !readingProgress.ebook);
297+
readingProgress.exists = fileManager.simpleExists(readingProgress.path);
297298
handlebarsContext.comicsReadingProgress = readingProgress;
298299
}
299300
else
@@ -311,6 +312,7 @@ async function loadFilesIndexPage(file, animation, path, keepScroll, mainPath)
311312
readingProgressCurrentPath.thumbnail = (thumbnail.cache) ? thumbnail.path : '';
312313
readingProgressCurrentPath.mainPath = mainPath;
313314
readingProgressCurrentPath.pathText = returnTextPath(readingProgressCurrentPath.path, path, true, !readingProgressCurrentPath.ebook);
315+
readingProgressCurrentPath.exists = fileManager.simpleExists(readingProgressCurrentPath.path);
314316
handlebarsContext.comicsReadingProgressCurrentPath = readingProgressCurrentPath;
315317
}
316318
else
@@ -891,6 +893,21 @@ function indexHeader(title = false)
891893
return template.load('index.header.html');
892894
}
893895

896+
function continueReadingError()
897+
{
898+
events.snackbar({
899+
key: 'continueReadingError',
900+
text: language.comics.continueReadingNotExists,
901+
duration: 6,
902+
buttons: [
903+
{
904+
text: language.buttons.dismiss,
905+
function: 'events.closeSnackbar();',
906+
},
907+
],
908+
});
909+
}
910+
894911
function compressedError(error)
895912
{
896913
//console.log(error);
@@ -2132,6 +2149,7 @@ module.exports = {
21322149
translatePageName: translatePageName,
21332150
metadataPathName: metadataPathName,
21342151
fromLibrary: fromLibrary,
2152+
continueReadingError: continueReadingError,
21352153
poster: domPoster,
21362154
search: search,
21372155
labels: labels,

scripts/file-manager.js

+20-2
Original file line numberDiff line numberDiff line change
@@ -2619,7 +2619,7 @@ function isCompressed(name)
26192619
return false;
26202620
}
26212621

2622-
function firstCompressedFile(path, index = 0)
2622+
function firstCompressedFile(path, index = 0, checkDirectory = true)
26232623
{
26242624
let segments = path.split(p.sep);
26252625
let len = segments.length;
@@ -2637,7 +2637,7 @@ function firstCompressedFile(path, index = 0)
26372637
{
26382638
let extension = fileExtension(newPath);
26392639

2640-
if(extension && inArray(extension, compressedExtensions.all) && (_isServer || !fs.statSync(newPath).isDirectory()))
2640+
if(extension && inArray(extension, compressedExtensions.all) && (!checkDirectory || _isServer || !fs.statSync(newPath).isDirectory()))
26412641
return newPath;
26422642
}
26432643
}
@@ -2761,6 +2761,23 @@ function pathType(path)
27612761
return false;
27622762
}
27632763

2764+
function simpleExists(path)
2765+
{
2766+
if(isServer(path))
2767+
{
2768+
return true;
2769+
}
2770+
else
2771+
{
2772+
path = firstCompressedFile(path, 0, false);
2773+
2774+
if(fs.existsSync(path))
2775+
return true;
2776+
}
2777+
2778+
return false;
2779+
}
2780+
27642781
function filtered(files, specialFiles = false)
27652782
{
27662783
let filtered = [];
@@ -2894,6 +2911,7 @@ module.exports = {
28942911
lastCompressedFile: lastCompressedFile,
28952912
containsCompressed: containsCompressed,
28962913
isParentPath: isParentPath,
2914+
simpleExists: simpleExists,
28972915
macosSecurityScopedBookmarks: macosSecurityScopedBookmarks,
28982916
dirSize: dirSize,
28992917
dirSizeSync: dirSizeSync,

templates/index.content.right.list.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<div class="continue-reading-list{{#if comicsReadingProgress}}{{#if comicsReadingProgressCurrentPath}} continue-reading-list-double{{/if}}{{/if}}">
22
{{#if comicsReadingProgress}}
3-
<div class="continue-reading gamepad-item body-medium" onclick="{{#if comicsReadingProgress.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgress.chapterIndex}}, {{comicsReadingProgress.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.mainPath}}');">
3+
<div class="continue-reading gamepad-item body-medium{{#unless comicsReadingProgress.exists}} continue-reading-not-exists{{/unless}}" onclick="{{#if comicsReadingProgress.exists}}{{#if comicsReadingProgress.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgress.chapterIndex}}, {{comicsReadingProgress.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.mainPath}}');{{else}}dom.continueReadingError();{{/if}}">
44
<div>
55
<div class="sha-image-bg-{{comicsReadingProgress.sha}}" style="background-image: url({{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.thumbnail}});"></div>
66
<span>{{language.comics.continueReading}}:&nbsp&nbsp&nbsp{{{comicsReadingProgress.pathText}}}</span>
77
</div>
88
</div>
99
{{/if}}
1010
{{#if comicsReadingProgressCurrentPath}}
11-
<div class="continue-reading gamepad-item body-medium" onclick="{{#if comicsReadingProgressCurrentPath.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgressCurrentPath.chapterIndex}}, {{comicsReadingProgressCurrentPath.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.mainPath}}');">
11+
<div class="continue-reading gamepad-item body-medium{{#unless comicsReadingProgressCurrentPath.exists}} continue-reading-not-exists{{/unless}}" onclick="{{#if comicsReadingProgressCurrentPath.exists}}{{#if comicsReadingProgressCurrentPath.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgressCurrentPath.chapterIndex}}, {{comicsReadingProgressCurrentPath.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.mainPath}}');{{else}}dom.continueReadingError();{{/if}}">
1212
<div>
1313
<div class="sha-image-bg-{{comicsReadingProgressCurrentPath.sha}}" style="background-image: url({{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.thumbnail}});"></div>
1414
<span>{{language.comics.continueReading}}:&nbsp&nbsp&nbsp{{{comicsReadingProgressCurrentPath.pathText}}}</span>

templates/index.content.right.module.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<div class="continue-reading-list{{#if comicsReadingProgress}}{{#if comicsReadingProgressCurrentPath}} continue-reading-list-double{{/if}}{{/if}}">
22
{{#if comicsReadingProgress}}
3-
<div class="continue-reading gamepad-item body-medium" onclick="{{#if comicsReadingProgress.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgress.chapterIndex}}, {{comicsReadingProgress.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.mainPath}}');">
3+
<div class="continue-reading gamepad-item body-medium{{#unless comicsReadingProgress.exists}} continue-reading-not-exists{{/unless}}" onclick="{{#if comicsReadingProgress.exists}}{{#if comicsReadingProgress.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgress.chapterIndex}}, {{comicsReadingProgress.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.mainPath}}');{{else}}dom.continueReadingError();{{/if}}">
44
<div>
55
<div class="sha-image-bg-{{comicsReadingProgress.sha}}" style="background-image: url({{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgress.thumbnail}});"></div>
66
<span>{{language.comics.continueReading}}:&nbsp&nbsp&nbsp{{{comicsReadingProgress.pathText}}}</span>
77
</div>
88
</div>
99
{{/if}}
1010
{{#if comicsReadingProgressCurrentPath}}
11-
<div class="continue-reading gamepad-item body-medium" onclick="{{#if comicsReadingProgressCurrentPath.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgressCurrentPath.chapterIndex}}, {{comicsReadingProgressCurrentPath.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.mainPath}}');">
11+
<div class="continue-reading gamepad-item body-medium{{#unless comicsReadingProgressCurrentPath.exists}} continue-reading-not-exists{{/unless}}" onclick="{{#if comicsReadingProgressCurrentPath.exists}}{{#if comicsReadingProgressCurrentPath.ebook}}reading.setNextOpenChapterProgress({{comicsReadingProgressCurrentPath.chapterIndex}}, {{comicsReadingProgressCurrentPath.chapterProgress}});{{/if}}dom.openComic(true, '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.path}}', '{{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.mainPath}}');{{else}}dom.continueReadingError();{{/if}}">
1212
<div>
1313
<div class="sha-image-bg-{{comicsReadingProgressCurrentPath.sha}}" style="background-image: url({{chain 'escapeBackSlash' 'escapeQuotesSimples' comicsReadingProgressCurrentPath.thumbnail}});"></div>
1414
<span>{{language.comics.continueReading}}:&nbsp&nbsp&nbsp{{{comicsReadingProgressCurrentPath.pathText}}}</span>

themes/material-design/theme.css

+5
Original file line numberDiff line numberDiff line change
@@ -1688,6 +1688,11 @@ cb
16881688
overflow: hidden;
16891689
}
16901690

1691+
.continue-reading-not-exists > div
1692+
{
1693+
background-color: var(--md-sys-color-error-container);
1694+
}
1695+
16911696
.continue-reading > div > div
16921697
{
16931698
width: 54px;

0 commit comments

Comments
 (0)