From 618f298cc66832d4cc540260c2672573ee972634 Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 18 Mar 2025 19:53:35 +0100 Subject: [PATCH] Add xkcd document --- Cargo.lock | 430 +++++++++++++++++- Cargo.toml | 1 + .../src/components/CDocumentXkcd.vue | 54 +++ .../src/components/CSelector.vue | 4 + showbits-thermal-printer/Cargo.toml | 1 + showbits-thermal-printer/src/documents.rs | 1 + .../src/documents/xkcd/data.json | 6 + .../src/documents/xkcd/image.png | Bin 0 -> 123519 bytes .../src/documents/xkcd/lib | 1 + .../src/documents/xkcd/main.typ | 26 ++ .../src/documents/xkcd/mod.rs | 76 ++++ showbits-thermal-printer/src/main.rs | 2 + showbits-thermal-printer/src/server.rs | 1 + 13 files changed, 590 insertions(+), 13 deletions(-) create mode 100644 showbits-thermal-printer-ui/src/components/CDocumentXkcd.vue create mode 100644 showbits-thermal-printer/src/documents/xkcd/data.json create mode 100644 showbits-thermal-printer/src/documents/xkcd/image.png create mode 120000 showbits-thermal-printer/src/documents/xkcd/lib create mode 100644 showbits-thermal-printer/src/documents/xkcd/main.typ create mode 100644 showbits-thermal-printer/src/documents/xkcd/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 01aec1e..9850922 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -126,6 +126,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.4.0" @@ -228,7 +234,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -938,6 +944,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + [[package]] name = "futures-task" version = "0.3.31" @@ -986,7 +998,7 @@ dependencies = [ "cfg-if", "libc", "wasi 0.13.3+wasi-0.2.2", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1005,6 +1017,25 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "h2" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "half" version = "2.4.1" @@ -1106,6 +1137,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", + "h2", "http", "http-body", "httparse", @@ -1114,6 +1146,40 @@ dependencies = [ "pin-project-lite", "smallvec", "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", ] [[package]] @@ -1123,13 +1189,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", + "futures-channel", "futures-util", "http", "http-body", "hyper", "pin-project-lite", + "socket2", "tokio", "tower-service", + "tracing", ] [[package]] @@ -1414,6 +1483,12 @@ dependencies = [ "syn", ] +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1479,6 +1554,16 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + [[package]] name = "kamadak-exif" version = "0.6.1" @@ -1927,7 +2012,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -2350,6 +2435,50 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "reqwest" +version = "0.12.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-registry", +] + [[package]] name = "resvg" version = "0.43.0" @@ -2376,6 +2505,20 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "roxmltree" version = "0.20.0" @@ -2445,6 +2588,45 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "rustls" +version = "0.23.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" + +[[package]] +name = "rustls-webpki" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.20" @@ -2633,6 +2815,7 @@ dependencies = [ "mime_guess", "palette", "rand 0.9.0", + "reqwest", "rust-embed", "serde", "showbits-assets", @@ -2695,6 +2878,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + [[package]] name = "slotmap" version = "1.0.7" @@ -2792,6 +2984,12 @@ dependencies = [ "syn", ] +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "sunrise" version = "1.0.1" @@ -2827,6 +3025,9 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -2861,6 +3062,27 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.0", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "system-deps" version = "6.2.2" @@ -3074,6 +3296,39 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml" version = "0.8.20" @@ -3156,6 +3411,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "ttf-parser" version = "0.24.1" @@ -3577,6 +3838,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "ureq" version = "2.12.1" @@ -3689,6 +3956,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3730,6 +4006,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.100" @@ -3816,6 +4105,16 @@ dependencies = [ "indexmap", ] +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "weezl" version = "0.1.8" @@ -3831,13 +4130,48 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.53.0", +] + +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -3846,7 +4180,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -3855,14 +4189,30 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -3871,48 +4221,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.7.3" @@ -4061,6 +4459,12 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + [[package]] name = "zerotrie" version = "0.1.3" diff --git a/Cargo.toml b/Cargo.toml index f029ab9..70f898e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ jiff = "0.2.1" mime_guess = "2.0.5" palette = "0.7.6" rand = "0.9.0" +reqwest = { version = "0.12.15", features = ["json"] } rust-embed = "8.6.0" serde = { version = "1.0.218", features = ["derive"] } showbits-assets.path = "./showbits-assets" diff --git a/showbits-thermal-printer-ui/src/components/CDocumentXkcd.vue b/showbits-thermal-printer-ui/src/components/CDocumentXkcd.vue new file mode 100644 index 0000000..663dc22 --- /dev/null +++ b/showbits-thermal-printer-ui/src/components/CDocumentXkcd.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/showbits-thermal-printer-ui/src/components/CSelector.vue b/showbits-thermal-printer-ui/src/components/CSelector.vue index 0dd9383..8cdc923 100644 --- a/showbits-thermal-printer-ui/src/components/CSelector.vue +++ b/showbits-thermal-printer-ui/src/components/CSelector.vue @@ -8,6 +8,7 @@ import CDocumentImage from "./CDocumentImage.vue"; import CDocumentSunrise from "./CDocumentSunrise.vue"; import CDocumentText from "./CDocumentText.vue"; import CDocumentTictactoe from "./CDocumentTictactoe.vue"; +import CDocumentXkcd from "./CDocumentXkcd.vue"; const mode = ref< | "calendar" @@ -18,6 +19,7 @@ const mode = ref< | "sunrise" | "text" | "tictactoe" + | "xkcd" >(); @@ -32,6 +34,7 @@ const mode = ref< +

What do you want to print?

@@ -44,6 +47,7 @@ const mode = ref< + Take a photo
diff --git a/showbits-thermal-printer/Cargo.toml b/showbits-thermal-printer/Cargo.toml index c3ba575..50d47d6 100644 --- a/showbits-thermal-printer/Cargo.toml +++ b/showbits-thermal-printer/Cargo.toml @@ -14,6 +14,7 @@ mark = { workspace = true } mime_guess = { workspace = true } palette = { workspace = true } rand = { workspace = true } +reqwest = { workspace = true } rust-embed = { workspace = true } serde = { workspace = true } showbits-assets = { workspace = true } diff --git a/showbits-thermal-printer/src/documents.rs b/showbits-thermal-printer/src/documents.rs index 9c78bd7..428fe49 100644 --- a/showbits-thermal-printer/src/documents.rs +++ b/showbits-thermal-printer/src/documents.rs @@ -8,6 +8,7 @@ pub mod image; pub mod sunrise; pub mod text; pub mod tictactoe; +pub mod xkcd; fn typst_with_lib() -> Typst { Typst::new().with_file("/lib/main.typ", include_str!("documents/lib/main.typ")) diff --git a/showbits-thermal-printer/src/documents/xkcd/data.json b/showbits-thermal-printer/src/documents/xkcd/data.json new file mode 100644 index 0000000..542acfb --- /dev/null +++ b/showbits-thermal-printer/src/documents/xkcd/data.json @@ -0,0 +1,6 @@ +{ + "number": 3064, + "title": "Lungfish", + "alt": "I know having so many base pairs makes rebasing complicated, but you're in Bilateria, so shouldn't you at LEAST be better at using git head?", + "feed": false +} diff --git a/showbits-thermal-printer/src/documents/xkcd/image.png b/showbits-thermal-printer/src/documents/xkcd/image.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6c820ff90333b914abd795f398668cd927b676 GIT binary patch literal 123519 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�kt#{9yIaBub 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 lib.init(it) + +#let data = json("data.json") + +#align(center)[ + xkcd #data.number + #v(-12pt) + #text(size: 32pt, data.title) +] + +// If the image is an odd number of pixels wide, we need to add an extra row of +// pixels (in this case, on the right) to ensure that the image pixels fall on +// screen pixels. +#context { + let img = image("image.png") + let width = measure(img).width + let additional = 2pt * calc.fract(width.pt() / 2) + align(center, stack(dir: ltr, img, h(additional))) +} + +#align(center, data.alt) + +#if data.feed { + lib.feed +} diff --git a/showbits-thermal-printer/src/documents/xkcd/mod.rs b/showbits-thermal-printer/src/documents/xkcd/mod.rs new file mode 100644 index 0000000..66f2cd8 --- /dev/null +++ b/showbits-thermal-printer/src/documents/xkcd/mod.rs @@ -0,0 +1,76 @@ +use std::io::Cursor; + +use anyhow::Context; +use axum::{ + Form, + extract::State, + response::{IntoResponse, Response}, +}; +use image::ImageFormat; +use serde::{Deserialize, Serialize}; + +use crate::server::{Server, somehow}; + +#[derive(Deserialize)] +struct ComicInfo { + num: u32, + title: String, + alt: String, + img: String, +} + +#[derive(Serialize)] +struct Data { + number: u32, + title: String, + alt: String, + feed: bool, +} + +#[derive(Deserialize)] +pub struct FormData { + pub number: Option, + pub feed: Option, +} + +pub async fn post(server: State, Form(form): Form) -> somehow::Result { + let client = reqwest::Client::builder() + .user_agent(crate::USER_AGENT) + .build()?; + + let url = match form.number { + None => "https://xkcd.com/info.0.json".to_string(), + Some(number) => format!("https://xkcd.com/{number}/info.0.json"), + }; + + let info = client.get(url).send().await?.json::().await?; + + let image_data = client.get(&info.img).send().await?.bytes().await?; + let image = image::load_from_memory(&image_data)?.into_rgba8(); + + let max_width = Some(384); + let max_height = Some(1024); + let image = super::image::dither(image, max_width, max_height, false, "stucki") + .map_err(somehow::Error)?; + + let data = Data { + number: info.num, + title: info.title, + alt: info.alt, + feed: form.feed.unwrap_or(true), + }; + + let mut bytes: Vec = Vec::new(); + image + .write_to(&mut Cursor::new(&mut bytes), ImageFormat::Png) + .context("failed to encode image as png") + .map_err(somehow::Error)?; + + let typst = super::typst_with_lib() + .with_json("/data.json", &data) + .with_file("/image.png", bytes) + .with_main_file(include_str!("main.typ")); + + server.print_typst(typst).await?; + Ok(().into_response()) +} diff --git a/showbits-thermal-printer/src/main.rs b/showbits-thermal-printer/src/main.rs index e43c33e..a4d9935 100644 --- a/showbits-thermal-printer/src/main.rs +++ b/showbits-thermal-printer/src/main.rs @@ -13,6 +13,8 @@ use tokio::{runtime::Runtime, sync::mpsc}; use self::{drawer::Drawer, persistent_printer::PersistentPrinter}; +const USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")); + #[derive(Parser)] struct Args { /// Path to the queue directory. diff --git a/showbits-thermal-printer/src/server.rs b/showbits-thermal-printer/src/server.rs index 96a772f..14f2c9c 100644 --- a/showbits-thermal-printer/src/server.rs +++ b/showbits-thermal-printer/src/server.rs @@ -44,6 +44,7 @@ pub async fn run(tx: mpsc::Sender, addr: String) -> anyhow::Result<()> .route("/api/sunrise", post(documents::sunrise::post)) .route("/api/text", post(documents::text::post)) .route("/api/tictactoe", post(documents::tictactoe::post)) + .route("/api/xkcd", post(documents::xkcd::post)) // Rest .layer(DefaultBodyLimit::max(32 * 1024 * 1024)) // 32 MiB .with_state(Server { tx });