Add random emoji choice to the morning message

This commit is contained in:
Campbell Alden 2023-07-21 20:02:38 +09:00
parent 4eea2ac43b
commit c9dd247175
6 changed files with 233 additions and 169 deletions

56
Cargo.lock generated
View file

@ -179,6 +179,7 @@ dependencies = [
"chrono", "chrono",
"clap", "clap",
"osascript", "osascript",
"rand",
"serde", "serde",
"serde_json", "serde_json",
] ]
@ -204,6 +205,17 @@ dependencies = [
"libc", "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]] [[package]]
name = "heck" name = "heck"
version = "0.4.1" version = "0.4.1"
@ -309,6 +321,12 @@ dependencies = [
"serde_json", "serde_json",
] ]
[[package]]
name = "ppv-lite86"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.66" version = "1.0.66"
@ -327,6 +345,36 @@ dependencies = [
"proc-macro2", "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]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.4" version = "0.38.4"
@ -401,7 +449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [ dependencies = [
"libc", "libc",
"wasi", "wasi 0.10.0+wasi-snapshot-preview1",
"winapi", "winapi",
] ]
@ -423,6 +471,12 @@ version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 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]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.87" version = "0.2.87"

View file

@ -10,5 +10,6 @@ anyhow = "1.0.72"
chrono = { version = "0.4.26", features = ["serde"] } chrono = { version = "0.4.26", features = ["serde"] }
clap = { version = "4.3.17", features = ["derive"] } clap = { version = "4.3.17", features = ["derive"] }
osascript = "0.3.0" osascript = "0.3.0"
rand = "0.8.5"
serde = { version = "1.0.173", features = ["derive"] } serde = { version = "1.0.173", features = ["derive"] }
serde_json = "1.0.103" serde_json = "1.0.103"

View file

@ -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

167
src/emoji/emoji_list.txt Normal file
View file

@ -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:

8
src/emoji/mod.rs Normal file
View file

@ -0,0 +1,8 @@
use rand::thread_rng;
use rand::seq::SliceRandom;
pub fn pick(count: usize) -> Vec<String> {
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();
}

View file

@ -1,5 +1,6 @@
mod things; mod things;
mod reporter; mod reporter;
mod emoji;
use reporter::{MarkdownReporter, Reporter}; use reporter::{MarkdownReporter, Reporter};
@ -21,7 +22,7 @@ enum Modes {
impl Modes { impl Modes {
fn format_tasks(&self, task_report: &str) -> String { fn format_tasks(&self, task_report: &str) -> String {
match self { 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::Signoff => format!("Stopping now\n\n{}", task_report),
Modes::Cycle => format!("*Cycle Report*\n\n{}", task_report), Modes::Cycle => format!("*Cycle Report*\n\n{}", task_report),
} }