From c9dd2471753d57bd48c197fe95a7d47e29a740f4 Mon Sep 17 00:00:00 2001 From: Campbell Alden Date: Fri, 21 Jul 2023 20:02:38 +0900 Subject: [PATCH] Add random emoji choice to the morning message --- Cargo.lock | 56 ++++++++++++- Cargo.toml | 1 + emojis.txt | 167 --------------------------------------- src/emoji/emoji_list.txt | 167 +++++++++++++++++++++++++++++++++++++++ src/emoji/mod.rs | 8 ++ src/main.rs | 3 +- 6 files changed, 233 insertions(+), 169 deletions(-) delete mode 100644 emojis.txt create mode 100644 src/emoji/emoji_list.txt create mode 100644 src/emoji/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 91c6b1f..0121912 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -179,6 +179,7 @@ dependencies = [ "chrono", "clap", "osascript", + "rand", "serde", "serde_json", ] @@ -204,6 +205,17 @@ dependencies = [ "libc", ] +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + [[package]] name = "heck" version = "0.4.1" @@ -309,6 +321,12 @@ dependencies = [ "serde_json", ] +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro2" version = "1.0.66" @@ -327,6 +345,36 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + [[package]] name = "rustix" version = "0.38.4" @@ -401,7 +449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", - "wasi", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] @@ -423,6 +471,12 @@ version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wasm-bindgen" version = "0.2.87" diff --git a/Cargo.toml b/Cargo.toml index d60f520..99bd516 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,5 +10,6 @@ anyhow = "1.0.72" chrono = { version = "0.4.26", features = ["serde"] } clap = { version = "4.3.17", features = ["derive"] } osascript = "0.3.0" +rand = "0.8.5" serde = { version = "1.0.173", features = ["derive"] } serde_json = "1.0.103" diff --git a/emojis.txt b/emojis.txt deleted file mode 100644 index 3f6bd0a..0000000 --- a/emojis.txt +++ /dev/null @@ -1,167 +0,0 @@ -audioowl -ayaya -blobcat_cookie -boat-cat -bouquet_owl -cat-confused -cat-cook -cat-on-the-laptop -cat-roll -cat-shook -cat-skype -cat_blush -cat_type -catcat -catdance -caterpie -catjam -catsurprise -cattyping -chef_owl -chocolate_owl -coffee-owl -confused-dog -confusedowl -cool-doge -coolowl -crazycat -creepyowl -cupid_owl -cupid_owl_02 -dancing_dog -deadowl -dnowl -doge -dogjam -eikaiwaowl -eve-owl -eve-owl-evil -fakeowl -gatocat -grumpycat -gull_scream -heart-eyes-dog -hungry_cat -i_regret_nothing -investigate-owl -jakethedog1 -jakethedog2 -jenkinsowl -look-owl -loopyowl -love_letter_owl -loveowl -mama-owl -meow-popcorn -meow_alien -meow_angel -meow_attention -meow_beanbag -meow_beret-coffee -meow_birthday -meow_blep -meow_bongoderp -meow_bounce -meow_brokenheart -meow_burger -meow_buzz -meow_camera -meow_code -meow_coffee -meow_coffee2 -meow_comfy -meow_comfy_coffee -meow_comfydonut -meow_comfysmirk -meow_coy -meow_crazy -meow_cry -meow_dab -meow_dance -meow_dead -meow_devil-fire -meow_distrust -meow_drink -meow_dundundun -meow_dunno -meow_evil -meow_eyespin -meow_ez -meow_fat -meow_fingerguns -meow_flame_thrower -meow_flower -meow_giggle -meow_glare-zoom -meow_glowsticks -meow_googlytrash -meow_grin -meow_headphones -meow_heart -meow_hug -meow_hungry -meow_knife -meow_lurk -meow_mac -meow_melt -meow_mustache -meow_nix -meow_nyan -meow_party -meow_pizza -meow_pop -meow_pout -meow_pressure -meow_sign -meow_sleep -meow_spy -meow_surprised -meow_sweats -meow_tableflip -meow_this -meow_tired -meow_wobble -meow_wow -meowrainjoy -meowth -mild-surprise-owl -nerd-cat -octocat1 -octocat2 -octocat3 -owl-travel -owl_celebration -owl_christmas_stocking -owl_christmas_tree -owl_decorate -owl_ginger_cookie -owl_santa -owl_serious -owl_skating -owl_snow_throwing -owl_snowman -owl_toast -papa-owl -pinowl -pogsire -pundog -realowl -realowl_back -realowl_guruguru -realowl_side -sakura_owl -shrodingers-cat -steampunk-owl -stopowl -super_cat -surprise-owl -surprised-cat -take-my-money-owl -tonakaiowl -tycat -vacationing -valentine_gift_owl -vibingcat -villain-cat -walking-the-dog -winkowl diff --git a/src/emoji/emoji_list.txt b/src/emoji/emoji_list.txt new file mode 100644 index 0000000..9dcb383 --- /dev/null +++ b/src/emoji/emoji_list.txt @@ -0,0 +1,167 @@ +:audioowl: +:ayaya: +:blobcat_cookie: +:boat-cat: +:bouquet_owl: +:cat-confused: +:cat-cook: +:cat-on-the-laptop: +:cat-roll: +:cat-shook: +:cat-skype: +:cat_blush: +:cat_type: +:catcat: +:catdance: +:caterpie: +:catjam: +:catsurprise: +:cattyping: +:chef_owl: +:chocolate_owl: +:coffee-owl: +:confused-dog: +:confusedowl: +:cool-doge: +:coolowl: +:crazycat: +:creepyowl: +:cupid_owl: +:cupid_owl_02: +:dancing_dog: +:deadowl: +:dnowl: +:doge: +:dogjam: +:eikaiwaowl: +:eve-owl: +:eve-owl-evil: +:fakeowl: +:gatocat: +:grumpycat: +:gull_scream: +:heart-eyes-dog: +:hungry_cat: +:i_regret_nothing: +:investigate-owl: +:jakethedog1: +:jakethedog2: +:jenkinsowl: +:look-owl: +:loopyowl: +:love_letter_owl: +:loveowl: +:mama-owl: +:meow-popcorn: +:meow_alien: +:meow_angel: +:meow_attention: +:meow_beanbag: +:meow_beret-coffee: +:meow_birthday: +:meow_blep: +:meow_bongoderp: +:meow_bounce: +:meow_brokenheart: +:meow_burger: +:meow_buzz: +:meow_camera: +:meow_code: +:meow_coffee: +:meow_coffee2: +:meow_comfy: +:meow_comfy_coffee: +:meow_comfydonut: +:meow_comfysmirk: +:meow_coy: +:meow_crazy: +:meow_cry: +:meow_dab: +:meow_dance: +:meow_dead: +:meow_devil-fire: +:meow_distrust: +:meow_drink: +:meow_dundundun: +:meow_dunno: +:meow_evil: +:meow_eyespin: +:meow_ez: +:meow_fat: +:meow_fingerguns: +:meow_flame_thrower: +:meow_flower: +:meow_giggle: +:meow_glare-zoom: +:meow_glowsticks: +:meow_googlytrash: +:meow_grin: +:meow_headphones: +:meow_heart: +:meow_hug: +:meow_hungry: +:meow_knife: +:meow_lurk: +:meow_mac: +:meow_melt: +:meow_mustache: +:meow_nix: +:meow_nyan: +:meow_party: +:meow_pizza: +:meow_pop: +:meow_pout: +:meow_pressure: +:meow_sign: +:meow_sleep: +:meow_spy: +:meow_surprised: +:meow_sweats: +:meow_tableflip: +:meow_this: +:meow_tired: +:meow_wobble: +:meow_wow: +:meowrainjoy: +:meowth: +:mild-surprise-owl: +:nerd-cat: +:octocat1: +:octocat2: +:octocat3: +:owl-travel: +:owl_celebration: +:owl_christmas_stocking: +:owl_christmas_tree: +:owl_decorate: +:owl_ginger_cookie: +:owl_santa: +:owl_serious: +:owl_skating: +:owl_snow_throwing: +:owl_snowman: +:owl_toast: +:papa-owl: +:pinowl: +:pogsire: +:pundog: +:realowl: +:realowl_back: +:realowl_guruguru: +:realowl_side: +:sakura_owl: +:shrodingers-cat: +:steampunk-owl: +:stopowl: +:super_cat: +:surprise-owl: +:surprised-cat: +:take-my-money-owl: +:tonakaiowl: +:tycat: +:vacationing: +:valentine_gift_owl: +:vibingcat: +:villain-cat: +:walking-the-dog: +:winkowl: diff --git a/src/emoji/mod.rs b/src/emoji/mod.rs new file mode 100644 index 0000000..426653b --- /dev/null +++ b/src/emoji/mod.rs @@ -0,0 +1,8 @@ +use rand::thread_rng; +use rand::seq::SliceRandom; + +pub fn pick(count: usize) -> Vec { + let mut emoji: Vec<&str> = include_str!("./emoji_list.txt").split("\n").collect(); + emoji.shuffle(&mut thread_rng()); + return emoji.iter().take(count).map(|s| s.to_string()).collect(); +} diff --git a/src/main.rs b/src/main.rs index 47b5c7d..aa6c3a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ mod things; mod reporter; +mod emoji; use reporter::{MarkdownReporter, Reporter}; @@ -21,7 +22,7 @@ enum Modes { impl Modes { fn format_tasks(&self, task_report: &str) -> String { match self { - Modes::Morning => format!("Starting\n\n{}", task_report), + Modes::Morning => format!("{}\n\n{}", emoji::pick(3).join(" "), task_report), Modes::Signoff => format!("Stopping now\n\n{}", task_report), Modes::Cycle => format!("*Cycle Report*\n\n{}", task_report), }