Removed library crate for pass_manager
This commit is contained in:
parent
9ef17f31fe
commit
f1228ed80f
71
src/lib.rs
71
src/lib.rs
@ -1,71 +0,0 @@
|
|||||||
mod callbacks;
|
|
||||||
mod commands;
|
|
||||||
mod default;
|
|
||||||
mod errors;
|
|
||||||
mod markups;
|
|
||||||
mod master_password_check;
|
|
||||||
mod models;
|
|
||||||
mod state;
|
|
||||||
mod utils;
|
|
||||||
|
|
||||||
use anyhow::{Error, Result};
|
|
||||||
use commands::Command;
|
|
||||||
use futures::future::BoxFuture as PinnedFuture;
|
|
||||||
use sea_orm::prelude::*;
|
|
||||||
use state::{Handler, MainDialogue, State};
|
|
||||||
use teloxide::{
|
|
||||||
adaptors::{throttle::Limits, Throttle},
|
|
||||||
dispatching::dialogue::InMemStorage,
|
|
||||||
filter_command,
|
|
||||||
prelude::*,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub fn get_dispatcher(
|
|
||||||
token: String,
|
|
||||||
db: DatabaseConnection,
|
|
||||||
) -> Dispatcher<Throttle<Bot>, crate::Error, teloxide::dispatching::DefaultKey> {
|
|
||||||
use dptree::{case, deps};
|
|
||||||
|
|
||||||
let bot = Bot::new(token).throttle(Limits::default());
|
|
||||||
|
|
||||||
let command_handler = filter_command::<Command, _>()
|
|
||||||
.branch(case![Command::Start].endpoint(commands::start))
|
|
||||||
.branch(case![Command::Help].endpoint(commands::help))
|
|
||||||
.branch(case![Command::SetMasterPass].endpoint(commands::set_master_pass))
|
|
||||||
.branch(case![Command::GenPassword].endpoint(commands::gen_password))
|
|
||||||
.branch(case![Command::Cancel].endpoint(commands::cancel))
|
|
||||||
// This branch filters out the users that don't have a master password set
|
|
||||||
.branch(master_password_check::get_handler())
|
|
||||||
.branch(case![Command::AddAccount].endpoint(commands::add_account))
|
|
||||||
.branch(case![Command::GetAccount].endpoint(commands::get_account))
|
|
||||||
.branch(case![Command::GetAccounts].endpoint(commands::get_accounts))
|
|
||||||
.branch(case![Command::Delete].endpoint(commands::delete))
|
|
||||||
.branch(case![Command::DeleteAll].endpoint(commands::delete_all))
|
|
||||||
.branch(case![Command::Export].endpoint(commands::export))
|
|
||||||
.branch(case![Command::Import].endpoint(commands::import));
|
|
||||||
|
|
||||||
let message_handler = Update::filter_message()
|
|
||||||
.map_async(utils::delete_message)
|
|
||||||
.enter_dialogue::<Update, InMemStorage<State>, State>()
|
|
||||||
.branch(case![State::GetExistingName(next)].endpoint(state::get_existing_name))
|
|
||||||
.branch(case![State::GetNewName(next)].endpoint(state::get_new_name))
|
|
||||||
.branch(case![State::GetMasterPass(next)].endpoint(state::get_master_pass))
|
|
||||||
.branch(case![State::GetNewMasterPass(next)].endpoint(state::get_new_master_pass))
|
|
||||||
.branch(case![State::GetLogin(next)].endpoint(state::get_login))
|
|
||||||
.branch(case![State::GetPassword(next)].endpoint(state::get_password))
|
|
||||||
.branch(case![State::GetUser(next)].endpoint(state::get_user))
|
|
||||||
.branch(command_handler)
|
|
||||||
.endpoint(default::default);
|
|
||||||
|
|
||||||
let callback_handler =
|
|
||||||
Update::filter_callback_query().chain(callbacks::delete_message::get_handler());
|
|
||||||
|
|
||||||
let handler = dptree::entry()
|
|
||||||
.branch(message_handler)
|
|
||||||
.branch(callback_handler);
|
|
||||||
|
|
||||||
Dispatcher::builder(bot, handler)
|
|
||||||
.dependencies(deps![db, InMemStorage::<State>::new()])
|
|
||||||
.enable_ctrlc_handler()
|
|
||||||
.build()
|
|
||||||
}
|
|
73
src/main.rs
73
src/main.rs
@ -1,9 +1,76 @@
|
|||||||
use anyhow::Result;
|
mod callbacks;
|
||||||
|
mod commands;
|
||||||
|
mod default;
|
||||||
|
mod errors;
|
||||||
|
mod markups;
|
||||||
|
mod master_password_check;
|
||||||
|
mod models;
|
||||||
|
mod state;
|
||||||
|
mod utils;
|
||||||
|
|
||||||
|
use anyhow::{Error, Result};
|
||||||
|
use commands::Command;
|
||||||
use dotenv::dotenv;
|
use dotenv::dotenv;
|
||||||
use migration::{Migrator, MigratorTrait};
|
use migration::{Migrator, MigratorTrait};
|
||||||
use pass_manager::get_dispatcher;
|
use sea_orm::{prelude::*, Database};
|
||||||
use sea_orm::Database;
|
use state::{Handler, MainDialogue, State};
|
||||||
use std::env;
|
use std::env;
|
||||||
|
use teloxide::{
|
||||||
|
adaptors::{throttle::Limits, Throttle},
|
||||||
|
dispatching::dialogue::InMemStorage,
|
||||||
|
filter_command,
|
||||||
|
prelude::*,
|
||||||
|
};
|
||||||
|
|
||||||
|
fn get_dispatcher(
|
||||||
|
token: String,
|
||||||
|
db: DatabaseConnection,
|
||||||
|
) -> Dispatcher<Throttle<Bot>, crate::Error, teloxide::dispatching::DefaultKey> {
|
||||||
|
use dptree::{case, deps};
|
||||||
|
|
||||||
|
let bot = Bot::new(token).throttle(Limits::default());
|
||||||
|
|
||||||
|
let command_handler = filter_command::<Command, _>()
|
||||||
|
.branch(case![Command::Start].endpoint(commands::start))
|
||||||
|
.branch(case![Command::Help].endpoint(commands::help))
|
||||||
|
.branch(case![Command::SetMasterPass].endpoint(commands::set_master_pass))
|
||||||
|
.branch(case![Command::GenPassword].endpoint(commands::gen_password))
|
||||||
|
.branch(case![Command::Cancel].endpoint(commands::cancel))
|
||||||
|
// This branch filters out the users that don't have a master password set
|
||||||
|
.branch(master_password_check::get_handler())
|
||||||
|
.branch(case![Command::AddAccount].endpoint(commands::add_account))
|
||||||
|
.branch(case![Command::GetAccount].endpoint(commands::get_account))
|
||||||
|
.branch(case![Command::GetAccounts].endpoint(commands::get_accounts))
|
||||||
|
.branch(case![Command::Delete].endpoint(commands::delete))
|
||||||
|
.branch(case![Command::DeleteAll].endpoint(commands::delete_all))
|
||||||
|
.branch(case![Command::Export].endpoint(commands::export))
|
||||||
|
.branch(case![Command::Import].endpoint(commands::import));
|
||||||
|
|
||||||
|
let message_handler = Update::filter_message()
|
||||||
|
.map_async(utils::delete_message)
|
||||||
|
.enter_dialogue::<Update, InMemStorage<State>, State>()
|
||||||
|
.branch(case![State::GetExistingName(next)].endpoint(state::get_existing_name))
|
||||||
|
.branch(case![State::GetNewName(next)].endpoint(state::get_new_name))
|
||||||
|
.branch(case![State::GetMasterPass(next)].endpoint(state::get_master_pass))
|
||||||
|
.branch(case![State::GetNewMasterPass(next)].endpoint(state::get_new_master_pass))
|
||||||
|
.branch(case![State::GetLogin(next)].endpoint(state::get_login))
|
||||||
|
.branch(case![State::GetPassword(next)].endpoint(state::get_password))
|
||||||
|
.branch(case![State::GetUser(next)].endpoint(state::get_user))
|
||||||
|
.branch(command_handler)
|
||||||
|
.endpoint(default::default);
|
||||||
|
|
||||||
|
let callback_handler =
|
||||||
|
Update::filter_callback_query().chain(callbacks::delete_message::get_handler());
|
||||||
|
|
||||||
|
let handler = dptree::entry()
|
||||||
|
.branch(message_handler)
|
||||||
|
.branch(callback_handler);
|
||||||
|
|
||||||
|
Dispatcher::builder(bot, handler)
|
||||||
|
.dependencies(deps![db, InMemStorage::<State>::new()])
|
||||||
|
.enable_ctrlc_handler()
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<()> {
|
async fn main() -> Result<()> {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::{errors::HandlerUsed, markups::deletion_markup, utils::delete_optional, PinnedFuture};
|
use crate::{errors::HandlerUsed, markups::deletion_markup, utils::delete_optional};
|
||||||
|
use futures::future::BoxFuture;
|
||||||
use sea_orm::prelude::*;
|
use sea_orm::prelude::*;
|
||||||
use teloxide::{adaptors::Throttle, prelude::*};
|
use teloxide::{adaptors::Throttle, prelude::*};
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ where
|
|||||||
&'a Message,
|
&'a Message,
|
||||||
&'a DatabaseConnection,
|
&'a DatabaseConnection,
|
||||||
&'a str,
|
&'a str,
|
||||||
) -> PinnedFuture<'a, crate::Result<Option<Message>>>,
|
) -> BoxFuture<'a, crate::Result<Option<Message>>>,
|
||||||
{
|
{
|
||||||
let mut handler = next.lock().await;
|
let mut handler = next.lock().await;
|
||||||
delete_optional(&bot, handler.previous.as_ref()).await;
|
delete_optional(&bot, handler.previous.as_ref()).await;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::MainDialogue;
|
use crate::MainDialogue;
|
||||||
|
use futures::future::BoxFuture;
|
||||||
use sea_orm::prelude::*;
|
use sea_orm::prelude::*;
|
||||||
use std::{future::Future, sync::Arc};
|
use std::{future::Future, sync::Arc};
|
||||||
use teloxide::{adaptors::Throttle, prelude::*};
|
use teloxide::{adaptors::Throttle, prelude::*};
|
||||||
@ -11,7 +12,7 @@ type DynHanlder<T> = Box<
|
|||||||
DatabaseConnection,
|
DatabaseConnection,
|
||||||
MainDialogue,
|
MainDialogue,
|
||||||
T,
|
T,
|
||||||
) -> crate::PinnedFuture<'static, crate::Result<()>>
|
) -> BoxFuture<'static, crate::Result<()>>
|
||||||
+ Send,
|
+ Send,
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user