chore: merge avatars service into monorepo

This commit is contained in:
alyssa 2024-10-21 11:42:32 +09:00
parent f427d4d727
commit 17f5561293
27 changed files with 1925 additions and 111 deletions

View file

@ -36,7 +36,7 @@ pub async fn run_server(cache: Arc<DiscordCache>) -> anyhow::Result<()> {
.route(
"/guilds/:guild_id/members/@me",
get(|State(cache): State<Arc<DiscordCache>>, Path(guild_id): Path<u64>| async move {
match cache.0.member(Id::new(guild_id), libpk::config.discord.client_id) {
match cache.0.member(Id::new(guild_id), libpk::config.discord.as_ref().expect("missing discord config").client_id) {
Some(member) => status_code(StatusCode::FOUND, to_string(member.value()).unwrap()),
None => status_code(StatusCode::NOT_FOUND, "".to_string()),
}
@ -45,7 +45,7 @@ pub async fn run_server(cache: Arc<DiscordCache>) -> anyhow::Result<()> {
.route(
"/guilds/:guild_id/permissions/@me",
get(|State(cache): State<Arc<DiscordCache>>, Path(guild_id): Path<u64>| async move {
match cache.guild_permissions(Id::new(guild_id), libpk::config.discord.client_id).await {
match cache.guild_permissions(Id::new(guild_id), libpk::config.discord.as_ref().expect("missing discord config").client_id).await {
Ok(val) => {
println!("hh {}", Permissions::all().bits());
status_code(StatusCode::FOUND, to_string(&val.bits()).unwrap())
@ -114,7 +114,7 @@ pub async fn run_server(cache: Arc<DiscordCache>) -> anyhow::Result<()> {
if guild_id == 0 {
return status_code(StatusCode::FOUND, to_string(&*DM_PERMISSIONS).unwrap());
}
match cache.channel_permissions(Id::new(channel_id), libpk::config.discord.client_id).await {
match cache.channel_permissions(Id::new(channel_id), libpk::config.discord.as_ref().expect("missing discord config").client_id).await {
Ok(val) => status_code(StatusCode::FOUND, to_string(&val).unwrap()),
Err(err) => {
error!(?err, ?channel_id, ?guild_id, "failed to get own channelpermissions");
@ -176,7 +176,7 @@ pub async fn run_server(cache: Arc<DiscordCache>) -> anyhow::Result<()> {
.layer(axum::middleware::from_fn(crate::logger::logger))
.with_state(cache);
let addr: &str = libpk::config.api.addr.as_ref();
let addr: &str = libpk::config.discord.as_ref().expect("missing discord config").cache_api_addr.as_ref();
let listener = tokio::net::TcpListener::bind(addr).await?;
info!("listening on {}", addr);
axum::serve(listener, app).await?;

View file

@ -89,10 +89,22 @@ fn member_to_cached_member(item: Member, id: Id<UserMarker>) -> CachedMember {
}
pub fn new() -> DiscordCache {
let mut client_builder =
twilight_http::Client::builder().token(libpk::config.discord.bot_token.clone());
let mut client_builder = twilight_http::Client::builder().token(
libpk::config
.discord
.as_ref()
.expect("missing discord config")
.bot_token
.clone(),
);
if let Some(base_url) = libpk::config.discord.api_base_url.clone() {
if let Some(base_url) = libpk::config
.discord
.as_ref()
.expect("missing discord config")
.api_base_url
.clone()
{
client_builder = client_builder.proxy(base_url, true);
}
@ -136,7 +148,13 @@ impl DiscordCache {
return Ok(Permissions::all());
}
let member = if user_id == libpk::config.discord.client_id {
let member = if user_id
== libpk::config
.discord
.as_ref()
.expect("missing discord config")
.client_id
{
self.0
.member(guild_id, user_id)
.ok_or(format_err!("self member not found"))?
@ -202,7 +220,13 @@ impl DiscordCache {
return Ok(Permissions::all());
}
let member = if user_id == libpk::config.discord.client_id {
let member = if user_id
== libpk::config
.discord
.as_ref()
.expect("missing discord config")
.client_id
{
self.0
.member(guild_id, user_id)
.ok_or_else(|| {

View file

@ -17,6 +17,8 @@ use super::{cache::DiscordCache, shard_state::ShardStateManager};
pub fn cluster_config() -> ClusterSettings {
libpk::config
.discord
.as_ref()
.expect("missing discord config")
.cluster
.clone()
.unwrap_or(libpk::_config::ClusterSettings {
@ -51,10 +53,18 @@ pub fn create_shards(redis: fred::pool::RedisPool) -> anyhow::Result<Vec<Shard<R
let shards = create_iterator(
start_shard..end_shard + 1,
cluster_settings.total_shards,
ConfigBuilder::new(libpk::config.discord.bot_token.to_owned(), intents)
.presence(presence("pk;help", false))
.queue(queue.clone())
.build(),
ConfigBuilder::new(
libpk::config
.discord
.as_ref()
.expect("missing discord config")
.bot_token
.to_owned(),
intents,
)
.presence(presence("pk;help", false))
.queue(queue.clone())
.build(),
|_, builder| builder.build(),
);

View file

@ -15,7 +15,11 @@ use libpk::util::redis::RedisErrorExt;
pub fn new(redis: RedisPool) -> RedisQueue {
RedisQueue {
redis,
concurrency: libpk::config.discord.max_concurrency,
concurrency: libpk::config
.discord
.as_ref()
.expect("missing discord config")
.max_concurrency,
}
}