diff --git a/Cargo.lock b/Cargo.lock index 1d7f716..e62e91d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,15 +16,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" -[[package]] -name = "ahash" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" -dependencies = [ - "const-random", -] - [[package]] name = "aho-corasick" version = "0.7.13" @@ -53,9 +44,9 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.9.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce503a5cb1e7450af7d211b86b84807791b251f335b2f43f1e26b85a416f315" +checksum = "f7cc5408453d37e2b1c6f01d8078af1da58b6cfa6a80fa2ede3bd2b9a6ada9c4" dependencies = [ "futures-io", "futures-util", @@ -75,7 +66,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -129,6 +120,12 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" +[[package]] +name = "bytes" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" + [[package]] name = "cc" version = "1.0.59" @@ -141,6 +138,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chrono" version = "0.4.15" @@ -155,48 +158,28 @@ dependencies = [ [[package]] name = "codeforces" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07443ebea310b4bbfd0c9ee79d25cf678fa1e7c82916bb32307af7a7ef1fe600" +checksum = "7df54b4689d51d58162c8b76a642ba44d6128b68f29c3fbc23815e6ea4bfef15" dependencies = [ - "futures-timer", "futures-util", "reqwest", "serde", "serde_json", + "tokio", ] [[package]] name = "command_attr" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc8da29004a4dd9b89d21b2e17ccd372c1ff085bdab9e22b989096db1289d01" +checksum = "ef54b146e4ff8a036b9d632fd48c183c9757992535e5f557275f4a01dfd9c7c7" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "const-random" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -dependencies = [ - "const-random-macro", - "proc-macro-hack", -] - -[[package]] -name = "const-random-macro" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -dependencies = [ - "getrandom", - "proc-macro-hack", -] - [[package]] name = "core-foundation" version = "0.7.0" @@ -225,17 +208,16 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] name = "dashmap" -version = "3.11.10" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" dependencies = [ - "ahash", - "cfg-if", + "cfg-if 1.0.0", "num_cpus", ] @@ -266,7 +248,7 @@ version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] @@ -288,7 +270,7 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "crc32fast", "libc", "miniz_oxide", @@ -296,12 +278,14 @@ dependencies = [ [[package]] name = "flume" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7d4f1d85cb8cafb73c01d872e0124a96e603f5b7633ce1eac70015f066e946" +checksum = "0362ef9c4c1fa854ff95b4cb78045a86e810d804dc04937961988b45427104a9" dependencies = [ - "futures", - "rand", + "futures-core", + "futures-sink", + "nanorand", + "pin-project 1.0.2", "spinning_top", ] @@ -327,21 +311,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "fuchsia-zircon" -version = "0.3.3" +name = "form_urlencoded" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" dependencies = [ - "bitflags", - "fuchsia-zircon-sys", + "matches", + "percent-encoding", ] -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "futures" version = "0.3.5" @@ -405,12 +383,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" - [[package]] name = "futures-util" version = "0.3.5" @@ -447,18 +419,31 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] -name = "h2" -version = "0.2.6" +name = "getrandom" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" dependencies = [ - "bytes", + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "h2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b67e66362108efccd8ac053abafc8b7a8d86a37e6e48fc4f6f7485eb5e9e6a5" +dependencies = [ + "bytes 1.0.1", "fnv", "futures-core", "futures-sink", @@ -469,6 +454,7 @@ dependencies = [ "tokio", "tokio-util", "tracing", + "tracing-futures", ] [[package]] @@ -492,18 +478,18 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" dependencies = [ - "bytes", + "bytes 0.5.6", "fnv", "itoa", ] [[package]] name = "http-body" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994" dependencies = [ - "bytes", + "bytes 1.0.1", "http", ] @@ -513,6 +499,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humantime" version = "1.3.0" @@ -524,11 +516,11 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.7" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +checksum = "12219dc884514cb4a6a03737f4413c0e01c23a1b059b0156004b23f1e19dccbe" dependencies = [ - "bytes", + "bytes 1.0.1", "futures-channel", "futures-core", "futures-util", @@ -536,10 +528,10 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa", - "pin-project 0.4.23", + "pin-project 1.0.2", "socket2", - "time", "tokio", "tower-service", "tracing", @@ -548,11 +540,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.21.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ - "bytes", "futures-util", "hyper", "log", @@ -564,15 +555,15 @@ dependencies = [ [[package]] name = "hyper-tls" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes", + "bytes 1.0.1", "hyper", "native-tls", "tokio", - "tokio-tls", + "tokio-native-tls", ] [[package]] @@ -602,16 +593,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" dependencies = [ - "bytes", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", + "bytes 0.5.6", ] [[package]] @@ -635,16 +617,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -678,7 +650,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] @@ -721,33 +693,34 @@ dependencies = [ [[package]] name = "mio" -version = "0.6.22" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7" dependencies = [ - "cfg-if", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", "libc", "log", "miow", - "net2", - "slab", - "winapi 0.2.8", + "ntapi", + "winapi", ] [[package]] name = "miow" -version = "0.2.1" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "socket2", + "winapi", +] + +[[package]] +name = "nanorand" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1378b66f7c93a1c0f8464a19bf47df8795083842e5090f4b7305973d5a22d0" +dependencies = [ + "getrandom 0.2.1", ] [[package]] @@ -769,14 +742,12 @@ dependencies = [ ] [[package]] -name = "net2" -version = "0.2.35" +name = "ntapi" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" dependencies = [ - "cfg-if", - "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -827,7 +798,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4" dependencies = [ "bitflags", - "cfg-if", + "cfg-if 0.1.10", "foreign-types", "lazy_static", "libc", @@ -912,9 +883,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.7" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" +checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" [[package]] name = "pin-utils" @@ -976,7 +947,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.15", "libc", "rand_chacha", "rand_core", @@ -999,7 +970,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.15", ] [[package]] @@ -1041,17 +1012,17 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "reqwest" -version = "0.10.8" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e" +checksum = "fd281b1030aa675fb90aa994d07187645bb3c8fc756ca766e7c3070b439de9de" dependencies = [ - "base64 0.12.3", - "bytes", + "base64 0.13.0", + "bytes 1.0.1", "encoding_rs", "futures-core", "futures-util", @@ -1074,13 +1045,13 @@ dependencies = [ "serde_json", "serde_urlencoded", "tokio", + "tokio-native-tls", "tokio-rustls", - "tokio-tls", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.19.0", + "webpki-roots 0.21.0", "winreg", ] @@ -1096,7 +1067,7 @@ dependencies = [ "spin", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1113,11 +1084,11 @@ dependencies = [ [[package]] name = "rustls" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b" dependencies = [ - "base64 0.12.3", + "base64 0.13.0", "log", "ring", "sct", @@ -1137,7 +1108,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" dependencies = [ "lazy_static", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1212,14 +1183,14 @@ dependencies = [ [[package]] name = "serde_urlencoded" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" dependencies = [ - "dtoa", + "form_urlencoded", "itoa", + "ryu", "serde", - "url", ] [[package]] @@ -1236,19 +1207,20 @@ dependencies = [ [[package]] name = "serenity" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbd2938b8859261d418ba8325a795000e37e9cba1b19d4e978775c5e34dc997" +checksum = "4dac8367ecfd3380c00dcedf5eb9a47888ae74ae391419b5b1f7735895ed8df4" dependencies = [ "async-trait", "async-tungstenite", "base64 0.13.0", "bitflags", - "bytes", + "bytes 1.0.1", "chrono", "command_attr", "flate2", "futures", + "percent-encoding", "reqwest", "serde", "serde_json", @@ -1268,7 +1240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" dependencies = [ "block-buffer", - "cfg-if", + "cfg-if 0.1.10", "cpuid-bool", "digest", "opaque-debug", @@ -1282,14 +1254,13 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "socket2" -version = "0.3.15" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", - "redox_syscall", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1330,12 +1301,12 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand", "redox_syscall", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1384,7 +1355,7 @@ checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1395,27 +1366,25 @@ checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" [[package]] name = "tokio" -version = "0.2.22" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +checksum = "0ca04cec6ff2474c638057b65798f60ac183e5e79d3448bb7163d36a39cff6ec" dependencies = [ - "bytes", - "fnv", - "futures-core", - "iovec", - "lazy_static", + "autocfg", + "bytes 1.0.1", + "libc", "memchr", "mio", + "num_cpus", "pin-project-lite", - "slab", "tokio-macros", ] [[package]] name = "tokio-macros" -version = "0.2.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494" dependencies = [ "proc-macro2", "quote", @@ -1423,39 +1392,50 @@ dependencies = [ ] [[package]] -name = "tokio-rustls" -version = "0.14.1" +name = "tokio-native-tls" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" -dependencies = [ - "futures-core", - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", "tokio", ] [[package]] -name = "tokio-util" -version = "0.3.1" +name = "tokio-rustls" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ - "bytes", + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-stream" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76066865172052eb8796c686f0b441a93df8b08d40a950b062ffb9a426f00edd" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ae4751faa60b9f96dd8344d74592e5a17c0c9a220413dbc6942d14139bbfcc" +dependencies = [ + "bytes 1.0.1", "futures-core", "futures-sink", "log", "pin-project-lite", "tokio", + "tokio-stream", ] [[package]] @@ -1470,8 +1450,7 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" dependencies = [ - "cfg-if", - "log", + "cfg-if 0.1.10", "tracing-attributes", "tracing-core", ] @@ -1520,7 +1499,7 @@ checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" dependencies = [ "base64 0.12.3", "byteorder", - "bytes", + "bytes 0.5.6", "http", "httparse", "input_buffer", @@ -1584,10 +1563,11 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna", "matches", "percent-encoding", @@ -1645,7 +1625,7 @@ version = "0.2.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "serde", "serde_json", "wasm-bindgen-macro", @@ -1672,7 +1652,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "js-sys", "wasm-bindgen", "web-sys", @@ -1727,15 +1707,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "webpki-roots" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" -dependencies = [ - "webpki", -] - [[package]] name = "webpki-roots" version = "0.20.0" @@ -1746,10 +1717,13 @@ dependencies = [ ] [[package]] -name = "winapi" -version = "0.2.8" +name = "webpki-roots" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376" +dependencies = [ + "webpki", +] [[package]] name = "winapi" @@ -1761,12 +1735,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -1779,7 +1747,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -1794,17 +1762,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", + "winapi", ] [[package]] diff --git a/youmubot-cf/Cargo.toml b/youmubot-cf/Cargo.toml index 69de86d..6a0b18c 100644 --- a/youmubot-cf/Cargo.toml +++ b/youmubot-cf/Cargo.toml @@ -7,15 +7,15 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] serde = { version = "1", features = ["derive"] } -tokio = { version = "0.2", features = ["time"] } -reqwest = "0.10.1" -serenity = "0.9" +tokio = { version = "1", features = ["time"] } +reqwest = "0.11" +serenity = "0.10" Inflector = "0.11" -codeforces = "0.2.1" +codeforces = "0.3" regex = "1" lazy_static = "1" chrono = { version = "0.4", features = ["serde"] } -dashmap = "3.11.4" +dashmap = "4" youmubot-prelude = { path = "../youmubot-prelude" } youmubot-db = { path = "../youmubot-db" } diff --git a/youmubot-cf/src/announcer.rs b/youmubot-cf/src/announcer.rs index 631a75a..c482742 100644 --- a/youmubot-cf/src/announcer.rs +++ b/youmubot-cf/src/announcer.rs @@ -96,11 +96,7 @@ async fn update_user( e.content(format!("Rating change for {}!", user_id.mention())) .embed(|c| { crate::embed::rating_change_embed( - &rc, - &info, - &contest, - &user_id.mention(), - c, + &rc, &info, &contest, user_id, c, ) }) }) diff --git a/youmubot-cf/src/embed.rs b/youmubot-cf/src/embed.rs index 2531029..3e6f45b 100644 --- a/youmubot-cf/src/embed.rs +++ b/youmubot-cf/src/embed.rs @@ -2,6 +2,7 @@ use codeforces::{Contest, RatingChange, User}; use inflector::Inflector; use serenity::{builder::CreateEmbed, utils::MessageBuilder}; use std::borrow::Borrow; +use youmubot_prelude::*; fn unwrap_or_ref<'a, T: ?Sized, B: Borrow>(opt: &'a Option, default: &'a T) -> &'a T { opt.as_ref().map(|v| v.borrow()).unwrap_or(default) @@ -59,14 +60,14 @@ pub fn rating_change_embed<'a>( rating_change: &RatingChange, user: &User, contest: &Contest, - tag: &str, + user_id: serenity::model::id::UserId, e: &'a mut CreateEmbed, ) -> &'a mut CreateEmbed { let delta = (rating_change.new_rating as i64) - (rating_change.old_rating as i64); let color = if delta < 0 { 0xff0000 } else { 0x00ff00 }; let message = if delta > 0 { MessageBuilder::new() - .push(tag) + .push(user_id.mention()) .push(" competed in ") .push_bold_safe(&contest.name) .push(", gaining ") @@ -77,7 +78,7 @@ pub fn rating_change_embed<'a>( .build() } else { MessageBuilder::new() - .push(tag) + .push(user_id.mention()) .push(" competed in ") .push_bold_safe(&contest.name) .push(", but lost ") diff --git a/youmubot-cf/src/lib.rs b/youmubot-cf/src/lib.rs index e038d8c..f0b276f 100644 --- a/youmubot-cf/src/lib.rs +++ b/youmubot-cf/src/lib.rs @@ -33,8 +33,7 @@ pub use hook::InfoHook; pub async fn setup(path: &std::path::Path, data: &mut TypeMap, announcers: &mut AnnouncerHandler) { CfSavedUsers::insert_into(data, path.join("cf_saved_users.yaml")) .expect("Must be able to set up DB"); - let http = data.get::().unwrap(); - let client = Arc::new(codeforces::Client::new(http.clone())); + let client = Arc::new(codeforces::Client::new()); data.insert::(hook::ContestCache::new(client.clone()).await.unwrap()); data.insert::(client); announcers.add("codeforces", announcer::Announcer); diff --git a/youmubot-cf/src/live.rs b/youmubot-cf/src/live.rs index b2d000f..ea8e8ed 100644 --- a/youmubot-cf/src/live.rs +++ b/youmubot-cf/src/live.rs @@ -84,7 +84,7 @@ pub async fn watch_contest( break; } // Sleep for a minute - tokio::time::delay_for(std::time::Duration::from_secs(60)).await; + tokio::time::sleep(std::time::Duration::from_secs(60)).await; } // Announce the final results diff --git a/youmubot-core/Cargo.toml b/youmubot-core/Cargo.toml index 3dc3eab..6034551 100644 --- a/youmubot-core/Cargo.toml +++ b/youmubot-core/Cargo.toml @@ -7,13 +7,13 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serenity = { version = "0.9", features = ["collector"] } +serenity = { version = "0.10", features = ["collector"] } rand = "0.7" serde = { version = "1", features = ["derive"] } chrono = "0.4" static_assertions = "1.1" futures-util = "0.3" -tokio = { version = "0.2", features = ["time"] } +tokio = { version = "1", features = ["time"] } youmubot-db = { path = "../youmubot-db" } youmubot-prelude = { path = "../youmubot-prelude" } diff --git a/youmubot-core/src/admin/mod.rs b/youmubot-core/src/admin/mod.rs index 4270883..a8accac 100644 --- a/youmubot-core/src/admin/mod.rs +++ b/youmubot-core/src/admin/mod.rs @@ -53,7 +53,7 @@ async fn clean(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult { }; msg.react(&ctx, '🌋').await?; if let Channel::Guild(_) = &channel { - tokio::time::delay_for(std::time::Duration::from_secs(2)).await; + tokio::time::sleep(std::time::Duration::from_secs(2)).await; msg.delete(&ctx).await.ok(); } diff --git a/youmubot-core/src/admin/soft_ban.rs b/youmubot-core/src/admin/soft_ban.rs index ce2b510..6350cae 100644 --- a/youmubot-core/src/admin/soft_ban.rs +++ b/youmubot-core/src/admin/soft_ban.rs @@ -148,7 +148,7 @@ pub async fn watch_soft_bans(cache_http: Arc, data: AppData) { } } // Sleep the thread for a minute - tokio::time::delay_for(std::time::Duration::from_secs(60)).await + tokio::time::sleep(std::time::Duration::from_secs(60)).await } } diff --git a/youmubot-core/src/community/mod.rs b/youmubot-core/src/community/mod.rs index 06bfc7a..974017f 100644 --- a/youmubot-core/src/community/mod.rs +++ b/youmubot-core/src/community/mod.rs @@ -104,7 +104,7 @@ pub async fn choose(ctx: &Context, m: &Message, mut args: Args) -> CommandResult .push_bold(format!("{}", users.len())) .push(" ") .push( - role.map(|r| r.mention() + "s") + role.map(|r| format!("{}s", r.mention())) .unwrap_or("potential prayers".to_owned()), ) .push(", ") diff --git a/youmubot-core/src/community/votes.rs b/youmubot-core/src/community/votes.rs index 30c3205..a18154f 100644 --- a/youmubot-core/src/community/votes.rs +++ b/youmubot-core/src/community/votes.rs @@ -195,7 +195,7 @@ pub async fn vote(ctx: &Context, msg: &Message, mut args: Args) -> CommandResult .push( votes .into_iter() - .map(|v| v.mention()) + .map(|v| v.mention().to_string()) .collect::>() .join(", "), ); diff --git a/youmubot-core/src/fun/images.rs b/youmubot-core/src/fun/images.rs index 4a28696..f41e3a1 100644 --- a/youmubot-core/src/fun/images.rs +++ b/youmubot-core/src/fun/images.rs @@ -3,7 +3,7 @@ use serenity::framework::standard::CommandError as Error; use serenity::{ framework::standard::{ macros::{check, command}, - Args, CheckResult, CommandOptions, CommandResult, Reason, + Args, CommandOptions, CommandResult, Reason, }, model::channel::{Channel, Message}, }; @@ -29,15 +29,20 @@ pub async fn image(ctx: &Context, msg: &Message, args: Args) -> CommandResult { #[check] #[name = "nsfw"] -async fn nsfw_check(ctx: &Context, msg: &Message, _: &mut Args, _: &CommandOptions) -> CheckResult { +async fn nsfw_check( + ctx: &Context, + msg: &Message, + _: &mut Args, + _: &CommandOptions, +) -> Result<(), Reason> { let channel = msg.channel_id.to_channel(&ctx).await.unwrap(); if !(match channel { Channel::Guild(guild_channel) => guild_channel.nsfw, _ => true, }) { - CheckResult::Failure(Reason::User("😣 YOU FREAKING PERVERT!!!".to_owned())) + Err(Reason::User("😣 YOU FREAKING PERVERT!!!".to_owned())) } else { - CheckResult::Success + Ok(()) } } diff --git a/youmubot-db/Cargo.toml b/youmubot-db/Cargo.toml index 709b2b9..0867527 100644 --- a/youmubot-db/Cargo.toml +++ b/youmubot-db/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serenity = "0.9" +serenity = "0.10" dotenv = "0.15" serde = { version = "1.0", features = ["derive"] } chrono = "0.4.9" diff --git a/youmubot-osu/Cargo.toml b/youmubot-osu/Cargo.toml index b13bd36..cbb8762 100644 --- a/youmubot-osu/Cargo.toml +++ b/youmubot-osu/Cargo.toml @@ -7,15 +7,15 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -serenity = "0.9" -chrono = "0.4.10" -reqwest = "0.10.1" +serenity = "0.10" +chrono = "0.4" +reqwest = "0.11" serde = { version = "1.0", features = ["derive"] } bitflags = "1" lazy_static = "1" regex = "1" -oppai-rs = "0.2.0" -dashmap = "3.11.4" +oppai-rs = "0.2" +dashmap = "4" youmubot-db = { path = "../youmubot-db" } youmubot-prelude = { path = "../youmubot-prelude" } diff --git a/youmubot-prelude/Cargo.toml b/youmubot-prelude/Cargo.toml index 3873dfe..0ed83c2 100644 --- a/youmubot-prelude/Cargo.toml +++ b/youmubot-prelude/Cargo.toml @@ -10,14 +10,14 @@ edition = "2018" anyhow = "1.0" async-trait = "0.1" futures-util = "0.3" -tokio = { version = "0.2", features = ["time"] } +tokio = { version = "1", features = ["time"] } youmubot-db = { path = "../youmubot-db" } -reqwest = "0.10" +reqwest = "0.11" chrono = "0.4" -flume = "0.9" -dashmap = "3" +flume = "0.10" +dashmap = "4" [dependencies.serenity] -version = "0.9" +version = "0.10" default-features = true features = ["collector"] diff --git a/youmubot-prelude/src/announcer.rs b/youmubot-prelude/src/announcer.rs index aed2707..495be4f 100644 --- a/youmubot-prelude/src/announcer.rs +++ b/youmubot-prelude/src/announcer.rs @@ -155,8 +155,7 @@ impl AnnouncerHandler { self.data.write().await.insert::(keys.clone()); loop { eprintln!("{}: announcer started scanning", chrono::Utc::now()); - // let after_timer = after(cooldown); - let after = tokio::time::delay_for(cooldown); + let after = tokio::time::sleep_until(tokio::time::Instant::now() + cooldown); join_all(self.announcers.iter().map(|(key, announcer)| { eprintln!(" - scanning key `{}`", key); Self::announce(self.data.clone(), self.cache_http.clone(), *key, announcer).map( diff --git a/youmubot-prelude/src/ratelimit.rs b/youmubot-prelude/src/ratelimit.rs index f9ad47b..f7557dc 100644 --- a/youmubot-prelude/src/ratelimit.rs +++ b/youmubot-prelude/src/ratelimit.rs @@ -60,7 +60,7 @@ impl<'a, T> Drop for RatelimitGuard<'a, T> { let send = self.send.clone(); let wait_time = self.wait_time.clone(); tokio::spawn(async move { - tokio::time::delay_for(wait_time).await; + tokio::time::sleep(wait_time).await; send.send_async(()).await.ok(); }); } diff --git a/youmubot/Cargo.toml b/youmubot/Cargo.toml index 6a178ad..b8c796d 100644 --- a/youmubot/Cargo.toml +++ b/youmubot/Cargo.toml @@ -12,8 +12,8 @@ osu = ["youmubot-osu"] codeforces = ["youmubot-cf"] [dependencies] -serenity = "0.9" -tokio = "0.2" +serenity = "0.10" +tokio = { version = "1", features = ["rt-multi-thread"] } dotenv = "0.15" env_logger = "0.7" youmubot-db = { path = "../youmubot-db" } diff --git a/youmubot/src/main.rs b/youmubot/src/main.rs index baf0927..e4a7d09 100644 --- a/youmubot/src/main.rs +++ b/youmubot/src/main.rs @@ -6,7 +6,6 @@ use serenity::{ model::{ channel::{Channel, Message}, gateway, - id::{ChannelId, GuildId, UserId}, permissions::Permissions, }, }; @@ -52,14 +51,14 @@ impl EventHandler for Handler { } /// Returns whether the user has "MANAGE_MESSAGES" permission in the channel. -async fn is_channel_mod(ctx: &Context, _: Option, ch: ChannelId, u: UserId) -> bool { - match ch.to_channel(&ctx).await { +async fn is_not_channel_mod(ctx: &Context, msg: &Message) -> bool { + match msg.channel_id.to_channel(&ctx).await { Ok(Channel::Guild(gc)) => gc - .permissions_for_user(&ctx, u) + .permissions_for_user(&ctx, msg.author.id) .await - .map(|perms| perms.contains(Permissions::MANAGE_MESSAGES)) - .unwrap_or(false), - _ => false, + .map(|perms| !perms.contains(Permissions::MANAGE_MESSAGES)) + .unwrap_or(true), + _ => true, } } @@ -167,7 +166,7 @@ async fn setup_framework(token: &str) -> StandardFramework { .after(after_hook) .on_dispatch_error(on_dispatch_error) .bucket("voting", |c| { - c.check(|ctx, g, ch, u| Box::pin(async move { !is_channel_mod(ctx, g, ch, u).await })) + c.check(|ctx, msg| Box::pin(is_not_channel_mod(ctx, msg))) .delay(120 /* 2 minutes */) .time_span(120) .limit(1) @@ -176,7 +175,7 @@ async fn setup_framework(token: &str) -> StandardFramework { .bucket("images", |c| c.time_span(60).limit(2)) .await .bucket("community", |c| { - c.check(|ctx, g, ch, u| Box::pin(async move { !is_channel_mod(ctx, g, ch, u).await })) + c.check(|ctx, msg| Box::pin(is_not_channel_mod(ctx, msg))) .delay(30) .time_span(30) .limit(1) @@ -224,9 +223,9 @@ async fn on_dispatch_error(ctx: &Context, msg: &Message, error: DispatchError) { msg.reply( &ctx, &match error { - DispatchError::Ratelimited(seconds) => format!( + DispatchError::Ratelimited(rl) => format!( "⏳ You are being rate-limited! Try this again in **{}**.", - youmubot_prelude::Duration(seconds), + youmubot_prelude::Duration(rl.rate_limit), ), DispatchError::NotEnoughArguments { min, given } => { format!(