diff --git a/Cargo.lock b/Cargo.lock index 84503b9..ac9a870 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,6 +6,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.3", +] + [[package]] name = "aho-corasick" version = "0.7.10" @@ -164,7 +173,7 @@ dependencies = [ "block-padding", "byte-tools", "byteorder", - "generic-array", + "generic-array 0.12.3", ] [[package]] @@ -228,7 +237,6 @@ dependencies = [ name = "command_attr" version = "0.2.0" dependencies = [ - "futures", "proc-macro2", "quote", "syn", @@ -286,7 +294,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "generic-array", + "generic-array 0.12.3", ] [[package]] @@ -316,18 +324,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -[[package]] -name = "filetime" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "winapi 0.3.8", -] - [[package]] name = "flate2" version = "1.0.14" @@ -477,6 +473,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "generic-array" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.1.14" @@ -686,32 +692,6 @@ version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0" -[[package]] -name = "libflate" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" -dependencies = [ - "adler32", - "crc32fast", - "rle-decode-fast", - "take_mut", -] - -[[package]] -name = "libsodium-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c344ff12b90ef8fa1f0fffacd348c1fd041db331841fec9eab23fdb991f5e73" -dependencies = [ - "cc", - "libc", - "libflate", - "pkg-config", - "tar", - "vcpkg", -] - [[package]] name = "log" version = "0.4.8" @@ -980,6 +960,15 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" +[[package]] +name = "poly1305" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1" +dependencies = [ + "universal-hash", +] + [[package]] name = "ppv-lite86" version = "0.2.6" @@ -1144,12 +1133,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "rle-decode-fast" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" - [[package]] name = "rustls" version = "0.16.0" @@ -1182,6 +1165,16 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" +[[package]] +name = "salsa20" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fc17dc5eee5d3040d9f95a2d3ac42fb2c1829a80f417045da6cfd2befa66769" +dependencies = [ + "stream-cipher", + "zeroize", +] + [[package]] name = "schannel" version = "0.1.18" @@ -1276,7 +1269,7 @@ dependencies = [ "async-trait", "async-tungstenite", "audiopus", - "base64 0.11.0", + "base64 0.12.0", "bitflags", "byteorder", "bytes", @@ -1287,16 +1280,17 @@ dependencies = [ "log", "rand", "reqwest", - "rustls 0.16.0", + "rustls 0.17.0", "serde", "serde_json", - "sodiumoxide", "static_assertions", "tokio", + "typemap_rev", "url", "uwl", "webpki", "webpki-roots 0.19.0", + "xsalsa20poly1305", ] [[package]] @@ -1357,16 +1351,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "sodiumoxide" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585232e78a4fc18133eef9946d3080befdf68b906c51b621531c37e91787fa2b" -dependencies = [ - "libc", - "libsodium-sys", -] - [[package]] name = "soundfx-rs" version = "0.1.0" @@ -1424,7 +1408,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "generic-array", + "generic-array 0.12.3", "hex", "libc", "log", @@ -1463,6 +1447,21 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stream-cipher" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "subtle" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1" + [[package]] name = "syn" version = "1.0.17" @@ -1474,24 +1473,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - -[[package]] -name = "tar" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" -dependencies = [ - "filetime", - "libc", - "redox_syscall", - "xattr", -] - [[package]] name = "tempfile" version = "3.1.0" @@ -1648,6 +1629,12 @@ dependencies = [ "utf-8", ] +[[package]] +name = "typemap_rev" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078d41124321488746becfa144977b9b54667af408ff933cbbce9d83e7796ac9" + [[package]] name = "typenum" version = "1.11.2" @@ -1693,6 +1680,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array 0.14.3", + "subtle", +] + [[package]] name = "untrusted" version = "0.7.0" @@ -1910,10 +1907,21 @@ dependencies = [ ] [[package]] -name = "xattr" -version = "0.2.2" +name = "xsalsa20poly1305" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +checksum = "a7a4120d688bcca2a2226223c83a8ca3dbf349c6a3c7bef0f4a1ca8404326dba" dependencies = [ - "libc", + "aead", + "poly1305", + "rand_core", + "salsa20", + "subtle", + "zeroize", ] + +[[package]] +name = "zeroize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" diff --git a/src/guilddata.rs b/src/guilddata.rs index e071914..60a7ca9 100644 --- a/src/guilddata.rs +++ b/src/guilddata.rs @@ -37,7 +37,7 @@ SELECT id, name, prefix, volume, allow_greets } } - pub async fn create_from_guild(guild: Guild, db_pool: MySqlPool) -> Result> { + pub async fn create_from_guild(guild: Guild, db_pool: MySqlPool) -> Result> { sqlx::query!( " INSERT INTO servers (id, name) @@ -66,7 +66,7 @@ INSERT IGNORE INTO roles (guild_id, role) }) } - pub async fn commit(&self, db_pool: MySqlPool) -> Result<(), Box> { + pub async fn commit(&self, db_pool: MySqlPool) -> Result<(), Box> { sqlx::query!( " UPDATE servers diff --git a/src/main.rs b/src/main.rs index 0784d8f..49e818d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -361,7 +361,7 @@ SELECT name, id, plays, public, server_id, uploader_id } async fn play_audio(sound: &mut Sound, guild: GuildData, handler: &mut VoiceHandler, mut voice_guilds: MutexGuard<'_, HashMap>, pool: MySqlPool) - -> Result<(), Box> { + -> Result<(), Box> { let audio = handler.play_only(sound.store_sound_source(pool.clone()).await?); @@ -401,7 +401,7 @@ async fn dispatch_error_hook(ctx: &Context, msg: &Message, error: DispatchError) // entry point #[tokio::main] -async fn main() -> Result<(), Box> { +async fn main() -> Result<(), Box> { dotenv()?; @@ -995,7 +995,7 @@ async fn delete_sound(ctx: &Context, msg: &Message, args: Args) -> CommandResult Ok(()) } -async fn format_search_results(search_results: Vec, msg: &Message, ctx: &Context) -> Result<(), Box> { +async fn format_search_results(search_results: Vec, msg: &Message, ctx: &Context) -> Result<(), Box> { let mut current_character_count = 0; let title = "Public sounds matching filter:"; diff --git a/src/sound.rs b/src/sound.rs index e6b9fe9..5e95ff2 100644 --- a/src/sound.rs +++ b/src/sound.rs @@ -132,7 +132,7 @@ SELECT src return record.src } - pub async fn store_sound_source(&self, db_pool: MySqlPool) -> Result, Box> { + pub async fn store_sound_source(&self, db_pool: MySqlPool) -> Result, Box> { let caching_location = env::var("CACHING_LOCATION").unwrap_or(String::from("/tmp")); @@ -182,7 +182,7 @@ SELECT COUNT(1) as count Ok(c as u32) } - pub async fn set_as_greet(&self, user_id: u64, db_pool: MySqlPool) -> Result<(), Box> { + pub async fn set_as_greet(&self, user_id: u64, db_pool: MySqlPool) -> Result<(), Box> { sqlx::query!( " UPDATE users @@ -199,7 +199,7 @@ WHERE Ok(()) } - pub async fn commit(&self, db_pool: MySqlPool) -> Result<(), Box> { + pub async fn commit(&self, db_pool: MySqlPool) -> Result<(), Box> { sqlx::query!( " UPDATE sounds @@ -217,7 +217,7 @@ WHERE Ok(()) } - pub async fn delete(&self, db_pool: MySqlPool) -> Result<(), Box> { + pub async fn delete(&self, db_pool: MySqlPool) -> Result<(), Box> { sqlx::query!( " DELETE @@ -232,7 +232,7 @@ DELETE Ok(()) } - pub async fn create_anon(name: &str, src_url: &str, server_id: u64, user_id: u64, db_pool: MySqlPool) -> Result> { + pub async fn create_anon(name: &str, src_url: &str, server_id: u64, user_id: u64, db_pool: MySqlPool) -> Result> { async fn process_src(src_url: &str) -> Option> { let future = Command::new("ffmpeg") .arg("-i") @@ -287,7 +287,7 @@ INSERT INTO sounds (name, server_id, uploader_id, public, src) } } - pub async fn get_user_sounds(user_id: u64, db_pool: MySqlPool) -> Result, Box> { + pub async fn get_user_sounds(user_id: u64, db_pool: MySqlPool) -> Result, Box> { let sounds = sqlx::query_as_unchecked!( Sound, " @@ -301,7 +301,7 @@ SELECT name, id, plays, public, server_id, uploader_id Ok(sounds) } - pub async fn get_guild_sounds(guild_id: u64, db_pool: MySqlPool) -> Result, Box> { + pub async fn get_guild_sounds(guild_id: u64, db_pool: MySqlPool) -> Result, Box> { let sounds = sqlx::query_as_unchecked!( Sound, "