Compare commits

..

10 Commits

Author SHA1 Message Date
a0ef96aa1a Merge pull request 'chore(deps): update rust crate zip to v7.3.0' (#250) from renovate/all-minor-patch into master
Some checks failed
Continuous integration / Trunk (push) Waiting to run
Continuous integration / Check (push) Successful in 1m38s
Continuous integration / Test Suite (push) Successful in 2m0s
Continuous integration / Rustfmt (push) Failing after 53s
Continuous integration / build (push) Successful in 2m5s
Continuous integration / Disallow unused dependencies (push) Successful in 2m35s
2026-02-04 03:01:53 -08:00
9d05f74280 chore(deps): update rust crate zip to v7.3.0
Some checks failed
Continuous integration / Test Suite (push) Successful in 2m22s
Continuous integration / Check (push) Successful in 2m31s
Continuous integration / Rustfmt (push) Failing after 1m34s
Continuous integration / build (push) Successful in 3m37s
Continuous integration / Trunk (push) Successful in 7m44s
Continuous integration / Disallow unused dependencies (push) Successful in 5m40s
2026-02-04 11:01:48 +00:00
b9df41559f Merge pull request 'chore(deps): update rust crate clap to v4.5.57' (#249) from renovate/all-minor-patch into master
Some checks failed
Continuous integration / Check (push) Successful in 1m50s
Continuous integration / Test Suite (push) Successful in 3m11s
Continuous integration / Trunk (push) Successful in 2m1s
Continuous integration / Rustfmt (push) Failing after 1m33s
Continuous integration / Disallow unused dependencies (push) Failing after 29s
Continuous integration / build (push) Successful in 2m7s
2026-02-03 08:16:57 -08:00
4bb5307904 chore(deps): update rust crate clap to v4.5.57
Some checks failed
Continuous integration / Check (push) Successful in 1m47s
Continuous integration / Trunk (push) Successful in 1m1s
Continuous integration / Test Suite (push) Successful in 3m14s
Continuous integration / Rustfmt (push) Failing after 50s
Continuous integration / Disallow unused dependencies (push) Successful in 2m35s
Continuous integration / build (push) Successful in 3m26s
2026-02-03 16:16:47 +00:00
0cbe860d0d Merge pull request 'chore(deps): update rust crate regex to v1.12.3' (#248) from renovate/all-minor-patch into master
Some checks failed
Continuous integration / Check (push) Successful in 1m29s
Continuous integration / Trunk (push) Successful in 1m3s
Continuous integration / Rustfmt (push) Failing after 44s
Continuous integration / Test Suite (push) Successful in 3m33s
Continuous integration / build (push) Successful in 2m12s
Continuous integration / Disallow unused dependencies (push) Successful in 5m42s
2026-02-03 06:31:26 -08:00
6eaedfaae8 chore(deps): update rust crate regex to v1.12.3
Some checks failed
Continuous integration / Check (push) Successful in 2m20s
Continuous integration / Test Suite (push) Successful in 4m12s
Continuous integration / Trunk (push) Successful in 2m18s
Continuous integration / Rustfmt (push) Failing after 59s
Continuous integration / Disallow unused dependencies (push) Successful in 2m36s
Continuous integration / build (push) Successful in 4m5s
2026-02-03 14:31:20 +00:00
d1787bac32 Merge pull request 'chore(deps): update rust crate flate2 to v1.1.9' (#247) from renovate/all-minor-patch into master
Some checks failed
Continuous integration / Check (push) Successful in 1m43s
Continuous integration / Trunk (push) Successful in 1m4s
Continuous integration / Rustfmt (push) Failing after 44s
Continuous integration / Test Suite (push) Successful in 3m26s
Continuous integration / build (push) Successful in 2m33s
Continuous integration / Disallow unused dependencies (push) Successful in 5m42s
2026-02-02 23:31:36 -08:00
58554e7f40 chore(deps): update rust crate flate2 to v1.1.9
Some checks failed
Continuous integration / Test Suite (push) Successful in 3m14s
Continuous integration / Check (push) Successful in 4m58s
Continuous integration / Rustfmt (push) Failing after 1m35s
Continuous integration / Trunk (push) Successful in 7m49s
Continuous integration / Disallow unused dependencies (push) Successful in 2m28s
Continuous integration / build (push) Successful in 7m50s
2026-02-03 07:31:27 +00:00
fa6fe673bd chore: Release
Some checks failed
Continuous integration / Check (push) Successful in 1m13s
Continuous integration / Test Suite (push) Successful in 2m2s
Continuous integration / Trunk (push) Successful in 59s
Continuous integration / Rustfmt (push) Failing after 47s
Continuous integration / build (push) Successful in 1m42s
Continuous integration / Disallow unused dependencies (push) Successful in 5m40s
2026-02-01 17:16:48 -08:00
44961f6ef1 web: conditionally show spam button in catchup 2026-02-01 17:16:24 -08:00
3 changed files with 64 additions and 62 deletions

117
Cargo.lock generated
View File

@@ -109,7 +109,7 @@ version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -120,7 +120,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
dependencies = [
"anstyle",
"once_cell_polyfill",
"windows-sys 0.61.2",
"windows-sys 0.60.2",
]
[[package]]
@@ -931,9 +931,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.56"
version = "4.5.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75ca66430e33a14957acc24c5077b503e7d374151b2b4b3a10c83b4ceb4be0e"
checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a"
dependencies = [
"clap_builder",
"clap_derive",
@@ -941,9 +941,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.56"
version = "4.5.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "793207c7fa6300a0608d1080b858e5fdbe713cdc1c8db9fb17777d8a13e63df0"
checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238"
dependencies = [
"anstream",
"anstyle",
@@ -1725,7 +1725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@@ -1785,9 +1785,9 @@ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
[[package]]
name = "flate2"
version = "1.1.8"
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -3166,6 +3166,20 @@ dependencies = [
[[package]]
name = "letterbox-notmuch"
version = "0.17.65"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "a24b7c129088ca40ce69b0d738a5fed4bc389b92512cb43b9c5e2fc3c88d4cbc"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.18",
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.66"
dependencies = [
"itertools",
"log",
@@ -3178,28 +3192,14 @@ dependencies = [
"tracing",
]
[[package]]
name = "letterbox-notmuch"
version = "0.17.65"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "a24b7c129088ca40ce69b0d738a5fed4bc389b92512cb43b9c5e2fc3c88d4cbc"
dependencies = [
"log",
"mailparse",
"serde",
"serde_json",
"thiserror 2.0.18",
"tracing",
]
[[package]]
name = "letterbox-procmail2notmuch"
version = "0.17.65"
version = "0.17.66"
dependencies = [
"anyhow",
"clap",
"letterbox-notmuch 0.17.65 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-shared 0.17.65 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-notmuch 0.17.65",
"letterbox-shared 0.17.65",
"serde",
"sqlx",
"tokio 1.49.0",
@@ -3207,7 +3207,7 @@ dependencies = [
[[package]]
name = "letterbox-server"
version = "0.17.65"
version = "0.17.66"
dependencies = [
"ammonia",
"anyhow",
@@ -3230,8 +3230,8 @@ dependencies = [
"html-escape",
"html2text",
"ical",
"letterbox-notmuch 0.17.65",
"letterbox-shared 0.17.65",
"letterbox-notmuch 0.17.66",
"letterbox-shared 0.17.66",
"linkify",
"lol_html",
"mailparse",
@@ -3258,6 +3258,8 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.65"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "41ad8210629ccaca787173628b19314076261038870e920c370fc2205533d01b"
dependencies = [
"build-info",
"letterbox-notmuch 0.17.65",
@@ -3270,12 +3272,10 @@ dependencies = [
[[package]]
name = "letterbox-shared"
version = "0.17.65"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "41ad8210629ccaca787173628b19314076261038870e920c370fc2205533d01b"
version = "0.17.66"
dependencies = [
"build-info",
"letterbox-notmuch 0.17.65 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-notmuch 0.17.66",
"regex",
"serde",
"sqlx",
@@ -3285,7 +3285,7 @@ dependencies = [
[[package]]
name = "letterbox-web"
version = "0.17.65"
version = "0.17.66"
dependencies = [
"build-info",
"build-info-build",
@@ -3297,7 +3297,7 @@ dependencies = [
"graphql_client",
"human_format",
"itertools",
"letterbox-shared 0.17.65",
"letterbox-shared 0.17.66",
"log",
"seed",
"seed_hooks",
@@ -3823,7 +3823,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.59.0",
]
[[package]]
@@ -3854,9 +3854,9 @@ dependencies = [
[[package]]
name = "num-conv"
version = "0.2.0"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-integer"
@@ -4845,9 +4845,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.12.2"
version = "1.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
dependencies = [
"aho-corasick",
"memchr",
@@ -5206,7 +5206,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@@ -5265,7 +5265,7 @@ dependencies = [
"security-framework 3.5.1",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@@ -6183,7 +6183,7 @@ dependencies = [
"tantivy-tokenizer-api",
"tempfile",
"thiserror 2.0.18",
"time 0.3.46",
"time 0.3.45",
"uuid",
"winapi 0.3.9",
]
@@ -6223,7 +6223,7 @@ dependencies = [
"byteorder",
"ownedbytes",
"serde",
"time 0.3.46",
"time 0.3.45",
]
[[package]]
@@ -6292,7 +6292,7 @@ dependencies = [
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
"windows-sys 0.52.0",
]
[[package]]
@@ -6378,9 +6378,9 @@ dependencies = [
[[package]]
name = "time"
version = "0.3.46"
version = "0.3.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5"
checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd"
dependencies = [
"deranged",
"itoa 1.0.17",
@@ -6394,15 +6394,15 @@ dependencies = [
[[package]]
name = "time-core"
version = "0.1.8"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca"
[[package]]
name = "time-macros"
version = "0.2.26"
version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4"
checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd"
dependencies = [
"num-conv",
"time-core",
@@ -6912,7 +6912,7 @@ checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf"
dependencies = [
"crossbeam-channel",
"thiserror 2.0.18",
"time 0.3.46",
"time 0.3.45",
"tracing-subscriber",
]
@@ -7424,7 +7424,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.61.2",
"windows-sys 0.48.0",
]
[[package]]
@@ -7986,9 +7986,9 @@ dependencies = [
[[package]]
name = "zip"
version = "7.2.0"
version = "7.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0"
checksum = "268bf6f9ceb991e07155234071501490bb41fd1e39c6a588106dad10ae2a5804"
dependencies = [
"aes",
"bzip2",
@@ -7996,14 +7996,13 @@ dependencies = [
"crc32fast",
"deflate64",
"flate2",
"generic-array 0.14.7",
"getrandom 0.3.4",
"hmac 0.12.1",
"indexmap 2.13.0",
"memchr",
"pbkdf2",
"sha1",
"time 0.3.46",
"time 0.3.45",
"typed-path",
"zeroize",
"zopfli",
@@ -8012,9 +8011,9 @@ dependencies = [
[[package]]
name = "zlib-rs"
version = "0.5.5"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
checksum = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c"
[[package]]
name = "zmij"

View File

@@ -8,7 +8,7 @@ authors = ["Bill Thiede <git@xinu.tv>"]
edition = "2021"
license = "UNLICENSED"
publish = ["xinu"]
version = "0.17.65"
version = "0.17.66"
repository = "https://git.z.xinu.tv/wathiede/letterbox"
[profile.dev]

View File

@@ -100,6 +100,7 @@ pub fn view(model: &Model) -> Node<Msg> {
&catchup.items,
is_loading,
model.read_completion_ratio,
true, // show spam button for email
)
} else {
normal_view(
@@ -127,6 +128,7 @@ pub fn view(model: &Model) -> Node<Msg> {
&catchup.items,
is_loading,
model.read_completion_ratio,
false, // no spam button for news
)
} else {
normal_view(
@@ -193,6 +195,7 @@ fn catchup_view(
items: &[CatchupItem],
is_loading: bool,
read_completion_ratio: f64,
show_spam_button: bool,
) -> Node<Msg> {
div![
C!["w-full", "relative", "text-white"],
@@ -268,14 +271,14 @@ fn catchup_view(
Msg::GoToSearchResults
]))
],
button![
IF!(show_spam_button => button![
tw_classes::button(),
C!["text-red-500"],
attrs! {At::Title => "Mark as spam"},
span![i![C!["far", "fa-hand"]]],
span![C!["pl-2"], "Spam"],
ev(Ev::Click, |_| Msg::CatchupMarkAsSpam)
],
]),
button![
tw_classes::button_with_color("bg-green-800", "hover:bg-green-700"),
span![i![C!["far", "fa-envelope-open"]]],