From 7929eeed7d55c6846bad30cdfa0171c44024fe63 Mon Sep 17 00:00:00 2001 From: Hamcha Date: Mon, 24 Jul 2023 14:37:30 +0200 Subject: [PATCH] base project --- .gitignore | 2 + Cargo.lock | 1966 +++++++++++++++++++++++++++++++++++++ Cargo.toml | 20 + src/commands/metafora.rs | 118 +++ src/commands/mod.rs | 2 + src/commands/proverbio.rs | 1155 ++++++++++++++++++++++ src/main.rs | 42 + 7 files changed, 3305 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/commands/metafora.rs create mode 100644 src/commands/mod.rs create mode 100644 src/commands/proverbio.rs create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0b745e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +.env \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..2ab2462 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1966 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "anyhow" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" + +[[package]] +name = "aquamarine" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a941c39708478e8eea39243b5983f1c42d2717b3620ee91f4a52115fd02ac43f" +dependencies = [ + "itertools", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "async-trait" +version = "0.1.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +dependencies = [ + "android-tzdata", + "num-traits", +] + +[[package]] +name = "clessy-rs" +version = "0.1.0" +dependencies = [ + "anyhow", + "dotenvy", + "fastrand 2.0.0", + "teloxide", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "dptree" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d81175dab5ec79c30e0576df2ed2c244e1721720c302000bb321b107e82e265c" +dependencies = [ + "futures", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-macro" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" + +[[package]] +name = "h2" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys", +] + +[[package]] +name = "ipnet" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" + +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "log" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "never" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96aba5aa877601bb3f6dd6a63a969e1f82e60646e81e71b14496995e9853c91" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "openssl" +version = "0.10.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pin-project" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +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 = "rc-box" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0690759eabf094030c2cdabc25ade1395bac02210d920d655053c1d49583fd8" +dependencies = [ + "erasable", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "reqwest" +version = "0.11.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustls" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" + +[[package]] +name = "serde" +version = "1.0.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.171" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "serde_json" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc4422959dd87a76cb117c191dcbffc20467f06c9100b76721dab370f24d3a" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "takecell" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20f34339676cdcab560c9a82300c4c2581f68b9369aedf0fae86f2ff9565ff3e" + +[[package]] +name = "teloxide" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c63345cf32a8850ebddcdd769dc2d5193d5e231262d5dada264b79da01a664da" +dependencies = [ + "aquamarine", + "axum", + "bytes", + "derive_more", + "dptree", + "futures", + "log", + "mime", + "pin-project", + "rand", + "serde", + "serde_json", + "serde_with_macros", + "teloxide-core", + "teloxide-macros", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tower-http", + "url", +] + +[[package]] +name = "teloxide-core" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303db260110c238e3af77bb9dff18bf7a5b5196f783059b0852aab75f91d5a16" +dependencies = [ + "bitflags", + "bytes", + "chrono", + "derive_more", + "either", + "futures", + "log", + "mime", + "never", + "once_cell", + "pin-project", + "rc-box", + "reqwest", + "serde", + "serde_json", + "serde_with_macros", + "take_mut", + "takecell", + "thiserror", + "tokio", + "tokio-util", + "url", + "uuid", + "vecrem", +] + +[[package]] +name = "teloxide-macros" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1d653b093dba5e44cada57a516f572167df37b8a619443e59c8c517bb6d804" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tempfile" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +dependencies = [ + "autocfg", + "cfg-if", + "fastrand 1.9.0", + "redox_syscall", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +dependencies = [ + "autocfg", + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[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.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "uuid" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vecrem" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4808a28789238714a29163e4cb8031f0f050dd670f7a0cc74b6d80f3ce343fa" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.26", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "wasm-streams" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..25df3ca --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "clessy-rs" +version = "0.1.0" +edition = "2021" + +[dependencies] +teloxide = { version = "0.12", features = [ + "macros", + "rustls", + "throttle", + "cache-me", + "webhooks", + "webhooks-axum", +] } +tracing = "0.1" +tracing-subscriber = "0.3" +tokio = { version = "1.28", features = ["rt-multi-thread"] } +dotenvy = "0.15" +anyhow = "1" +fastrand = "2" diff --git a/src/commands/metafora.rs b/src/commands/metafora.rs new file mode 100644 index 0000000..b4101b6 --- /dev/null +++ b/src/commands/metafora.rs @@ -0,0 +1,118 @@ +pub fn generate() -> String { + let n = fastrand::usize(..META_ACTIONS.len()); + let m = fastrand::usize(..META_OBJECTS.len()); + format!("{} {}", META_ACTIONS[n], META_OBJECTS[m]) +} + +const META_ACTIONS: [&str; 51] = [ + "Puppami", + "Degustami", + "Lucidami", + "Manipolami", + "Disidratami", + "Irritami", + "Martorizzami", + "Lustrami", + "Osannami", + "Sorseggiami", + "Assaporami", + "Apostrofami", + "Spremimi", + "Dimenami", + "Agitami", + "Stimolami", + "Suonami", + "Strimpellami", + "Stuzzicami", + "Spintonami", + "Sguinzagliami", + "Modellami", + "Sgrullami", + "Cavalcami", + "Perquotimi", + "Misurami", + "Sventolami", + "Induriscimi", + "Accordami", + "Debuggami", + "Accarezzami", + "Revisionami", + "Imbottigliami", + "Badami", + "Scuotimi", + "Terremotami", + "Incentivami", + "Sollecitami", + "Allenami", + "Censiscimi", + "Decollami", + "Smagnetizzami", + "Nobilitami", + "Elevami", + "Accrescimi", + "Impostami", + "Ereggimi", + "Fischiettami", + "Scaldami", + "Gonfiami", + "Lubrificami", +]; + +const META_OBJECTS: [&str; 56] = [ + "il birillo", + "il bastone", + "l'ombrello", + "il malloppo", + "il manico", + "il manganello", + "il ferro", + "la mazza", + "l'archibugio", + "il timone", + "l'arpione", + "il flauto", + "la reliquia", + "il fioretto", + "lo scettro", + "il campanile", + "la proboscide", + "il pino", + "il maritozzo", + "il perno", + "il tubo da 100", + "la verga", + "l'idrante", + "il pendolo", + "la torre di Pisa", + "la lancia", + "il cilindro", + "il lampione", + "il joystick", + "il Wiimote", + "il PSMove", + "l'albero maestro", + "il trenino", + "la sciabola", + "il weedle", + "il serpente", + "il missile", + "la limousine", + "il selfie-stick", + "il candelotto", + "la falce", + "la biscia", + "la banana", + "la pannocchia", + "il papavero", + "la carota", + "la fava", + "la salsiccia", + "il cono", + "l'hard drive", + "la manopola", + "la manovella", + "il pennello", + "l'asta", + "il cacciavite", + "lo spazzolino", +]; diff --git a/src/commands/mod.rs b/src/commands/mod.rs new file mode 100644 index 0000000..6c6d299 --- /dev/null +++ b/src/commands/mod.rs @@ -0,0 +1,2 @@ +pub mod metafora; +pub mod proverbio; diff --git a/src/commands/proverbio.rs b/src/commands/proverbio.rs new file mode 100644 index 0000000..023bcd3 --- /dev/null +++ b/src/commands/proverbio.rs @@ -0,0 +1,1155 @@ +pub fn generate() -> String { + let n = fastrand::usize(..PROVERBI_INIT.len()); + let m = fastrand::usize(..PROVERBI_ENDS.len()); + format!("{}{}", PROVERBI_INIT[n], PROVERBI_ENDS[m]) +} + +const PROVERBI_INIT: [&str; 568] = [ + "A brigante", + "A buon cavalier", + "A buon cavallo", + "A buon intenditor", + "A caldo autunno", + "A cane scottato", + "A cane vecchio", + "A carnevale ogni scherzo vale,", + "A caval che corre,", + "A caval donato", + "A cavalier novizio,", + "A cavallo d'altri", + "A cavallo giovane,", + "A caval nuovo", + "A chi batte forte,", + "A chi Dio vuole aiutare,", + "A chi fortuna zufola,", + "A chi ha abbastanza,", + "A chi non può imparare l'abbicì,", + "A chi non vuol credere,", + "A chi non vuol far fatiche,", + "A chi tanto", + "A chi troppo", + "A chi ti porge un dito", + "A ciascun giorno", + "A donna di gran bellezza,", + "A duro ceppo,", + "A goccia a goccia", + "A gran salita,", + "A granello a granello", + "A grassa cucina", + "A lavar la testa all'asino", + "A lume spento", + "A mali estremi", + "A muro basso", + "A nemico che fugge", + "A ogni uccello", + "A padre avaro", + "A pagare e a morire", + "A paragone del molto che ignoriamo,", + "A pazzo relatore,", + "A pensar male", + "A Roma ci vogliono tre cose: pane,", + "A rubar poco si va in galera,", + "A scherzar con la fiamma,", + "A tal fortezza,", + "A Venezia chi vi nasce mal si pasce,", + "Abate cupido,", + "Acqua passata,", + "Ad albero vecchio ed a muro cadente,", + "Ai pazzi ed ai fanciulli,", + "Al buio,", + "Al confessore,", + "Al genio non si danno le ali,", + "All'umiltà felicità,", + "Alle barbe dei pazzi,", + "Altri tempi,", + "Amico beneficato,", + "Amicizia che cessa,", + "Amico beneficato,", + "Amico di ventura,", + "Amor che nasce di malattia,", + "Amor nuovo va e viene,", + "Amore di parentato,", + "Amore di fratello,", + "Amore onorato,", + "Approfitta degli errori degli altri,", + "Ara nel mare e nella rena semina,", + "Avuta la grazia,", + "Bella in vista,", + "Bell'ostessa,", + "Ben si caccia il diavolo,", + "Bene per male è carità,", + "Bene educato,", + "Bisogna fare la festa quando cade,", + "Bologna la grassa,", + "Bue vecchio,", + "Buona greppia,", + "Buona la forza,", + "Cader non può,", + "Cambiare e migliorare sono due cose; molto si cambia nel mondo,", + "Cane ringhioso e non forzoso,", + "Capelli lunghi,", + "Casa fatta e vigna posta,", + "Cavallo vecchio,", + "Cavolo riscaldato,", + "Cento teste,", + "Cessato il guadagno,", + "Chi a tutti facilmente crede,", + "Chi ad altri inganni tesse,", + "Chi ama me,", + "Chi ara terra bagnata,", + "Chi asino nasce,", + "Chi balla senza suono,", + "Chi ben coltiva il moro,", + "Chi bene semina,", + "Chi beve vin,", + "Chi cade in povertà,", + "Chi cava e non mette,", + "Chi cerca,", + "Chi coglie acerbo il senno,", + "Chi contro Dio getta la pietra,", + "Chi d'estate secca serpi,", + "Chi d'estate vuole stare al fresco,", + "Chi da gallina nasce,", + "Chi da savio operare vuole,", + "Chi dal lotto spera soccorso,", + "Chi dà per ricevere,", + "Chi di una donna brutta s'innamora,", + "Chi di coltel ferisce,", + "Chi dice donna dice guai,", + "Chi dice male,", + "Chi domanda ciò che non dovrebbe,", + "Chi dopo la polenta beve acqua,", + "Chi è generoso con la bocca,", + "Chi è morso dalla serpe,", + "Chi è stato trovato una volta in frode,", + "Chi è tosato da un usuraio,", + "Chi è uso all'impiccare,", + "Chi fa del bene agli ingrati,", + "Chi fa l'altrui mestiere,", + "Chi fosse indovino,", + "Chi fugge il giudizio,", + "Chi fugge un matto,", + "Chi getta un seme lo deve coltivare,", + "Chi gioca al lotto,", + "Chi ha avuto il beneficio,", + "Chi ricorda un beneficio,", + "Chi ha da far con un incostante,", + "Chi ha fatto ingiuria ad altri,", + "Chi ha imbarcato il diavolo,", + "Chi ha ingegno,", + "Chi ha per letto la terra,", + "Chi ha un mestiere in mano,", + "Chi il vasto mare intrepido ha solcato,", + "Chi male vive,", + "Chi maltratta le bestie,", + "Chi mangia sempre pan bianco,", + "Chi molto parla,", + "Chi nasce è bello,", + "Chi non ama le bestie,", + "Chi non apre la bocca,", + "Chi non crede di esser matto,", + "Chi non dà a Cristo,", + "Chi non fu buon soldato,", + "Chi non ha fede,", + "Chi non naufragò in mare,", + "Chi non può bastonare il cavallo,", + "Chi non risica,", + "Chi non sa ubbidire,", + "Chi non segue il consiglio dei genitori,", + "Chi non si innamora da giovane,", + "Chi non trovò ombra nell'estate,", + "Chi non vuol essere consigliato,", + "Chi pecora si fa,", + "Chi per grazia prega,", + "Chi perdona senza dimenticare,", + "Chi pesca con l'amo d'oro,", + "Chi piglia leone in assenza,", + "Chi porta fiori,", + "Chi predica al deserto,", + "Chi prende l'anguilla per la coda,", + "Chi rende male per bene,", + "Chi rimane in umile stato,", + "Chi Roma non vede,", + "Chi ruba poco,", + "Chi si diletta di frodare gli altri,", + "Chi si fida nel lotto,", + "Chi si fida di greco,", + "Chi si guarda dal calcio della mosca,", + "Chi si immagina di essere più di quello che è,", + "Chi si prende d'amore,", + "Chi si umilia sarà esaltato,", + "Chi siede in basso,", + "Chi tace davanti alla forza,", + "Chi ti vuol male,", + "Chi va all'acqua d'agosto,", + "Chi va all'osto,", + "Chi va con lo zoppo,", + "Chi ha più fretta,", + "Chi pesca e ha fretta,", + "Chi vanta se stesso e abbassa gli altri,", + "Chi vive sei giorni nell'oasi,", + "Chi vuol impetrare,", + "Chi vuol pane,", + "Chi vuol presto impoverire,", + "Chi vuol provar le pene dell'inferno,", + "Chi vuole arricchire in un anno,", + "Chi vuole assai,", + "Chi vuole essere amato,", + "Chi vuole essere sicuro della sua farina,", + "Chiara notte di capodanno,", + "Ciò che è male per uno,", + "Come farai,", + "Come i piedi portano il corpo,", + "Comincia,", + "Compar di Puglia,", + "Con l'inchiostro,", + "Con la pietra si prova l'oro,", + "Contadini,", + "Cortesia schietta,", + "Cucina grassa,", + "Da falsa lingua,", + "Da Lodi,", + "Dai giudici siciliani,", + "Danaro e santità,", + "Detto senza fatto,", + "Di chi è l'asino,", + "Di quello che non ti interessa,", + "Dicono che è mercante anche chi perde,", + "Dimmi con chi vai,", + "Disse la volpe ai figli: \"Quando a tordi,", + "Domandare è lecito,", + "Donna al volante,", + "Donna adorna,", + "Donna barbuta,", + "Donna bianca,", + "Donna che canti dolcemente in scena,", + "Donna che dona,", + "Donna che sa il latino è rara cosa,", + "Donna e fuoco,", + "Donna io conosco,", + "Donna pelosa,", + "Donna pregata nega,", + "Donna prudente,", + "Donne e sardine,", + "Dopo desinare non camminare; dopo cena,", + "Dopo la grazia di Dio,", + "Dove c'è l'amore,", + "Dove è castigo è disciplina,", + "Dove entra la fortuna,", + "Dove la fedeltà mette le radici,", + "Dove non c'è amore,", + "Dove non si crede né all'inferno né al paradiso,", + "Dove non vi è educazione,", + "Dove non vi sono capelli,", + "Dove regna Bacco e Amore,", + "Dove sono i pulcini,", + "Due cani che un solo osso hanno,", + "È lieve astuzia ingannar gelosia,", + "È meglio correggere i propri difetti,", + "È meglio esser digiuno fuori,", + "È meglio essere uccel di bosco,", + "È meglio essere umile a cavallo,", + "È meglio gelare nella nuda cameretta della verità,", + "È meglio mangiarsi l'eredità,", + "È meglio sentir cantare l'usignolo,", + "È meglio un esercito di cervi sotto il comando di un leone,", + "È più facile biasimare,", + "È più facile lagnarsi,", + "È più facile trovar dolce l'assenzio,", + "Ebrei e rigattieri,", + "Errare è umano,", + "Esser dotto poco vale,", + "Fa quel che il prete dice,", + "Fa quello che fanno gli altri,", + "Faccia bella,", + "Facile è criticare,", + "Fare debiti non è vergogna,", + "Fate del bene al villano,", + "Febbraio,", + "Femmine e galline,", + "Fidarsi è bene,", + "Fidati dell'arte,", + "Fortezza che parlamenta,", + "Fortuna cieca,", + "Fortunato al gioco,", + "Fra sepolto tesoro e occulta scienza,", + "Gallo senza cresta è un cappone,", + "Gattini sventati,", + "Gatto e donna in casa,", + "Gatto scottato dall'acqua calda,", + "Gli abiti sono freddi,", + "Gli eredi dell'avaro sono onnipotenti,", + "Gli uomini onesti non temono né la luce,", + "Gobba a ponente luna crescente,", + "Gotta inossota,", + "Gran giustizia,", + "Grande amore,", + "Guardati da tre cose: da cavallo focoso,", + "Guardati dai tumulti,", + "Guardati dal diffamare,", + "Guardati dall'ipocrisia,", + "Ha cento volte un uomo flemma e giudizio,", + "Ha la giustizia in mano bilancia e spada,", + "Ha un coraggio da leone,", + "Ho veduto assai volte un piccol male non rispettato,", + "I cattivi esempi si imitano facilmente,", + "I denari servono al povero di beneficio,", + "I frati non s'inchinano all'abate,", + "I genitori amano i figli,", + "\"I miei datteri sono più dolci\",", + "I parenti sono come le scarpe: più sono stretti,", + "I poeti nascono,", + "Il cuor magnanimo si piglia con poco amore,", + "Il dare è onore,", + "Il delitto non si deve tollerare,", + "Il denaro può molto,", + "Il diavolo ben si lascia pigliare per la coda,", + "Il domandare è senno,", + "Il ferro è duro,", + "Il figlio al padre s'assomiglia,", + "Il fiorentino mangia sì poco e sì pulito,", + "Il fuoco che non mi scalda,", + "Il fuoco che non mi brucia,", + "Il gatto ama i pesci,", + "Il gatto brontola sempre,", + "Il gatto che si è bruciato,", + "Il gatto lecca oggi,", + "Il gatto non ti accarezza,", + "Il letto si chiama rosa,", + "Il merlo ingrassa in gabbia,", + "Il poeta ben trova le palme,", + "Il politico bacia con la bocca,", + "Il troppo tirare,", + "Il vino è forte ma il sonno lo vince,", + "Impara a vivere lo sciocco a sue spese,", + "In Sardegna non vi son serpenti,", + "In terra di ciechi,", + "In terra di ladri,", + "Ingegno e capelli,", + "Inventare è poco,", + "L'abete cresce in altezza,", + "L'acqua e il fuoco sono buoni servitori,", + "L'allodola vola in alto,", + "L'amore è cieco,", + "L'anno produce il raccolto,", + "L'asino non conosce la coda,", + "L'avaro non vive,", + "L'avversità che fiacca i cuori deboli,", + "L'erba che non voglio,", + "L'eredità paterna ai paterni,", + "L'estate per chi lavora,", + "L'estate è una schiava,", + "L'inchiostro è nero,", + "L'ingegno viene con gli anni,", + "L'invidia è una bestia che rode le proprie gambe,", + "L'orgoglio è stoltezza,", + "L'uguaglianza e misurar tutti con la stessa spanna,", + "L'umiliarsi è da saggio,", + "L'umiltà è una virtù che adorna tanto la vecchiaia,", + "L'usura arricchisce,", + "La carrucola non frulla,", + "La donna bisogna praticarla un giorno,", + "La donna per piccola che sia,", + "La donna troppo in vista,", + "La fedeltà non è mai rimeritata abbastanza,", + "La gatta,", + "La gatta vorrebbe mangiar pesci,", + "La gioventù fugge,", + "La luna è bugiarda: quando fa la C diminuisce,", + "La pittura è una poesia tacita,", + "La prima eredità al primo figlio,", + "La rana è usa ai pantani,", + "La rana non morde,", + "La scimmia è sempre scimmia,", + "La speranza ingrandisce,", + "La vipera morta non morde seno,", + "Lamentarsi,", + "Le bellezze durano fino alle porte,", + "Le colombe che rimangono in colombaia,", + "Le donne hanno quattro malattie all'anno,", + "Le montagne stanno ferme,", + "Le piante che fruttano troppo presto,", + "Le rose cascano,", + "Lo sbadiglio non vuol mentire: o che ha sonno o che vorrebbe dormire,", + "Lo smargiasso ciancia in guerra,", + "Loda il pazzo e fallo saltare,", + "Lontano dagli occhi,", + "Lontan dagli occhi,", + "Lunga lingua,", + "Luglio dal gran caldo,", + "Maggio ortolano,", + "Maggiore il santo,", + "Male non fare,", + "Marzo molle,", + "Meglio andare a letto senza cena,", + "Meglio aperto rimprovero,", + "Meglio dietro agli uccelli,", + "Meglio essere ben educato,", + "Meglio fare la serva in casa propria,", + "Meglio fave in libertà,", + "Meglio pane con amore,", + "Meglio un fiorino guadagnato,", + "Molti hanno buone carte in mano,", + "Molti sfuggono alla pena,", + "Molti si immaginano di avere il pulcino,", + "Molti sono i verseggiatori,", + "Molto denaro,", + "Morta la serpe,", + "Mulo buon mulo,", + "Muove la coda il cane non per te,", + "Natale con i tuoi,", + "Negli ordini pari,", + "Nel monte di Brianza,", + "Nel regno di Dio,", + "Nell'estate si deve pensare all'inverno,", + "Nell'inverno il pazzo sogna rose,", + "Nella felicità ragione,", + "Nella gotta,", + "Nessuna nuova,", + "Non ci rimane nessuna vigna da vendemmiare,", + "Non credere a donna,", + "Non è arte il giocare,", + "Non è mai gran gagliardia,", + "Non facendo niente,", + "Non far mai bene,", + "Non fare il male ch'è peccato,", + "Non mi morse mai scorpione,", + "Non ogni lettera va alla posta,", + "Non si sta mai tanto bene che non si possa star meglio,", + "Non sono in Arno tanti pesciolini,", + "Non ti fidar d'un tratto,", + "Non ti vantar farfalla,", + "Non v'è mai tanta pace in convento,", + "Non vi è lino senza resca,", + "Nutri la serpe in seno,", + "O taci,", + "Occhio non vede,", + "Occhio per occhio,", + "Ogni bella scarpa diventa ciabatta,", + "Ogni bene infine svanisce,", + "Ogni disuguaglianza,", + "Ognuno che ha un gran coltello,", + "Orto,", + "Pancia affamata,", + "Pane finché dura,", + "Patti chiari,", + "Pazzo per natura,", + "Peccati vecchi,", + "Per amore anche una donna onesta,", + "Per chi vuol esser libero,", + "Per essere amabili,", + "Per imparare qualche cosa,", + "Per l'oro,", + "Per quanto alletti la bellezza di un fiore,", + "Perdona a tutti,", + "Perdonare è da uomini,", + "Pesce che va all'amo,", + "Pianta a cui spesso si muta luogo,", + "Piglia il bene quando viene,", + "Pisa,", + "Più alta la condizione,", + "Più briccone,", + "Più il fiume è profondo,", + "Più si chiacchiera,", + "Poeta si nasce,", + "Poeti,", + "Polenta e latte bollito,", + "Prima di domandare,", + "Prima lusingare e poi graffiare,", + "Pugliesi,", + "Puoi ben drizzare il tenero virgulto,", + "Qualche intervallo il pazzo ha di saviezza,", + "Quale uccello,", + "Quand'anche si trapiantassero in paradiso,", + "Quando c'è l'esercito,", + "Quando canta la rana,", + "Quando è finito il raccolto dei datteri,", + "Quando gli eretici si accapigliano,", + "Quando il colombo ha il gozzo pieno,", + "Quando il gatto si lecca e si sfrega le orecchie con la zampina,", + "Quando il gozzo è pieno,", + "Quando il grano ricasca,", + "Quando il lardo è divorato,", + "Quando il mandorlo non frutta,", + "Quando il sole splende,", + "Quando il tempo è chiaro in autunno,", + "Quando in autunno sono grassi i tassi e le lepri,", + "Quando l'angelo diventa diavolo,", + "Quando l'avaro muore,", + "Quando la barba fa bianchino,", + "Quando la fame entra dalla porta,", + "Quando la grazia di Dio è nel cuore,", + "Quando piove d'agosto,", + "Quando non dice niente,", + "Quando non sai,", + "Quando sono fidanzate hanno sette mani e una lingua,", + "Quando una cosa è accaduta,", + "Quando viene la forza,", + "Quanto più è alto il monte,", + "Quanto più la rana si gonfia,", + "Quanto più se n'ha,", + "Quel che è disposto in cielo,", + "Quel che non può l'ìngegno,", + "Quel che si fa a fin di bene,", + "Quel che si fa all'oscuro,", + "Quel che supera il mio intelletto,", + "Quella bellezza l'uomo saggio apprezza che dura sempre,", + "Quelli che hanno meno ingegno,", + "Quello che è accaduto ieri,", + "Quello che è passato,", + "Quello che ha da essere,", + "Quello che non avviene oggi,", + "Quello che non può l'intelletto,", + "Quello che puoi fare oggi,", + "Quello che si dice all'eco nel bosco,", + "Quello che si impara in gioventù,", + "Quello è mio zio,", + "Rane,", + "Ricco e grande fortuna potrà farti,", + "Roba d'altri,", + "Roma a chi nulla in cent'anni,", + "Rosso di mattina,", + "Rosso di sera,", + "Rosso e giallaccio pare bello ad ogni faccia,", + "Rovo,", + "San Pietro abbracciato,", + "Scherzando intorno al lume che t'invita,", + "Scherzo di mano,", + "Gioco di mano,", + "Scusa non richiesta,", + "Se ari male,", + "Se gioventù sapesse,", + "Se i gatti sapessero volare,", + "Se il giovane sapesse di quanto ha bisogno la vecchiaia,", + "Se il primo bottone hai fatto essere secondo,", + "Se il virtuoso è povero,", + "Se la pazzia fosse dolore,", + "Se le lattughe lasci in guardia alle oche,", + "Se nessuno sa quel che sai,", + "Se occhio non mira,", + "Se piovesse oro,", + "Se un fratello compie un omicidio,", + "Se vuoi che t'ami,", + "Se vuoi portare l'uomo a incretinire,", + "Seren d'inverno e nuvolo d'estate,", + "Settembre,", + "Si bacia il fanciullo a causa della madre,", + "Si dice il peccato,", + "Si mantiene un esercito per mille giorni,", + "Sin che si vive,", + "Sotto la neve pane,", + "Spesso a chiaro mattino,", + "Spesso chi commette un'ingiustizia,", + "Stretta la foglia,", + "Larga la foglia,", + "Studia non per sapere di più,", + "Studio in gioventù,", + "Tale padre,", + "Tanti idoli,", + "Tempo chiaro e dolce a capodanno,", + "Terra assai,", + "Terra bianca,", + "Tinca in camicia,", + "Tra l'incudine e il martello,", + "Tre cose cacciano l'uomo di casa: fumo,", + "Triste e guai,", + "Triste quell'estate,", + "Tromba di culo,", + "Troppa manna,", + "Tu scherzi col tuo gatto e l'accarezzi,", + "Tutti i guai son guai,", + "Ucci ucci,", + "Un cuor magnanimo vuol sempre il bene,", + "Una Fenice fra le donne è quella,", + "Uno semina,", + "Uomo a cavallo,", + "Uomo da nessuno invidiato,", + "Uomo zelante,", + "Vecchiaia d'aquila,", + "Venezia bella,", + "Venezia la bella,", + "Vi sono dei matti savi,", + "Vincere un ambo al lotto è un malefizio,", + "Vivi", + "Vizio di natura,", + "Voglio piuttosto un asino che mi porti,", +]; + +const PROVERBI_ENDS: [&str; 576] = [ + "brigante e mezzo.", + "non manca lancia.", + "non manca sella.", + "non occorre dir trotta.", + "poche parole.", + "segue lungo inverno.", + "l'acqua fredda par calda.", + "non dargli cuccia.", + "ma che sia uno scherzo che sa di sale.", + "non abbisognano speroni.", + "non si guarda in bocca.", + "cavallo senza vizio.", + "non si dice zoppo.", + " cavalier vecchio.", + "cavaliere vecchio.", + " si apron le porte.", + " niente gli può nuocere.", + " ha un bel ballare.", + " non manca nulla.", + " non si può dare in mano la Bibbia.", + " poco valgono mille testimoni.", + " il terreno produce ortiche.", + "e a chi niente.", + "e a chi niente.", + "non prendere la mano.", + "basta la sua pena.", + " dalla poca larghezza.", + " dura accetta.", + "si scava la pietra.", + " gran discesa.", + "si riempie lo staio e si fa il monte.", + "povertà vicina.", + "si perde il ranno e il sapone.", + "è pari ogni bellezza.", + "estremi rimedi.", + "ognuno ci si appoggia.", + "ponti d'oro.", + "suo nido è bello.", + "figliuol prodigo.", + "c'è sempre tempo.", + " è meno di niente quanto noi sappiamo.", + " savio ascoltatore.", + " s'indovina sempre.", + "ci s'indovina.", + " panni e pazienza.", + " a rubar tanto si fa carriera.", + " ci si scotta.", + " tal trincea.", + " chi ci viene ci sta bene.", + " per un'offerta ne perde cento.", + " non macina più.", + " non manca mai edera.", + " non si deve prometter nulla.", + " le donne sono tutte uguali.", + " al medico e all'avvocato non si tiene il ver celato.", + " ma le si tagliano.", + " all'orgoglio calamità.", + " il barbiere impara a radere.", + " altri costumi.", + " nemico dichiarato.", + " non fu mai vera.", + " nemico dichiarato.", + " molto briga e poco dura.", + " quando si guarisce passa via.", + " amor vecchio si mantiene.", + " amore interessato.", + " amore di coltello.", + " né vergogna né peccato.", + " piuttosto che censurarli.", + " chi crede alle parole della femmina.", + " gabbato lo santo.", + " dentro è trista.", + " conti traditori.", + " brutti conti.", + " conto caro.", + " ma Satana ritorna.", + " male per bene è crudeltà.", + " non mentì mai.", + " e prendere il tempo come viene.", + " ma Padova la passa.", + " solco diritto.", + " buona bestia.", + " migliore l'ingegno.", + " chi ha la virtù per guida.", + " ma poco si migliora.", + " guai alla sua pelle!", + " cervello corto.", + " non si sa quello che costa.", + " tardi muta ambiatura", + " frate sfratato e serva ritornata non furon mai buoni.", + " cento cappelli.", + " cessata l'amicizia.", + " ingannato si vede.", + " poco bene per sé ordisce.", + " ama il mio cane.", + " per tre anni l'ha dissipata.", + " asino muore.", + " come asino si ritrova.", + " coltiva nel suo campo un gran tesoro.", + " bene raccoglie.", + " campa cent'anni.", + " perde ogni amico.", + " le possessioni si disfanno.", + " trova.", + " maturo ha sempre d'ignoranza il frutto.", + " in capo gli torna.", + " nell'inverno mangia anguille.", + " ci starà anche d'inverno.", + " convien che razzoli.", + " pensi al fine.", + " mette il pelo come un orso.", + " non dà nulla.", + " lieto con essa invecchia e l'ama ancora.", + " di coltel perisce.", + " chi dice uomo peggio che mai.", + " l'indovina quasi sempre.", + " ode quel che non vorrebbe.", + " alza la gamba e la polenta scappa.", + " è avaro col sacco.", + " teme la lucertola.", + " si presume vi sia sempre.", + " non mette più pelo.", + " non teme la forca.", + " Dio lo considera per male.", + " fa la zuppa nel paniere.", + " sarebbe ricco.", + " si condanna.", + " ha fatto buona giornata.", + " se vuol vederlo con il tempo germogliare.", + " è un gran merlotto.", + " in rovina va di botto.", + " in rovina va di trotto.", + " se lo dimentica.", + " lo rinfaccia.", + " tien l'anguilla per la coda.", + " da altri convien che la sopporti.", + " deve stare in sua compagnia.", + " lo mostri.", + " deve coprirsi col cielo.", + " dappertutto trova pane.", + " talvolta in piccol rio muore annegato.", + " male muore.", + " non la fa mai bene.", + " spesso desidera il nero.", + " spesso falla.", + " chi si sposa è buono e chi muore è santo.", + " non ama i cristiani.", + " non le piove dentro.", + " è matto davvero.", + " dà al fisco.", + " non sarà buon capitano.", + " non ne può dare.", + " può naufragare in porto.", + " bastona la sella.", + " non rosica.", + " non sa comandare.", + " tardi se ne pente.", + " si innamora da vecchio.", + " la troverà nell'inverno.", + " non può essere aiutato.", + " il lupo se la mangia.", + " non ha mai bene.", + " non perdona che metà.", + " qualcosa piglia sempre.", + " teme la talpa in presenza.", + " porta amore.", + " perde il sermone.", + " può dire di non tenere nulla.", + " non vedrà mai partire da casa sua la sciagura.", + " non ha da temer caduta.", + " nulla crede.", + " ruba assai.", + " non si deve lamentare se gli altri lo ingannano.", + " non mangia di cotto.", + " non ha il cervel seco.", + " gli tocca quello del cavallo.", + " si guardi nello specchio.", + " si lascia di rabbia.", + " chi si esalta sarà umiliato.", + " siede bene.", + " perde il suo diritto.", + " ti liscia il pelo.", + " non beve o non vuol bere il mosto.", + " perde il posto.", + " impara a zoppicare.", + " più tardi finisce.", + " spesse volte prende dei granchi.", + " gli altri abbasseranno lui.", + " il settimo anela il deserto.", + " la vergogna ha da levare.", + " meni letame.", + " chieda prestito all'usuraio.", + " la stia in Puglia e all'Aquila d'inverno.", + " è impiccato in sei mesi.", + " non domandi poco.", + " divenga amabile.", + " deve portare egli stesso il sacco al mulino.", + " dà slancio a un buon anno.", + " è bene per un altro.", + " così avrai.", + " così la benevolenza porta l'anima.", + " che Dio provvede al resto.", + " l'un tiene e l'altro spoglia.", + " una mano può innalzare un furfante ed abbassare un galantuomo.", + " con l'oro la donna e con la donna l'uomo.", + " scarpe grosse e cervelli fini.", + " domanda non aspetta.", + " magra eredità.", + " cattiva arringa.", + " tutti passan volentieri.", + " vacci coi polli nelle mani.", + " metà della metà.", + " ad ognuno pare un misfatto.", + " lo pigli per la coda.", + " non dire né bene né male.", + " ma questo presto ridurrassi al verde.", + " e ti dirò chi sei.", + " quando a grilli\".", + " rispondere è cortesia.", + " pericolo costante.", + " tardi esce e tardi torna.", + " sempre piaciuta.", + " poco gli manca.", + " pei giovani inesperti è una sirena.", + " di rado è buona.", + " ma guardati dal prenderla in isposa.", + " toccali poco.", + " ch'è una santa a messa e che in casa è un'orribil diavolessa.", + " donna virtuosa.", + " trascurata prega.", + " gioia eccellente.", + " son buone piccoline.", + " con dolce lena.", + " la miglior cosa è la libertà.", + " la gamba trascina il piede.", + " dove è pace è gioia.", + " esce l'umiltà.", + " Dio fa crescere un albero.", + " non c'è umanità.", + " il diavolo intasca tutte le entrate.", + " non vi è onore.", + " male si pettina.", + " Minerva non si lascia vedere.", + " ivi è l'occhio della chioccia.", + " difficilmente in pace stanno.", + " che tutto crede quando è in frenesia.", + " che riprendere quelli degli altri.", + " che satollo in prigione.", + " che uccel di gabbia.", + " che orgoglioso a piedi.", + " che crogiolarsi nella pelliccia della menzogna.", + " che conservarla per il convento.", + " che rodere il topo.", + " che un esercito di leoni sotto il comando di un cervo.", + " che migliorare.", + " che rimuovere gl'impedimenti.", + " che in mezzo a poche donne il silenzio.", + " spendono poco e gabbano volentieri.", + " perseverare è diabolico.", + " perseverare diabolico.", + " quando gli altri non lo sanno.", + " non quel che il prete fa.", + " e nessuno si farà beffe di te.", + " anima bella.", + " difficile è l'arte.", + " ma pagarli è questione d'onore.", + " dirà che gli fate del male.", + " febbraietto mese corto e maledetto.", + " se giran troppo si perdono.", + " non fidarsi è meglio.", + " ma non dell'artigiano.", + " è prossima ad arrendersi.", + " i suoi acceca.", + " sfortunato in amore.", + " non vi conosco alcuna differenza.", + " uomo senza barba è un minchione.", + " fanno gatti posati.", + " cane e uomo fuori.", + " ha paura della fredda.", + " ma ricevono il calore da chi li porta.", + " perché possono risuscitare i morti.", + " né il buio.", + " gobba a levante luna calante.", + " mai fi sanata.", + "grande offesa.", + " gran dolore.", + " da uomo infido e da donna svergognata.", + " e non sarai né testimonio né parte.", + " perché le prove sono difficili.", + " perché è una cattiva malattia.", + " alla centuna corre al precipizio.", + " perché il giusto s'innalza e l'empio cada.", + " quello che non fa violenza ai deboli.", + " divenir mortale.", + " meno i buoni.", + " ed all'avaro di gran supplizio.", + " ma al mazzo delle sue chiavi.", + " più che i figli i genitori.", + " dice il vischio che cresce sulla palma.", + " più fanno male.", + " e gli oratori si formano.", + " e il cuore dello stolto con poca adulazione.", + " il chiedere è dolore.", + " ma anche meno si deve approvare.", + " ma l'amore può tutto.", + " ma non se la lascia strappare.", + " il rispondere è obbligo.", + " ma il fuoco lo rende morbido.", + " alla madre la figlia.", + " che sempre si conserva l'appetito.", + " non voglio che mi scotti.", + " non lo spengo.", + " ma non vuole bagnarsi le zampe.", + " anche quando gode.", + " ha paura anche dell'acqua fredda.", + " domani graffia.", + " si accarezza vicino a te.", + " se non si dorme si riposa.", + " il leone muore di rabbia.", + " ma non i datteri.", + " e tira calci con i piedi.", + " l'arco fa spezzare.", + " ma più forte d'ogni cosa è la donna.", + " il savio a quelle altrui.", + " né in Piemonte bestemmie.", + " beato chi ha un occhio.", + " la valigia dinanzi.", + " crescono soltanto con gli anni.", + " diffondere l'invenzione è tutto.", + " ma la felce cresce in larghezza.", + " ma cattivi padroni.", + " ma fa il suo nido in terra.", + " ma vede lontano.", + " non il campo.", + " se non quando non l'ha più.", + " vegeta.", + " ingagliardisce le anime forti.", + " cresce nell'orto.", + " la materna ai materni.", + " l'inverno per chi dorme.", + " l'inverno un padrone.", + " e tinge le dita e la reputazione.", + " e se ne va con gli anni.", + " quando non ha altro da rodere.", + " l'umiltà è saviezza.", + " è la legge della morte.", + " l'avvilirsi è da bestia.", + " quanto la gioventù.", + " ma non dura.", + " se non è unta.", + " un mese e un'estate per sapere che odore sa.", + " vince il diavolo in furberia.", + " è di facile conquista.", + " e l'infedeltà mai abbastanza.", + " mette il piede davanti alla vacca.", + " ma non pescare.", + " e la bellezza sfiorisce.", + " e quando fa la D cresce", + " e la poesia una pittura loquace.", + " l'ultima eredità all'ultimo figlio.", + " se non ci va oggi ci andrà domani.", + " perché non ha denti.", + " anche vestita di seta.", + " l'esperienza rimpicciolisce.", + " ma pure fa male coll'odor del veleno.", + " supplicare e bere acqua è lecito a tutti.", + " la bontà fino alla morte.", + " sono sicure dal nibbio.", + " e tre mesi dura ogni malanno.", + " gli uomini s'incontrano.", + " si seccano.", + " le spine restano.", + " o che ha qualche cosa che non può dire.", + " il valente combatte muto.", + " se non è pazzo lo farai diventare.", + " lontano dal cuore.", + " lontan dal cuore.", + " corta mano.", + " bevi bene e batti saldo.", + " molta paglia e poco grano.", + " maggiore la sua umiltà.", + " paura non avere.", + " gran per le zolle.", + " che alzarsi con debiti.", + " che odio segreto.", + " che dietro ai signori.", + " che nascere nobile.", + " che la padrona in casa altrui.", + " che capponi in schiavitù.", + " che gallina con dolore.", + " che cento ereditati.", + " ma non le sanno giocare.", + " ma non ai rimorsi della coscienza.", + " che non hanno ancora l'uovo.", + " pochi i poeti.", + " molti amici.", + " spento il veleno.", + " ma cattiva bestia.", + " ma per il pane.", + " Pasqua con chi vuoi.", + " i pareri sono dispari.", + " senza vin non si danza.", + " poveri e ricchi sono uguali.", + " e nella gioventù alla vecchiaia.", + " e nell'estate il savio le raccoglie.", + " nell'infelicità pazienza.", + " il medico non vede gotta.", + " buona nuova.", + " e né meno nessuna donna da maritare.", + " quand'anche sia morta.", + " ma lo smettere.", + " senza un ramo di pazzia.", + " più pena si sente.", + " non avrai mai male.", + " non fare il bene ch'è sprecato.", + " ch'io non mi medicassi col suo olio.", + " non ogni domanda vuole risposta.", + " né tanto male che non si possa star meglio.", + " quanti in Venezia gondole e camini.", + " di grazia o di bontà.", + " tuo padre era un bruco.", + " come quando i frati portano tonache uguali.", + " nè donna senza pecca.", + " ti renderà veleno.", + " o di' cosa migliore del silenzio.", + " cuore non duole.", + " dente per dente.", + " ogni bella donna diventa nonna.", + " ma la fama non perisce.", + " l'amore uguaglia.", + " non è un boia.", + " uomo morto.", + " vita disperata.", + " vino con misura.", + " amici cari.", + " savio per scrittura.", + " penitenza nuova.", + " può perdere la testa.", + " non c'è catena che tenga.", + " bisogna amare.", + " non è mai troppo tardi.", + " l'abate vende il convento.", + " nessuno lo coglie se ha cattivo odore.", + " ma non a te.", + " scordare è da bestie.", + " cerca d'esser gramo.", + " non prende vigore.", + " ed il male quando conviene.", + " pesa per chi posa.", + " più si deve essere umili.", + " più fortunato.", + " più scorre il silenzio.", + " meno si ama.", + " oratori si diventa.", + " pittori e pellegrini a fare e a dire sono indovini.", + " in quattro salti è digerito.", + " pensa alla risposta.", + " è arte dei gatti.", + " cento per forca e un per paese.", + " non l'albero già fatto adulto.", + " qualche intervallo il savio ha di stoltezza.", + " tale il nido.", + " i cardi non porterebbero mai rose.", + " si trova anche il generale.", + " la pioggia non è lontana.", + " ciascuno trova da ridire alla palma.", + " la chiesa ha pace.", + " le vecce gli sembrano amare.", + " pioverà prima che sia mattina.", + " le ciliegie sono acerbe.", + " il contadino si rizza.", + " poco val cacciare il gatto.", + " la semente ci va tutta.", + " non ti curar della luna.", + " vento nell'inverno.", + " l'inverno è rigoroso.", + " non c'è peggior diavolo.", + " il danaro respira.", + " lascia la donna e tienti al vino.", + " l'amore esce dalla finestra.", + " gli occhi nuotano nell'allegria.", + " piove miele e mosto.", + " non è dal savio il pazzo differente.", + " frequenta in domandare.", + " quando sono sposate hanno sette lingue e una mano.", + " poco vale lamentarsi.", + " il diritto è morto.", + " tanto più profonda la valle.", + " più presto crepa.", + " tanto più se ne vorrebbe.", + " conviene che sia.", + " può spesso la fortuna.", + " non dispiace mai a Dio.", + " appare al sole.", + " lo lascio stare.", + " fino alla vecchiaia.", + " ne hanno da vendere più degli altri.", + " può accadere oggi.", + " è scordato.", + " sarà.", + " può avvenire domani.", + " può spesso il caso.", + " non rimandarlo a domani.", + " il bosco lo ripete.", + " non si dimentica mai più.", + " che vuole il bene mio.", + " malsane.", + " ma mai il comune senso potrà darti.", + " tutti scaltri.", + " a chi molto in tre dì.", + " pioggia vicina.", + " buon tempo si spera; rosso di mattina mal tempo si avvicina.", + " verde e turchino si deve essere più che bellino.", + " in buona terra covo.", + " Cristo negato.", + " farfalla perderai l'ali e la vita.", + " scherzo di villano.", + " gioco di villano.", + " accusa manifesta.", + " peggio mieterai.", + " se vecchiaia potesse.", + " le beccacce sarebbero rare.", + " chiuderebbe spesso la borsa.", + " tutti sbagliati saranno da cima a fondo.", + " il lodarlo non basta; il dovere primo è d'aiutarlo.", + " in ogni casa si sentirebbe stridere.", + " al ritorno ne troverai ben poche.", + " a nulla serve il tuo sapere.", + " cuor non sospira.", + " la gente si stancherebbe a raccoglierlo.", + " gli altri non sono responsabili.", + " fa' che ti brami.", + " fallo ingelosire.", + " non ti fidare.", + " l'uva è fatta e il fico pende.", + " e la madre a causa del fanciullo.", + " ma non il peccatore.", + " e non se ne fa uso che per un momento.", + " s'impara sempre.", + " sotto l'acqua fame.", + " v'è torbida sera.", + " ne subisce una peggiore.", + " larga la via dite la vostra che ho detto la mia.", + " stretta la via dite la vostra che ho detto la mia.", + " ma per sapere meglio degli altri.", + " onore alla vecchiaia.", + " tale figlio.", + " tanti templi.", + " assicura bel tempo tutto l'anno.", + " terra poca.", + " tosto stanca.", + " luccio in pelliccia.", + " mano non metta chi ha cervello.", + " goccia e femmina arrabbiata.", + " chi crede troppo e chi non crede mai.", + " che ha saggina e rape.", + " sanità di corpo.", + " nausea.", + " ma so ben io qual fine avran quei vezzi.", + " ma il guaio senza pane è il più grosso.", + " sento odor di cristianucci.", + " anche se il premio mai non ottiene.", + " che altra donna confessa essere bella.", + " l'altro raccoglie.", + " sepoltura aperta.", + " è uomo non fortunato.", + " uomo amante.", + " giovinezza d'allodola.", + " fabbricata sul mare; chi non la vede non la può stimare.", + " e Padova sua sorella.", + " e dei savi matti.", + " che più accresce la speranza al vizio.", + "e lascia vivere.", + "fino alla fossa dura.", + " fino alla morte dura.", + " che un cavallo che mi getti in terra.", +]; diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..70a5760 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,42 @@ +use anyhow::Result; +use commands::{metafora, proverbio}; +use teloxide::{prelude::*, utils::command::BotCommands}; + +mod commands; + +#[tokio::main] +async fn main() -> Result<()> { + dotenvy::dotenv()?; + + tracing_subscriber::fmt::init(); + + let bot = Bot::from_env(); + + Command::repl(bot, answer).await; + + Ok(()) +} + +#[derive(BotCommands, Clone)] +#[command(rename_rule = "lowercase", description = "Comandi del bot:")] +enum Command { + #[command(description = "mostra questo testo")] + Help, + #[command(description = "genera metafora")] + Metafora, + #[command(description = "genera proverbio")] + Proverbio, +} + +async fn answer(bot: Bot, msg: Message, cmd: Command) -> ResponseResult<()> { + match cmd { + Command::Help => { + bot.send_message(msg.chat.id, Command::descriptions().to_string()) + .await? + } + Command::Metafora => bot.send_message(msg.chat.id, metafora::generate()).await?, + Command::Proverbio => bot.send_message(msg.chat.id, proverbio::generate()).await?, + }; + + Ok(()) +}