From aa4a4f17d047922fe7bf342f3a2c71668313eb74 Mon Sep 17 00:00:00 2001 From: chicoferreira <36338391+chicoferreira@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:39:23 +0000 Subject: [PATCH 1/2] Update rust and dependencies version --- Cargo.lock | 320 ++++++++++++++++++++++++++++++++---------------- Cargo.toml | 16 +-- Dockerfile | 4 +- src/aoc/mod.rs | 4 +- src/discord.rs | 32 ++--- src/main.rs | 6 - src/settings.rs | 7 +- 7 files changed, 246 insertions(+), 143 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index baf68cb..dbe2f13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.3" @@ -23,6 +35,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "anyhow" version = "1.0.57" @@ -56,21 +74,15 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.39", ] -[[package]] -name = "async_once" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" - [[package]] name = "autocfg" version = "1.1.0" @@ -139,17 +151,17 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" [[package]] name = "cached" -version = "0.34.1" +version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f5cd208ba696f870238022d81ca1d80ed9d696fd62341c747f2d8f6ecdd9fe" +checksum = "c7c8c50262271cdf5abc979a5f76515c234e764fa025d1ba4862c0f0bcda0e95" dependencies = [ + "ahash", "async-trait", - "async_once", "cached_proc_macro", "cached_proc_macro_types", "futures", - "hashbrown", - "lazy_static", + "hashbrown 0.14.3", + "instant", "once_cell", "thiserror", "tokio", @@ -157,14 +169,14 @@ dependencies = [ [[package]] name = "cached_proc_macro" -version = "0.12.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bce0f37f9b77c6b93cdf3f060c89adca303d2ab052cacb3c3d1ab543e8cecd2f" +checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f" dependencies = [ - "cached_proc_macro_types", "darling", + "proc-macro2", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -228,9 +240,9 @@ dependencies = [ [[package]] name = "cron" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76219e9243e100d5a37676005f08379297f8addfebc247613299600625c734d" +checksum = "1ff76b51e4c068c52bfd2866e1567bee7c567ae8f24ada09fd4307019e25eab7" dependencies = [ "chrono", "nom", @@ -249,9 +261,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.13.4" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -259,27 +271,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.96", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -289,16 +301,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f" dependencies = [ "cfg-if", - "hashbrown", + "hashbrown 0.12.1", "lock_api", "parking_lot_core", ] [[package]] name = "digest" -version = "0.10.3" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", @@ -319,6 +331,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "flate2" version = "1.0.24" @@ -354,7 +372,6 @@ checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", - "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -377,22 +394,11 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" -[[package]] -name = "futures-executor" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" @@ -402,7 +408,7 @@ checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -423,13 +429,10 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ - "futures-channel", "futures-core", - "futures-io", "futures-macro", "futures-sink", "futures-task", - "memchr", "pin-project-lite", "pin-utils", "slab", @@ -468,7 +471,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.0", "slab", "tokio", "tokio-util", @@ -481,6 +484,16 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] + [[package]] name = "hermit-abi" version = "0.1.19" @@ -592,7 +605,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6392766afd7964e2531940894cffe4bd8d7d17dbc3c1c4857040fd4b33bdb3" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.1", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", ] [[package]] @@ -622,15 +654,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "leaky-bucket-lite" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1411c737dd21a748044ab29af14b7f920b2dcc277284df6dd986492c98bf5229" -dependencies = [ - "tokio", -] - [[package]] name = "libc" version = "0.2.126" @@ -762,9 +785,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.12.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "ordered-float" @@ -775,6 +798,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + [[package]] name = "parking_lot_core" version = "0.9.3" @@ -820,18 +853,18 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.18" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -974,9 +1007,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.137" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] @@ -993,13 +1026,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.39", ] [[package]] @@ -1021,7 +1054,16 @@ checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", +] + +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", ] [[package]] @@ -1037,10 +1079,10 @@ dependencies = [ ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -1112,6 +1154,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "termcolor" version = "1.1.3" @@ -1138,7 +1191,7 @@ checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -1197,6 +1250,7 @@ dependencies = [ "mio", "num_cpus", "once_cell", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -1212,7 +1266,7 @@ checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -1228,9 +1282,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" dependencies = [ "futures-util", "log", @@ -1258,11 +1312,36 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -1291,7 +1370,7 @@ checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", ] [[package]] @@ -1311,9 +1390,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.17.2" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" dependencies = [ "base64", "byteorder", @@ -1323,7 +1402,7 @@ dependencies = [ "log", "rand", "rustls", - "sha-1", + "sha1", "thiserror", "url", "utf-8", @@ -1332,9 +1411,9 @@ dependencies = [ [[package]] name = "twilight-cache-inmemory" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb4194e0a62066437c1022905cb9486659202a0c3592aeb28cae95ddecbcddcf" +checksum = "0f5a9338cc26a6ffa77932c6386b227714e1a9b75f5cf644739d0c3605e19a95" dependencies = [ "bitflags", "dashmap", @@ -1344,14 +1423,14 @@ dependencies = [ [[package]] name = "twilight-gateway" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d952446d4dc7189d0908b48f254e94fdc154de88d45a55841c1cfcc76803180" +checksum = "30be5c7e2b13b4a59e0f93344c070c23404279a318a324eece1f4384ead47d86" dependencies = [ "bitflags", "flate2", "futures-util", - "leaky-bucket-lite", + "rand", "rustls", "serde", "serde_json", @@ -1359,28 +1438,25 @@ dependencies = [ "tokio-tungstenite", "tracing", "twilight-gateway-queue", - "twilight-http", "twilight-model", - "url", "webpki-roots", ] [[package]] name = "twilight-gateway-queue" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f7951f688ea81c7f68bad1cfabbe1bb6bcc08984347e3075d20923b65ff2041" +checksum = "3073747da8e1d09bc5383eed750451c9534021c8206a20092405b9855b3cb35a" dependencies = [ "tokio", "tracing", - "twilight-http", ] [[package]] name = "twilight-http" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02713ac747c27448be764d6629dcf4d07fbcd8fc855096b6e0ab6717c685be0" +checksum = "c78b55d912a58814dbfc4dc3cfb9496c7e83eb6ec738b1cc4c359ba0d2ff2dd8" dependencies = [ "brotli", "hyper", @@ -1398,9 +1474,9 @@ dependencies = [ [[package]] name = "twilight-http-ratelimiting" -version = "0.11.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8329e421d810eb18ddd41c3c1b78cbc6cd9e82b70850ac3f70d4e6d93e9ff72" +checksum = "aa4a03343ff60a8d5b5b722ce4b0b7e266ace6cc3e9143544a840d3cc127f02b" dependencies = [ "futures-util", "http", @@ -1410,23 +1486,22 @@ dependencies = [ [[package]] name = "twilight-model" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c44d87f62a032ea0d8053481672844cab0115330d99d655791be94a31d585256" +checksum = "276bd50f4817b3b421395afac89f5d7b61fdfd0f00a28b2a7db983e4878b4a1a" dependencies = [ "bitflags", "serde", "serde-value", "serde_repr", "time 0.3.9", - "tracing", ] [[package]] name = "twilight-util" -version = "0.11.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f54602b3265361fb7337abc5305d93b7e70faa0b1e76fe59a264144936543" +checksum = "fe3149347d8222e042a55deba80cd32f93f14770bbb845b8e4cfbd70a5062c56" dependencies = [ "twilight-model", "twilight-validate", @@ -1434,9 +1509,9 @@ dependencies = [ [[package]] name = "twilight-validate" -version = "0.11.0" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d8ee22c7e5321064abdd9ad1c6a7f0a7502db11db018a2f72326c9314bcea41" +checksum = "3595d5ad595d8d3a97096a01899b53d3a8117ab16deda27526b315a1db815da4" dependencies = [ "twilight-model", ] @@ -1547,7 +1622,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn", + "syn 1.0.96", "wasm-bindgen-shared", ] @@ -1581,7 +1656,7 @@ checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1695,6 +1770,15 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "winnow" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -1703,3 +1787,23 @@ checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] + +[[package]] +name = "zerocopy" +version = "0.7.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] diff --git a/Cargo.toml b/Cargo.toml index 8df8b5e..ac23aa8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,10 +10,10 @@ license = "AGPL-3.0-only" [dependencies] anyhow = "1.0.57" -cached = "0.34.1" +cached = { version = "0.46.1", features = ["async"] } chrono = { version = "0.4.19", features = ["serde"] } chrono-humanize = "0.2.1" -cron = "0.11.0" +cron = "0.12.0" dotenv = "0.15.0" futures-util = "0.3.21" humantime = "2.1.0" @@ -22,9 +22,9 @@ reqwest = { version = "0.11.11", default-features = false, features = ["json", " serde = { version = "1.0.137", features = ["derive"] } simplelog = "0.12.0" tokio = { version = "1.19.2", features = ["fs", "macros", "rt-multi-thread", "signal"] } -toml = "0.5.9" -twilight-cache-inmemory = "0.11.0" -twilight-gateway = { version = "0.11.0", default-features = false, features = ["rustls-webpki-roots", "zlib-stock"] } -twilight-http = { version = "0.11.0", default-features = false, features = ["decompression", "rustls-webpki-roots"] } -twilight-model = "0.11.0" -twilight-util = { version = "0.11.0", features = ["builder"] } +toml = "0.8.8" +twilight-cache-inmemory = "0.15.4" +twilight-gateway = { version = "0.15.4", default-features = false, features = ["rustls-webpki-roots", "zlib-stock"] } +twilight-http = { version = "0.15.4", default-features = false, features = ["decompression", "rustls-webpki-roots"] } +twilight-model = "0.15.4" +twilight-util = { version = "0.15.4", features = ["builder"] } diff --git a/Dockerfile b/Dockerfile index f3614a4..ecb3491 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM rust:1.56 as builder +FROM rust:1.74 as builder WORKDIR /volume RUN apt-get update && \ - apt-get install -y --no-install-recommends musl-tools=1.2.2-1 && \ + apt-get install -y --no-install-recommends musl-tools=1.2.3-1 && \ rustup target add x86_64-unknown-linux-musl COPY src/ src/ diff --git a/src/aoc/mod.rs b/src/aoc/mod.rs index 6262638..9bf7ada 100644 --- a/src/aoc/mod.rs +++ b/src/aoc/mod.rs @@ -10,13 +10,13 @@ use serde::Deserialize; #[derive(Clone, Debug, Deserialize)] pub struct LeaderboardStats { pub event: String, - pub owner_id: String, + pub owner_id: u32, pub members: HashMap, } #[derive(Clone, Debug, Deserialize)] pub struct User { - pub id: String, + pub id: u32, pub name: Option, pub stars: u32, pub local_score: u32, diff --git a/src/discord.rs b/src/discord.rs index 89d12da..af7bae9 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -1,27 +1,26 @@ use anyhow::Result; -use futures_util::stream::StreamExt; -use log::{debug, error, info}; +use log::{debug, error}; use tokio::sync::mpsc::Sender; use twilight_cache_inmemory::{InMemoryCache, ResourceType}; -use twilight_gateway::{shard::Events, Event, EventTypeFlags, Shard}; +use twilight_gateway::{Config, Event, EventTypeFlags, Shard}; use twilight_http::Client as HttpClient; use twilight_model::{channel::Message, gateway::Intents, user::User}; +use twilight_model::gateway::{CloseFrame, ShardId}; use crate::settings::Discord; pub async fn start(settings: &Discord, sender: Sender) -> Result<()> { // Use intents to only receive guild message events. - let (shard, events) = Shard::builder(settings.bot_token.clone(), Intents::GUILD_MESSAGES) + let config = Config::builder(settings.bot_token.clone(), Intents::GUILD_MESSAGES | Intents::MESSAGE_CONTENT) .event_types( EventTypeFlags::MESSAGE_CREATE | EventTypeFlags::MESSAGE_DELETE | EventTypeFlags::MESSAGE_DELETE_BULK | EventTypeFlags::MESSAGE_UPDATE, ) - .build() - .await?; - - shard.start().await?; + .build(); + let shard = Shard::with_config(ShardId::ONE, config); + let shard_messages = shard.sender(); debug!("Shard set up"); @@ -31,7 +30,9 @@ pub async fn start(settings: &Discord, sender: Sender) -> } debug!("Stopping shard"); - shard.shutdown(); + if let Err(e) = shard_messages.close(CloseFrame::NORMAL) { + error!("Failed closing shard: {}", e); + } }); // Since we only care about new messages, make the cache only @@ -42,17 +43,17 @@ pub async fn start(settings: &Discord, sender: Sender) -> .build(); // Handle Discord events on a separate task. - tokio::spawn(handle_events(events, cache, sender)); + tokio::spawn(handle_events(shard, cache, sender)); Ok(()) } async fn handle_events( - mut events: Events, + mut shard: Shard, cache: InMemoryCache, sender: Sender, ) { - while let Some(event) = events.next().await { + while let Ok(event) = shard.next_event().await { debug!("Received event : {:?}", event); cache.update(&event); @@ -67,10 +68,13 @@ async fn handle_events( }; if sender.send(msg).await.is_err() { - return; + break; } } - Event::ShardConnected(conn) => info!("Connected on shard {}", conn.shard_id), + Event::GatewayClose(_) => { + debug!("Shutting down"); + break; + } _ => {} } } diff --git a/src/main.rs b/src/main.rs index 00d6fa1..2211b54 100644 --- a/src/main.rs +++ b/src/main.rs @@ -115,7 +115,6 @@ async fn handle_event( let r = discord_client .create_message(msg.channel_id.into()) .content(":ping_pong: Pong! - Latency [000]ms")? - .exec() .await?; let resmsg = r.model().await?; discord_client @@ -127,7 +126,6 @@ async fn handle_event( ) .as_str(), ))? - .exec() .await?; } Event::AdventOfCode(msg) => { @@ -179,7 +177,6 @@ async fn handle_event( discord_client .create_message(msg.channel_id.into()) .embeds(&[embed.build()])? - .exec() .await?; } Event::FourtyTwo(msg) => { @@ -191,7 +188,6 @@ async fn handle_event( The Answer to the Ultimate Question of Life, \ the Universe, and Everything is 42", )? - .exec() .await?; } Event::TopThree(msg) => { @@ -203,7 +199,6 @@ async fn handle_event( if uvec.len() < 3 { discord_client.create_message(msg.channel_id.into()) .content(":exclamation: Sorry, but there are not 3 people on your leaderboard, and you do not fill these 3 steps alone")? - .exec() .await?; return Ok(()); } @@ -249,7 +244,6 @@ async fn handle_event( discord_client .create_message(msg.channel_id.into()) .content(&text)? - .exec() .await?; } _ => {} diff --git a/src/settings.rs b/src/settings.rs index 02709e1..71fca29 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -223,7 +223,7 @@ async fn load_toml(path: &str) -> Result where T: Default + DeserializeOwned, { - let content = match fs::read(path).await { + let content = match fs::read_to_string(path).await { Ok(content) => content, Err(e) if e.kind() == ErrorKind::NotFound => return Ok(T::default()), Err(e) => { @@ -231,6 +231,7 @@ where } }; - toml::from_slice(&content) - .with_context(|| format!("failed to parse TOML config from '{}'", path)) + toml::from_str(&content) + .map_err(anyhow::Error::from) + .context(format!("failed parsing config file at '{}'", path)) } From e48c2e9af7829397c0ea50ee069d19eb9618ba28 Mon Sep 17 00:00:00 2001 From: chicoferreira <36338391+chicoferreira@users.noreply.github.com> Date: Sun, 3 Dec 2023 15:11:49 +0000 Subject: [PATCH 2/2] Change cache time to 900 seconds (15 minutes) --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 2211b54..3ae56a2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -84,7 +84,7 @@ async fn main() -> Result<()> { } #[cached( - time = 7200, + time = 900, result = true, with_cached_flag = true, key = "String",