base project
This commit is contained in:
commit
7929eeed7d
7 changed files with 3305 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/target
|
||||
.env
|
1966
Cargo.lock
generated
Normal file
1966
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
20
Cargo.toml
Normal file
20
Cargo.toml
Normal file
|
@ -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"
|
118
src/commands/metafora.rs
Normal file
118
src/commands/metafora.rs
Normal file
|
@ -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",
|
||||
];
|
2
src/commands/mod.rs
Normal file
2
src/commands/mod.rs
Normal file
|
@ -0,0 +1,2 @@
|
|||
pub mod metafora;
|
||||
pub mod proverbio;
|
1155
src/commands/proverbio.rs
Normal file
1155
src/commands/proverbio.rs
Normal file
File diff suppressed because it is too large
Load diff
42
src/main.rs
Normal file
42
src/main.rs
Normal file
|
@ -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(())
|
||||
}
|
Loading…
Reference in a new issue