summaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2024-06-16 07:15:13 -0400
committerGitHub <[email protected]>2024-06-16 07:15:13 -0400
commitd25129d829e0ebd70b4e60e399fe91c0d80aa1ad (patch)
tree2a62992f2980f9fed2204ef5ef708a0228998cf1 /src/client.rs
parenta0bfcc1587e3cef1b8f6fa0508a280fc48c82231 (diff)
use libgit2 to track PRs (#10)v0.2.0
* nix: don't depend on registry for nixpkgs input * use libgit2 to track PRs * nix: don't use ci devShell as defaul * crates: bump serenity from `9ad74d4` to `0.12.2 * nix: fix cross compiled builds * crates: split more from client * bot-jobs: update remote refs more efficiently * git-tracker: account for HEAD commits * bot-config: use nixpkgs branches from environment * bot-commands: don't display branches prs haven't landed in * git-tracker: return false when commits aren't found this is annoying as a hard error since it turns out github will report garbage merge commit SHAs for PRs that *haven't* been merged yet. yay * bot: improve docs in some places * bot-client: display invite link on start * bot-http: add TeawieClientExt * bot-commands: add /about * docs: update readme todos * nix: enable StateDirectory in module * crates: bump to 0.2.0
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/client.rs b/src/client.rs
deleted file mode 100644
index a779a3b..0000000
--- a/src/client.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-use std::sync::Arc;
-
-use crate::{
- handler::Handler,
- http::{self, HttpClientExt},
-};
-
-use eyre::Result;
-use serenity::prelude::{Client, GatewayIntents, TypeMapKey};
-use tracing::trace;
-
-/// Container for [http::Client]
-pub struct SharedClient;
-
-impl TypeMapKey for SharedClient {
- type Value = Arc<http::Client>;
-}
-
-/// Fetch our bot token
-fn token() -> Result<String> {
- let token = std::env::var("DISCORD_BOT_TOKEN")?;
- Ok(token)
-}
-
-/// Create our client
-#[tracing::instrument]
-pub async fn get() -> Client {
- 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
- .expect("Couldn't create a client!");
-
- // add state stuff
- {
- let mut data = client.data.write().await;
- trace!("Creating HTTP client");
- let http_client = <http::Client as HttpClientExt>::default();
- trace!("Inserting HTTP client into Discord client");
- data.insert::<SharedClient>(Arc::new(http_client))
- }
-
- 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 registrl ctrl+c handler!");
- shard_manager.shutdown_all().await;
- });
-
- client
-}