From bbc00edc6508ea1910c4d9e6a272f7859900950d Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 16 Aug 2024 22:14:16 -0400 Subject: end of summer refactor (#31) * crates: `bot-*` -> `discord-bot` I didn't really need all these crates to be split :/ * discord-bot: revamp http impl also handles the new errors reported by teawieAPI * crates: split http backend this can be reused easily * git-tracker: short-circuit boolean logic We don't need to check if the commit is a descendant of the HEAD of the branch if it *is* the HEAD * nix: fenix -> nixpkgs * treefmt: add actionlint * nix: use docker arch names for containers * ci: use actions-rust-lang actions * nix: drop ci dev shell * git-tracker: init ManagedRepository this logic can be shared * ci: use nix for clippy scan * discord-bot: better handle unmerged PRs * ci: fix treefmt check * nix: fix clippy check * .env.template: update crate names * git-tracker: use remote name for remote name i was half asleep * discord-bot: handle merged PRs that aren't found in any tracked branches * git-tracker: make collect_statuses_in() return a Vec * discord-bot: add more PR info with response fixes #18 --- crates/bot-client/src/lib.rs | 79 -------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 crates/bot-client/src/lib.rs (limited to 'crates/bot-client/src/lib.rs') diff --git a/crates/bot-client/src/lib.rs b/crates/bot-client/src/lib.rs deleted file mode 100644 index 851b853..0000000 --- a/crates/bot-client/src/lib.rs +++ /dev/null @@ -1,79 +0,0 @@ -use bot_config::Config; -use bot_error::Error; -use bot_http as http; - -use std::sync::Arc; - -use log::trace; -use serenity::prelude::{Client, GatewayIntents, TypeMapKey}; - -mod handler; - -use handler::Handler; - -/// Container for [`http::Client`] -struct SharedHttp; - -impl TypeMapKey for SharedHttp { - type Value = Arc; -} - -/// Container for [`Config`] -struct SharedConfig; - -impl TypeMapKey for SharedConfig { - type Value = Arc; -} - -/// Fetch our bot token -fn token() -> Result { - let token = std::env::var("DISCORD_BOT_TOKEN")?; - Ok(token) -} - -/// Create our client -/// -/// # Errors -/// -/// Will return [`Err`] if a [`Client`] cannot be created or configuration -/// cannot be created from the environment. -/// -/// # Panics -/// -/// Will [`panic!`] if the bot token isn't found or the ctrl+c handler can't be made -pub async fn get() -> Result { - let token = token().expect("Couldn't find token in environment! Is DISCORD_BOT_TOKEN set?"); - - let intents = GatewayIntents::default(); - trace!("Creating client"); - let client = Client::builder(token, intents) - .event_handler(Handler) - .await?; - - // add state stuff - let http_client = ::default(); - let config = Config::from_env()?; - - { - let mut data = client.data.write().await; - - data.insert::(Arc::new(http_client)); - data.insert::(Arc::new(config.clone())); - } - - let shard_manager = client.shard_manager.clone(); - - // gracefully shutdown on ctrl+c - tokio::spawn(async move { - #[cfg(target_family = "unix")] - tokio::signal::ctrl_c() - .await - .expect("Couldn't register ctrl+c handler!"); - shard_manager.shutdown_all().await; - }); - - // run our jobs - bot_jobs::dispatch(config)?; - - Ok(client) -} -- cgit v1.2.3