From 63c890dadfb7a68af1091a8a6b908e4256c2d307 Mon Sep 17 00:00:00 2001 From: Youwes09 Date: Wed, 1 Apr 2026 10:53:18 -0500 Subject: [PATCH] Fix: Bookmark Notification Spam --- Todo | 39 +++---- dev.moku.app.yml | 2 +- packaging/cargo-sources.json | 153 +++++++++++++--------------- src/components/reader/Reader.svelte | 18 +--- 4 files changed, 89 insertions(+), 123 deletions(-) diff --git a/Todo b/Todo index 72fae64..65060ba 100644 --- a/Todo +++ b/Todo @@ -10,11 +10,22 @@ Minor Revisions: - Look at how Manga are Organized in WebUI and Implement into Series-Detail (Chapter Display is Off) - Adjustment in Settings for Theme Editor: - Patch Color-Picker to Work Properly + - Investigate using AniList, etc for Moku RPC. Priority Bugs: - Cache ALL Cover Pictures & Details for Manga in Library - Investigate Zoom (Reader), Appears to have Cutoff, etc. + - Display Downloaded in Series Detail + - Change Chapter Individual Delete to Red Trash Icon + - Put Downloaded Icon somewhere in Chapter Bar + - Hover Effect on Downloaded Icon (Display Total Downloaded vs Total Chapter) + - Allow Multiclick in Grid/List View to Mass Delete, Etc. + + - Fix Source Allow in Content (Doesn't even work) + - Fix TitleBar not Appearing on Windows in Fullscreen (Locks in User) + + General/Misc Bugs: - Fix Highlightable Elements - Investigate "egl:failed to create dri2 screen" @@ -22,30 +33,6 @@ General/Misc Bugs: - Fix Delete-All Crash (Deletes All but Cripples App) - Investigate Prod vs. Dev Directory Change/Data Load (Caused by Library Algorithm Revision?) -In-Progress:` - - Enable Cloudflare Bypass (Suwayomi Config) (Requires Patching) - - Fix NSFW Parsing (Appears to not Work???) - - Check & Fix Zoom System - - Incredibly zoomed in on Windows (Appears to work fine on 1440p) - - Zoom Values are Incorrect - - Global Zoom should only scale Reader UI, not Manga - - - Fix Resume-from-Read - - Start on Chapter 46 -> Go all the way to Chapter 47 (Page 28) - - Results in Opening Chapter 46 to take to last page of Chapter (Cache not Cleared). - - Add Event that if different chapter is opened, cache is cleared on all previous chapters. - - Add into Settings - - - -Important Commands: - cd ~/Projects/Manga/Moku - pnpm build - tar -czf packaging/frontend-dist.tar.gz -C dist . - sha256sum packaging/frontend-dist.tar.gz | awk '{print $1}' - - - nix-shell -p "python311.withPackages(ps: [ ps.aiohttp ps.tomlkit ])" --run "python3 packaging/flatpak-cargo-generator.py src-tauri/Cargo.lock -o packaging/cargo-sources.json" - nix shell nixpkgs#appstream nixpkgs#flatpak-builder --command flatpak-builder --repo=repo --force-clean build-dir dev.moku.app.yml - flatpak build-bundle repo moku.flatpak dev.moku.app \ No newline at end of file +In-Progress: + - Enable Cloudflare Bypass (Suwayomi Config) (Requires Patching) \ No newline at end of file diff --git a/dev.moku.app.yml b/dev.moku.app.yml index 06c4996..8175fe4 100644 --- a/dev.moku.app.yml +++ b/dev.moku.app.yml @@ -181,7 +181,7 @@ modules: path: . - type: file path: packaging/frontend-dist.tar.gz - sha256: fb01fc1a98499aeb5cf3e464c430a94c78ab1e68f15220ea8f95091f6ca593f2 + sha256: 43b7274bdab884aacbc3dad6f0f7c043d8e3d82b7bf7398e1df9f516ed553152 - packaging/cargo-sources.json - type: inline dest: src-tauri/.cargo diff --git a/packaging/cargo-sources.json b/packaging/cargo-sources.json index 48a38f4..b1edefe 100644 --- a/packaging/cargo-sources.json +++ b/packaging/cargo-sources.json @@ -1952,14 +1952,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hyper/hyper-1.8.1.crate", - "sha256": "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11", - "dest": "cargo/vendor/hyper-1.8.1" + "url": "https://static.crates.io/crates/hyper/hyper-1.9.0.crate", + "sha256": "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca", + "dest": "cargo/vendor/hyper-1.9.0" }, { "type": "inline", - "contents": "{\"package\": \"2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11\", \"files\": {}}", - "dest": "cargo/vendor/hyper-1.8.1", + "contents": "{\"package\": \"6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca\", \"files\": {}}", + "dest": "cargo/vendor/hyper-1.9.0", "dest-filename": ".cargo-checksum.json" }, { @@ -2355,14 +2355,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.92.crate", - "sha256": "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995", - "dest": "cargo/vendor/js-sys-0.3.92" + "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.94.crate", + "sha256": "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9", + "dest": "cargo/vendor/js-sys-0.3.94" }, { "type": "inline", - "contents": "{\"package\": \"cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995\", \"files\": {}}", - "dest": "cargo/vendor/js-sys-0.3.92", + "contents": "{\"package\": \"2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9\", \"files\": {}}", + "dest": "cargo/vendor/js-sys-0.3.94", "dest-filename": ".cargo-checksum.json" }, { @@ -3522,19 +3522,6 @@ "dest": "cargo/vendor/pin-project-lite-0.2.17", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate", - "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184", - "dest": "cargo/vendor/pin-utils-0.1.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}", - "dest": "cargo/vendor/pin-utils-0.1.0", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -4617,14 +4604,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-1.1.0.crate", - "sha256": "876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98", - "dest": "cargo/vendor/serde_spanned-1.1.0" + "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-1.1.1.crate", + "sha256": "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26", + "dest": "cargo/vendor/serde_spanned-1.1.1" }, { "type": "inline", - "contents": "{\"package\": \"876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98\", \"files\": {}}", - "dest": "cargo/vendor/serde_spanned-1.1.0", + "contents": "{\"package\": \"6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26\", \"files\": {}}", + "dest": "cargo/vendor/serde_spanned-1.1.1", "dest-filename": ".cargo-checksum.json" }, { @@ -5670,14 +5657,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-1.1.0+spec-1.1.0.crate", - "sha256": "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f", - "dest": "cargo/vendor/toml_datetime-1.1.0+spec-1.1.0" + "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-1.1.1+spec-1.1.0.crate", + "sha256": "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7", + "dest": "cargo/vendor/toml_datetime-1.1.1+spec-1.1.0" }, { "type": "inline", - "contents": "{\"package\": \"97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f\", \"files\": {}}", - "dest": "cargo/vendor/toml_datetime-1.1.0+spec-1.1.0", + "contents": "{\"package\": \"3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7\", \"files\": {}}", + "dest": "cargo/vendor/toml_datetime-1.1.1+spec-1.1.0", "dest-filename": ".cargo-checksum.json" }, { @@ -5709,40 +5696,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.25.8+spec-1.1.0.crate", - "sha256": "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c", - "dest": "cargo/vendor/toml_edit-0.25.8+spec-1.1.0" + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.25.9+spec-1.1.0.crate", + "sha256": "da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5", + "dest": "cargo/vendor/toml_edit-0.25.9+spec-1.1.0" }, { "type": "inline", - "contents": "{\"package\": \"16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.25.8+spec-1.1.0", + "contents": "{\"package\": \"da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.25.9+spec-1.1.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_parser/toml_parser-1.1.0+spec-1.1.0.crate", - "sha256": "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011", - "dest": "cargo/vendor/toml_parser-1.1.0+spec-1.1.0" + "url": "https://static.crates.io/crates/toml_parser/toml_parser-1.1.1+spec-1.1.0.crate", + "sha256": "39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9", + "dest": "cargo/vendor/toml_parser-1.1.1+spec-1.1.0" }, { "type": "inline", - "contents": "{\"package\": \"2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011\", \"files\": {}}", - "dest": "cargo/vendor/toml_parser-1.1.0+spec-1.1.0", + "contents": "{\"package\": \"39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9\", \"files\": {}}", + "dest": "cargo/vendor/toml_parser-1.1.1+spec-1.1.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_writer/toml_writer-1.1.0+spec-1.1.0.crate", - "sha256": "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed", - "dest": "cargo/vendor/toml_writer-1.1.0+spec-1.1.0" + "url": "https://static.crates.io/crates/toml_writer/toml_writer-1.1.1+spec-1.1.0.crate", + "sha256": "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db", + "dest": "cargo/vendor/toml_writer-1.1.1+spec-1.1.0" }, { "type": "inline", - "contents": "{\"package\": \"d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed\", \"files\": {}}", - "dest": "cargo/vendor/toml_writer-1.1.0+spec-1.1.0", + "contents": "{\"package\": \"756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db\", \"files\": {}}", + "dest": "cargo/vendor/toml_writer-1.1.1+spec-1.1.0", "dest-filename": ".cargo-checksum.json" }, { @@ -6203,66 +6190,66 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.115.crate", - "sha256": "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a", - "dest": "cargo/vendor/wasm-bindgen-0.2.115" + "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.117.crate", + "sha256": "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0", + "dest": "cargo/vendor/wasm-bindgen-0.2.117" }, { "type": "inline", - "contents": "{\"package\": \"6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-0.2.115", + "contents": "{\"package\": \"0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-0.2.117", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.65.crate", - "sha256": "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0", - "dest": "cargo/vendor/wasm-bindgen-futures-0.4.65" + "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.67.crate", + "sha256": "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e", + "dest": "cargo/vendor/wasm-bindgen-futures-0.4.67" }, { "type": "inline", - "contents": "{\"package\": \"2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-futures-0.4.65", + "contents": "{\"package\": \"03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-futures-0.4.67", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.115.crate", - "sha256": "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67", - "dest": "cargo/vendor/wasm-bindgen-macro-0.2.115" + "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.117.crate", + "sha256": "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.117" }, { "type": "inline", - "contents": "{\"package\": \"4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-macro-0.2.115", + "contents": "{\"package\": \"7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.117", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.115.crate", - "sha256": "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf", - "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.115" + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.117.crate", + "sha256": "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.117" }, { "type": "inline", - "contents": "{\"package\": \"921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.115", + "contents": "{\"package\": \"dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.117", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.115.crate", - "sha256": "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93", - "dest": "cargo/vendor/wasm-bindgen-shared-0.2.115" + "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.117.crate", + "sha256": "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.117" }, { "type": "inline", - "contents": "{\"package\": \"a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-shared-0.2.115", + "contents": "{\"package\": \"39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.117", "dest-filename": ".cargo-checksum.json" }, { @@ -6320,14 +6307,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.92.crate", - "sha256": "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94", - "dest": "cargo/vendor/web-sys-0.3.92" + "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.94.crate", + "sha256": "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a", + "dest": "cargo/vendor/web-sys-0.3.94" }, { "type": "inline", - "contents": "{\"package\": \"84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94\", \"files\": {}}", - "dest": "cargo/vendor/web-sys-0.3.92", + "contents": "{\"package\": \"cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a\", \"files\": {}}", + "dest": "cargo/vendor/web-sys-0.3.94", "dest-filename": ".cargo-checksum.json" }, { @@ -7347,14 +7334,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winnow/winnow-1.0.0.crate", - "sha256": "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8", - "dest": "cargo/vendor/winnow-1.0.0" + "url": "https://static.crates.io/crates/winnow/winnow-1.0.1.crate", + "sha256": "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5", + "dest": "cargo/vendor/winnow-1.0.1" }, { "type": "inline", - "contents": "{\"package\": \"a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8\", \"files\": {}}", - "dest": "cargo/vendor/winnow-1.0.0", + "contents": "{\"package\": \"09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5\", \"files\": {}}", + "dest": "cargo/vendor/winnow-1.0.1", "dest-filename": ".cargo-checksum.json" }, { diff --git a/src/components/reader/Reader.svelte b/src/components/reader/Reader.svelte index 155ac57..ab324a7 100644 --- a/src/components/reader/Reader.svelte +++ b/src/components/reader/Reader.svelte @@ -297,6 +297,9 @@ const chId = visibleChapterId; if (!chId || style !== "longstrip") return; if (chId === store.activeChapter?.id) return; + // Only resume if this chapter was opened directly, not auto-appended while reading + const wasAppended = untrack(() => stripChapters.findIndex(c => c.chapterId === chId)) > 0; + if (wasAppended) { untrack(() => { resumePage = 0; resumeVisible = false; }); return; } const bookmark = store.bookmarks.find(b => b.chapterId === chId); if (bookmark && bookmark.pageNumber > 1) { untrack(() => { @@ -571,6 +574,7 @@ if (!ch || !manga) return; if (isBookmarked) { removeBookmark(ch.id); + resumeVisible = false; } else { addBookmark({ mangaId: manga.id, mangaTitle: manga.title, thumbnailUrl: manga.thumbnailUrl, chapterId: ch.id, chapterName: ch.name, pageNumber: store.pageNumber }); } @@ -774,19 +778,7 @@ {#if showResumeBanner}
{ resumeVisible = false; resumeFading = false; }}> Bookmark at page {resumePage} - {#if style === "longstrip" && visibleChapterId && visibleChapterId !== store.activeChapter?.id} - - {/if} +
{/if}