Compare commits
6 Commits
6f24d92215
...
ebb3c6c3e4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ebb3c6c3e4 | ||
|
|
64641d4101 | ||
|
|
8c3cfc4d2d | ||
|
|
88360c91ca | ||
|
|
0d4e2a8fcd | ||
|
|
0b089113f3 |
65
Cargo.lock
generated
65
Cargo.lock
generated
@ -557,6 +557,19 @@ dependencies = [
|
||||
"syn 2.0.100",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.10.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
|
||||
dependencies = [
|
||||
"humantime",
|
||||
"is-terminal",
|
||||
"log",
|
||||
"regex",
|
||||
"termcolor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "envconfig"
|
||||
version = "0.11.0"
|
||||
@ -841,6 +854,7 @@ dependencies = [
|
||||
"futures",
|
||||
"log",
|
||||
"mongodb",
|
||||
"pretty_env_logger",
|
||||
"serde",
|
||||
"teloxide",
|
||||
"thiserror 2.0.12",
|
||||
@ -879,6 +893,12 @@ version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e"
|
||||
|
||||
[[package]]
|
||||
name = "hex"
|
||||
version = "0.4.3"
|
||||
@ -1008,6 +1028,12 @@ version = "1.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
|
||||
|
||||
[[package]]
|
||||
name = "humantime"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f"
|
||||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "1.6.0"
|
||||
@ -1290,6 +1316,17 @@ version = "2.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
|
||||
|
||||
[[package]]
|
||||
name = "is-terminal"
|
||||
version = "0.4.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"libc",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
@ -1771,6 +1808,16 @@ dependencies = [
|
||||
"zerocopy 0.8.24",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pretty_env_logger"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"log",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error-attr2"
|
||||
version = "2.0.0"
|
||||
@ -2634,6 +2681,15 @@ dependencies = [
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
||||
dependencies = [
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.69"
|
||||
@ -3139,6 +3195,15 @@ version = "1.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d"
|
||||
|
||||
[[package]]
|
||||
name = "winapi-util"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-core"
|
||||
version = "0.52.0"
|
||||
|
||||
@ -16,6 +16,7 @@ envconfig = "0.11.0"
|
||||
futures = "0.3.31"
|
||||
log = "0.4.27"
|
||||
mongodb = "3.2.3"
|
||||
pretty_env_logger = "0.5.0"
|
||||
serde = { version = "1.0.219", features = ["derive", "serde_derive"] }
|
||||
teloxide = { version = "0.14.0", features = ["macros", "postgres-storage-nativetls"] }
|
||||
thiserror = "2.0.12"
|
||||
|
||||
@ -74,6 +74,8 @@ command = [
|
||||
need_stdout = true
|
||||
allow_warnings = true
|
||||
background = true
|
||||
[jobs.run.env]
|
||||
RUST_LOG = "info"
|
||||
|
||||
# Run your long-running application (eg server) and have the result displayed in bacon.
|
||||
# For programs that never stop (eg a server), `background` is set to false
|
||||
|
||||
@ -125,9 +125,6 @@ impl DB {
|
||||
let db = self.get_database().await;
|
||||
/// some migrations doesn't realy need type of collection
|
||||
type AnyCollection = Event;
|
||||
db.collection::<AnyCollection>("events")
|
||||
.drop_indexes()
|
||||
.await?;
|
||||
let events = self.get_database().await.collection::<Event>("events");
|
||||
events
|
||||
.create_index(
|
||||
@ -138,9 +135,6 @@ impl DB {
|
||||
)
|
||||
.await?;
|
||||
|
||||
db.collection::<AnyCollection>("events")
|
||||
.drop_indexes()
|
||||
.await?;
|
||||
// clear callbacks after a day because otherwise database will contain so much data
|
||||
// for just button clicks
|
||||
let callback_info = self
|
||||
@ -330,6 +324,24 @@ pub trait CallDB {
|
||||
Ok(new_event)
|
||||
}
|
||||
|
||||
async fn delete_event(&mut self, event_datetime: chrono::DateTime<Utc>) -> DbResult<()> {
|
||||
let db = self.get_database().await;
|
||||
let events = db.collection::<Event>("events");
|
||||
|
||||
events.delete_one(doc! { "time": event_datetime }).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn delete_all_events(&mut self) -> DbResult<usize> {
|
||||
let db = self.get_database().await;
|
||||
let events = db.collection::<Event>("events");
|
||||
|
||||
let delete_result = events.delete_many(doc! {}).await?;
|
||||
|
||||
Ok(delete_result.deleted_count as usize)
|
||||
}
|
||||
|
||||
async fn get_media(&mut self, literal: &str) -> DbResult<Vec<Media>> {
|
||||
let db = self.get_database().await;
|
||||
let media = db.collection::<Media>("media");
|
||||
|
||||
@ -116,6 +116,7 @@ impl std::fmt::Display for BotError {
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
dotenvy::dotenv()?;
|
||||
pretty_env_logger::init();
|
||||
let config = Config::init_from_env()?;
|
||||
|
||||
let mut bc = BotController::new(&config).await?;
|
||||
@ -253,8 +254,11 @@ async fn edit_msg_cmd_handler(
|
||||
.await?;
|
||||
bot.send_message(
|
||||
msg.chat.id,
|
||||
"Ok, now you have to send message text (formatting supported)",
|
||||
)
|
||||
"Ok, now you have to send message text (formatting supported)\n\
|
||||
<b>Notice:</b> if this message supposed to replace message (tg shows them as edited) \
|
||||
or be raplaced, do NOT send message with multiple media, only single photo, video etc. \
|
||||
To get more information about why, see in /why_media_group",
|
||||
).parse_mode(ParseMode::Html)
|
||||
.await?;
|
||||
}
|
||||
None => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user