···93939494 let language = file
9595 .split('.')
9696- .last()
9696+ .next_back()
9797 .map_or("", remove_query_string)
9898 .to_lowercase();
9999
+18-21
src/http_server.rs
···2424 data: Arc<Data>,
2525 port: u16,
2626) -> color_eyre::eyre::Result<()> {
2727- let addr = format!("127.0.0.1:{}", port);
2727+ let addr = format!("127.0.0.1:{port}");
2828 let listener = TcpListener::bind(&addr).await?;
2929-3030- println!("HTTP server listening on http://{}", addr);
3131-2929+3030+ println!("HTTP server listening on http://{addr}");
3131+3232 loop {
3333 let (stream, _) = listener.accept().await?;
3434 let ctx = Arc::clone(&ctx);
3535 let data = Arc::clone(&data);
3636-3636+3737 tokio::spawn(async move {
3838 if let Err(e) = handle_connection(stream, ctx, data).await {
3939- eprintln!("Error handling connection: {}", e);
3939+ eprintln!("Error handling connection: {e}");
4040 }
4141 });
4242 }
···4848 _data: Arc<Data>,
4949) -> color_eyre::eyre::Result<()> {
5050 let mut buffer = [0; 1024];
5151- stream.read(&mut buffer).await?;
5252-5151+ stream.read_exact(&mut buffer).await?;
5252+5353 let request = String::from_utf8_lossy(&buffer[..]);
5454 let request_line = request.lines().next().unwrap_or("");
5555-5555+5656 if request_line.starts_with("GET /members") {
5757 let guild_id = extract_guild_id_from_request(request_line)
5858 .unwrap_or(GuildId::new(1095080242219073606));
5959-5959+6060 match get_guild_members(&ctx, guild_id).await {
6161 Ok(response_body) => {
6262 let response = format!(
···6767 stream.write_all(response.as_bytes()).await?;
6868 }
6969 Err(e) => {
7070- let error_body = format!(r#"{{"error": "Failed to fetch members: {}"}}"#, e);
7070+ let error_body = format!(r#"{{"error": "Failed to fetch members: {e}"}}"#);
7171 let response = format!(
7272 "HTTP/1.1 500 Internal Server Error\r\nContent-Type: application/json\r\nContent-Length: {}\r\n\r\n{}",
7373 error_body.len(),
···8585 );
8686 stream.write_all(response.as_bytes()).await?;
8787 }
8888-8888+8989 Ok(())
9090}
9191···9999 Some((parts.next()?, parts.next()?))
100100 })
101101 .collect();
102102-102102+103103 if let Some(guild_id_str) = params.get("guild_id") {
104104 if let Ok(guild_id) = guild_id_str.parse::<u64>() {
105105 return Some(GuildId::new(guild_id));
···109109 None
110110}
111111112112-async fn get_guild_members(
113113- ctx: &Context,
114114- guild_id: GuildId,
115115-) -> color_eyre::eyre::Result<String> {
112112+async fn get_guild_members(ctx: &Context, guild_id: GuildId) -> color_eyre::eyre::Result<String> {
116113 let members = guild_id.members(&ctx.http, None, None).await?;
117117-114114+118115 let member_infos: Vec<MemberInfo> = members
119116 .iter()
120117 .map(|member| MemberInfo {
···123120 avatar_url: member.user.avatar_url(),
124121 })
125122 .collect();
126126-123123+127124 let response = MembersResponse {
128125 guild_id: guild_id.to_string(),
129126 members: member_infos,
130127 };
131131-128128+132129 Ok(serde_json::to_string_pretty(&response)?)
133133-}130130+}
+5-3
src/main.rs
···62626363 poise::builtins::register_globally(ctx, &framework.options().commands).await?;
64646565- // h tee tee pee
6565+ // h tee tee pee
6666 let ctx_clone = Arc::new(ctx.clone());
6767 let data_clone = Arc::new(types::Data::new());
6868 tokio::spawn(async move {
6969- if let Err(e) = http_server::start_http_server(ctx_clone, data_clone, 3000).await {
7070- eprintln!("HTTP server error: {}", e);
6969+ if let Err(e) =
7070+ http_server::start_http_server(ctx_clone, data_clone, 3000).await
7171+ {
7272+ eprintln!("HTTP server error: {e}");
7173 }
7274 });
7375