From f80565f86883745fc319b9d1ee13be10fe3fc019 Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Fri, 7 Nov 2025 21:54:29 +0800 Subject: [PATCH] no DISCORD --- dns/Cargo.lock | 566 +--------------------------------- dns/Cargo.toml | 1 - dns/config.template.toml | 7 +- dns/src/config/mod.rs | 7 +- dns/src/config/structs.rs | 7 +- dns/src/discord_bot.rs | 265 ---------------- dns/src/gurt_server.rs | 9 +- dns/src/gurt_server/routes.rs | 22 +- dns/src/main.rs | 1 - 9 files changed, 18 insertions(+), 867 deletions(-) delete mode 100644 dns/src/discord_bot.rs diff --git a/dns/Cargo.lock b/dns/Cargo.lock index 6db7ec2..15082e2 100644 --- a/dns/Cargo.lock +++ b/dns/Cargo.lock @@ -115,26 +115,6 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "async-trait" -version = "0.1.88" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "atoi" version = "2.0.0" @@ -225,7 +205,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.2", + "bitflags", "cexpr", "clang-sys", "itertools", @@ -242,12 +222,6 @@ dependencies = [ "which", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.9.2" @@ -282,12 +256,6 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "bytecount" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" - [[package]] name = "byteorder" version = "1.5.0" @@ -300,37 +268,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" -[[package]] -name = "camino" -version = "1.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" -dependencies = [ - "camino", - "cargo-platform", - "semver", - "serde", - "serde_json", -] - [[package]] name = "cc" version = "1.2.33" @@ -468,33 +405,12 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "command_attr" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcc89439e1bb4e19050a9586a767781a3060000d2f3296fd2a40597ad9421c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "const-oid" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation" version = "0.10.1" @@ -535,24 +451,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-queue" version = "0.3.12" @@ -599,20 +497,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown", - "lock_api", - "once_cell", - "parking_lot_core", - "serde", -] - [[package]] name = "data-encoding" version = "2.9.0" @@ -637,7 +521,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", - "serde", ] [[package]] @@ -738,15 +621,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "error-chain" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" -dependencies = [ - "version_check", -] - [[package]] name = "etcetera" version = "0.8.0" @@ -770,16 +644,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "flume" version = "0.11.1" @@ -927,15 +791,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -984,7 +839,7 @@ dependencies = [ "serde_json", "thiserror 1.0.61", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tracing", "url", ] @@ -1180,20 +1035,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "iana-time-zone" version = "0.1.60" @@ -1246,12 +1087,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - [[package]] name = "is-terminal" version = "0.4.12" @@ -1332,12 +1167,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "levenshtein" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" - [[package]] name = "libc" version = "0.2.155" @@ -1366,7 +1195,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.2", + "bitflags", "libc", "redox_syscall", ] @@ -1445,21 +1274,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "mini-moka" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803" -dependencies = [ - "crossbeam-channel", - "crossbeam-utils", - "dashmap", - "skeptic", - "smallvec", - "tagptr", - "triomphe", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1608,7 +1422,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -1814,17 +1628,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "pulldown-cmark" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" -dependencies = [ - "bitflags 2.9.2", - "memchr", - "unicase", -] - [[package]] name = "quote" version = "1.0.36" @@ -1870,7 +1673,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.9.2", + "bitflags", ] [[package]] @@ -1913,50 +1716,6 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body", - "hyper", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "mime_guess", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - [[package]] name = "ring" version = "0.17.8" @@ -2010,7 +1769,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.9.2", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -2023,26 +1782,11 @@ version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ - "log", "ring", "rustls-webpki 0.101.7", "sct", ] -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.31" @@ -2107,17 +1851,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustls-webpki" version = "0.103.4" @@ -2142,15 +1875,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "schannel" version = "0.1.27" @@ -2182,24 +1906,14 @@ dependencies = [ "untrusted", ] -[[package]] -name = "secrecy" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" -dependencies = [ - "serde", - "zeroize", -] - [[package]] name = "security-framework" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" dependencies = [ - "bitflags 2.9.2", - "core-foundation 0.10.1", + "bitflags", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -2215,15 +1929,6 @@ dependencies = [ "libc", ] -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ - "serde", -] - [[package]] name = "serde" version = "1.0.219" @@ -2233,15 +1938,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_cow" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7bbbec7196bfde255ab54b65e34087c0849629280028238e67ee25d6a4b7da" -dependencies = [ - "serde", -] - [[package]] name = "serde_derive" version = "1.0.219" @@ -2285,43 +1981,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serenity" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d72ec4323681bf9a3cabe40fd080abc2435859b502a1b5aa9bf693f125bfa76" -dependencies = [ - "arrayvec", - "async-trait", - "base64 0.22.1", - "bitflags 2.9.2", - "bytes", - "chrono", - "command_attr", - "dashmap", - "flate2", - "futures", - "fxhash", - "levenshtein", - "mime_guess", - "parking_lot", - "percent-encoding", - "reqwest", - "secrecy", - "serde", - "serde_cow", - "serde_json", - "static_assertions", - "time", - "tokio", - "tokio-tungstenite", - "tracing", - "typemap_rev", - "typesize", - "url", - "uwl", -] - [[package]] name = "sha1" version = "0.10.6" @@ -2381,21 +2040,6 @@ dependencies = [ "time", ] -[[package]] -name = "skeptic" -version = "0.13.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8" -dependencies = [ - "bytecount", - "cargo_metadata", - "error-chain", - "glob", - "pulldown-cmark", - "tempfile", - "walkdir", -] - [[package]] name = "slab" version = "0.4.9" @@ -2510,7 +2154,7 @@ dependencies = [ "tracing", "url", "uuid", - "webpki-roots 0.25.4", + "webpki-roots", ] [[package]] @@ -2560,7 +2204,7 @@ checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" dependencies = [ "atoi", "base64 0.21.7", - "bitflags 2.9.2", + "bitflags", "byteorder", "bytes", "chrono", @@ -2604,7 +2248,7 @@ checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" dependencies = [ "atoi", "base64 0.21.7", - "bitflags 2.9.2", + "bitflags", "byteorder", "chrono", "crc", @@ -2661,12 +2305,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "stringprep" version = "0.1.5" @@ -2712,39 +2350,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - [[package]] name = "tempfile" version = "3.12.0" @@ -2894,27 +2499,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -2944,12 +2528,8 @@ checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" dependencies = [ "futures-util", "log", - "rustls 0.22.4", - "rustls-pki-types", "tokio", - "tokio-rustls 0.25.0", "tungstenite", - "webpki-roots 0.26.11", ] [[package]] @@ -3037,12 +2617,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "triomphe" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" - [[package]] name = "try-lock" version = "0.2.5" @@ -3062,55 +2636,18 @@ dependencies = [ "httparse", "log", "rand", - "rustls 0.22.4", - "rustls-pki-types", "sha1", "thiserror 1.0.61", "url", "utf-8", ] -[[package]] -name = "typemap_rev" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b08b0c1257381af16a5c3605254d529d3e7e109f3c62befc5d168968192998" - [[package]] name = "typenum" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "typesize" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da66c62c5b7017a2787e77373c03e6a5aafde77a73bff1ff96e91cd2e128179" -dependencies = [ - "chrono", - "dashmap", - "hashbrown", - "mini-moka", - "parking_lot", - "secrecy", - "serde_json", - "time", - "typesize-derive", - "url", -] - -[[package]] -name = "typesize-derive" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536b6812192bda8551cfa0e52524e328c6a951b48e66529ee4522d6c721243d6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "unicase" version = "2.8.1" @@ -3177,7 +2714,6 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] [[package]] @@ -3207,12 +2743,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "uwl" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4bf03e0ca70d626ecc4ba6b0763b934b6f2976e8c744088bb3c1d646fbb1ad0" - [[package]] name = "vcpkg" version = "0.2.15" @@ -3225,16 +2755,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -3310,18 +2830,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.92" @@ -3351,53 +2859,12 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" -[[package]] -name = "wasm-streams" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "webpki-roots" version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.2", -] - -[[package]] -name = "webpki-roots" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webx_dns" version = "0.0.1" @@ -3421,7 +2888,6 @@ dependencies = [ "regex", "serde", "serde_json", - "serenity", "sha2", "sqlx", "tokio", @@ -3649,16 +3115,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "zerocopy" version = "0.7.34" diff --git a/dns/Cargo.toml b/dns/Cargo.toml index a7fba23..9ec9384 100644 --- a/dns/Cargo.toml +++ b/dns/Cargo.toml @@ -9,7 +9,6 @@ toml = "0.8.13" regex = "1.10.4" jsonwebtoken = "9.2" bcrypt = "0.15" -serenity = { version = "0.12", features = ["client", "gateway", "rustls_backend", "model"] } chrono = { version = "0.4", features = ["serde"] } colored = "2.1.0" sqlx = { version = "0.7", features = ["runtime-tokio-rustls", "postgres", "chrono", "uuid", "migrate", "json"] } diff --git a/dns/config.template.toml b/dns/config.template.toml index 3ccd510..6cf8702 100644 --- a/dns/config.template.toml +++ b/dns/config.template.toml @@ -45,12 +45,7 @@ tld_list = [ # Words that are not allowed in domain names offensive_words = [] -[discord] -# Discord bot token for domain approval notifications -bot_token = "your-discord-bot-token-here" - -# Channel ID where domain approval messages will be sent -channel_id = 0 +# Discord bot configuration has been removed [auth] # JWT secret key for authentication (change this!) diff --git a/dns/src/config/mod.rs b/dns/src/config/mod.rs index 7bac028..f357e77 100644 --- a/dns/src/config/mod.rs +++ b/dns/src/config/mod.rs @@ -5,7 +5,7 @@ use colored::Colorize; use macros_rs::fmt::{crashln, string}; use sqlx::{PgPool, Error}; use std::fs::write; -use structs::{Auth, Database, Discord, Server, Settings}; +use structs::{Auth, Database, Server, Settings}; pub use structs::Config; @@ -28,10 +28,7 @@ impl Config { cert_path: "localhost+2.pem".into(), key_path: "localhost+2-key.pem".into(), }, - discord: Discord { - bot_token: "".into(), - channel_id: 0, - }, + // Discord configuration has been removed auth: Auth { jwt_secret: "your-secret-key-here".into(), }, diff --git a/dns/src/config/structs.rs b/dns/src/config/structs.rs index ef20887..5355360 100644 --- a/dns/src/config/structs.rs +++ b/dns/src/config/structs.rs @@ -6,7 +6,6 @@ pub struct Config { pub config_path: String, pub(crate) server: Server, pub(crate) settings: Settings, - pub(crate) discord: Discord, pub(crate) auth: Auth, } @@ -31,11 +30,7 @@ pub struct Settings { pub(crate) offensive_words: Vec, } -#[derive(Clone, Debug, Deserialize, Serialize)] -pub struct Discord { - pub(crate) bot_token: String, - pub(crate) channel_id: u64, -} +// Discord struct has been removed #[derive(Clone, Debug, Deserialize, Serialize)] pub struct Auth { diff --git a/dns/src/discord_bot.rs b/dns/src/discord_bot.rs deleted file mode 100644 index 086b75f..0000000 --- a/dns/src/discord_bot.rs +++ /dev/null @@ -1,265 +0,0 @@ -use serenity::async_trait; -use serenity::all::*; -use sqlx::PgPool; - -#[derive(Debug)] -pub struct DomainRegistration { - pub id: i32, - pub domain_name: String, - pub tld: String, - pub user_id: i32, - pub username: String, -} - -pub struct BotHandler { - pub pool: PgPool, -} - -#[async_trait] -impl EventHandler for BotHandler { - async fn ready(&self, _: Context, ready: Ready) { - log::info!("Discord bot {} is connected!", ready.user.name); - } - - async fn interaction_create(&self, ctx: Context, interaction: Interaction) { - match interaction { - Interaction::Component(component) => { - let custom_id = &component.data.custom_id; - - if custom_id.starts_with("approve_") { - let domain_id: i32 = match custom_id.strip_prefix("approve_").unwrap().parse() { - Ok(id) => id, - Err(_) => { - log::error!("Invalid domain ID in approve button"); - return; - } - }; - - // Get domain info for the updated embed - let domain: Option<(String, String, String)> = sqlx::query_as( - "SELECT d.name, d.tld, u.username FROM domains d JOIN users u ON d.user_id = u.id WHERE d.id = $1" - ) - .bind(domain_id) - .fetch_optional(&self.pool) - .await - .unwrap_or(None); - - if let Some((name, tld, username)) = domain { - // Update domain status to approved - match sqlx::query("UPDATE domains SET status = 'approved' WHERE id = $1") - .bind(domain_id) - .execute(&self.pool) - .await - { - Ok(_) => { - // First, send ephemeral confirmation - let response = CreateInteractionResponse::Message( - CreateInteractionResponseMessage::new() - .content("✅ Domain approved!") - .ephemeral(true) - ); - - if let Err(e) = component.create_response(&ctx.http, response).await { - log::error!("Error responding to interaction: {}", e); - return; - } - - // Then edit the original message with green color and no buttons - let updated_embed = CreateEmbed::new() - .title("✅ Domain Registration - APPROVED") - .field("Domain", format!("{}.{}", name, tld), true) - .field("User", username, true) - .field("Status", "Approved", true) - .color(0x00ff00); // Green color - - let edit_message = EditMessage::new() - .embed(updated_embed) - .components(vec![]); // Remove buttons - - let mut message = component.message.clone(); - if let Err(e) = message.edit(&ctx.http, edit_message).await { - log::error!("Error updating original message: {}", e); - } - } - Err(e) => { - log::error!("Error approving domain: {}", e); - let response = CreateInteractionResponse::Message( - CreateInteractionResponseMessage::new() - .content("❌ Error approving domain") - .ephemeral(true) - ); - let _ = component.create_response(&ctx.http, response).await; - } - } - } - } else if custom_id.starts_with("deny_") { - let domain_id = custom_id.strip_prefix("deny_").unwrap(); - - // Create modal for denial reason - let modal = CreateModal::new( - format!("deny_modal_{}", domain_id), - "Deny Domain Registration" - ) - .components(vec![ - CreateActionRow::InputText( - CreateInputText::new( - InputTextStyle::Paragraph, - "Reason", - "reason" - ) - .placeholder("Please provide a reason for denying this domain registration") - .required(true) - ) - ]); - - let response = CreateInteractionResponse::Modal(modal); - - if let Err(e) = component.create_response(&ctx.http, response).await { - log::error!("Error showing modal: {}", e); - } - } - } - Interaction::Modal(modal_submit) => { - if modal_submit.data.custom_id.starts_with("deny_modal_") { - let domain_id: i32 = match modal_submit.data.custom_id.strip_prefix("deny_modal_").unwrap().parse() { - Ok(id) => id, - Err(_) => { - log::error!("Invalid domain ID in deny modal"); - return; - } - }; - - // Get the reason from modal input - let reason = modal_submit.data.components.get(0) - .and_then(|row| row.components.get(0)) - .and_then(|component| { - if let ActionRowComponent::InputText(input) = component { - input.value.as_ref().map(|v| v.as_str()) - } else { - None - } - }) - .unwrap_or("No reason provided"); - - // Get domain info for the updated embed - let domain: Option<(String, String, String)> = sqlx::query_as( - "SELECT d.name, d.tld, u.username FROM domains d JOIN users u ON d.user_id = u.id WHERE d.id = $1" - ) - .bind(domain_id) - .fetch_optional(&self.pool) - .await - .unwrap_or(None); - - if let Some((name, tld, username)) = domain { - // Update domain status to denied with reason - match sqlx::query("UPDATE domains SET status = 'denied', denial_reason = $1 WHERE id = $2") - .bind(reason) - .bind(domain_id) - .execute(&self.pool) - .await - { - Ok(_) => { - // First, send ephemeral confirmation - let response = CreateInteractionResponse::Message( - CreateInteractionResponseMessage::new() - .content("❌ Domain denied!") - .ephemeral(true) - ); - - if let Err(e) = modal_submit.create_response(&ctx.http, response).await { - log::error!("Error responding to modal: {}", e); - return; - } - - // Then edit the original message with red color and no buttons - let updated_embed = CreateEmbed::new() - .title("❌ Domain Registration - DENIED") - .field("Domain", format!("{}.{}", name, tld), true) - .field("User", username, true) - .field("Status", "Denied", true) - .field("Reason", reason, false) - .color(0xff0000); // Red color - - let edit_message = EditMessage::new() - .embed(updated_embed) - .components(vec![]); // Remove buttons - - if let Some(mut message) = modal_submit.message.clone() { - if let Err(e) = message.edit(&ctx.http, edit_message).await { - log::error!("Error updating original message: {}", e); - } - } else { - log::error!("Original message not found for editing"); - } - } - Err(e) => { - log::error!("Error denying domain: {}", e); - let response = CreateInteractionResponse::Message( - CreateInteractionResponseMessage::new() - .content("❌ Error denying domain") - .ephemeral(true) - ); - let _ = modal_submit.create_response(&ctx.http, response).await; - } - } - } - } - } - _ => { - // Handle other interaction types if needed - log::debug!("Unhandled interaction type: {:?}", interaction.kind()); - } - } - } -} - -pub async fn send_domain_approval_request( - channel_id: u64, - registration: DomainRegistration, - bot_token: &str, -) -> Result<(), Box> { - let http = serenity::http::Http::new(bot_token); - - let embed = CreateEmbed::new() - .title("Domain request") - .field("Domain", format!("{}.{}", registration.domain_name, registration.tld), true) - .field("User", ®istration.username, true) - .field("User ID", registration.user_id.to_string(), true) - .field("Status", "Pending Review", true) - .color(0x808080); // Gray color for pending - - let approve_button = CreateButton::new(format!("approve_{}", registration.id)) - .style(ButtonStyle::Success) - .label("✅ Approve"); - - let deny_button = CreateButton::new(format!("deny_{}", registration.id)) - .style(ButtonStyle::Danger) - .label("❌ Deny"); - - let action_row = CreateActionRow::Buttons(vec![approve_button, deny_button]); - - let message = CreateMessage::new() - .embed(embed) - .components(vec![action_row]); - - let channel_id = ChannelId::new(channel_id); - channel_id.send_message(&http, message).await?; - - Ok(()) -} - -pub async fn start_discord_bot(token: String, pool: PgPool) -> Result<(), Box> { - let intents = GatewayIntents::GUILD_MESSAGES | GatewayIntents::MESSAGE_CONTENT; - - let mut client = Client::builder(&token, intents) - .event_handler(BotHandler { pool }) - .await?; - - tokio::spawn(async move { - if let Err(e) = client.start().await { - log::error!("Discord bot error: {}", e); - } - }); - - Ok(()) -} \ No newline at end of file diff --git a/dns/src/gurt_server.rs b/dns/src/gurt_server.rs index 8462536..412bef0 100644 --- a/dns/src/gurt_server.rs +++ b/dns/src/gurt_server.rs @@ -4,7 +4,7 @@ mod models; mod routes; mod ca; -use crate::{auth::jwt_middleware_gurt, config::Config, discord_bot}; +use crate::{auth::jwt_middleware_gurt, config::Config}; use colored::Colorize; use macros_rs::fmt::{crashln, string}; use std::{sync::Arc, collections::HashMap}; @@ -208,12 +208,7 @@ pub async fn start(cli: crate::Cli) -> std::io::Result<()> { Err(err) => crashln!("Failed to connect to PostgreSQL database.\n{}", string!(err).white()), }; - // Start Discord bot - if !config.discord.bot_token.is_empty() { - if let Err(e) = discord_bot::start_discord_bot(config.discord.bot_token.clone(), db.clone()).await { - log::error!("Failed to start Discord bot: {}", e); - } - } + // Discord bot component has been removed let jwt_secret = config.auth.jwt_secret.clone(); let app_state = AppState::new(config.clone(), db, jwt_secret); diff --git a/dns/src/gurt_server/routes.rs b/dns/src/gurt_server/routes.rs index c09fb7e..2d65ddf 100644 --- a/dns/src/gurt_server/routes.rs +++ b/dns/src/gurt_server/routes.rs @@ -1,6 +1,5 @@ use super::{models::*, AppState}; use crate::auth::Claims; -use crate::discord_bot::{send_domain_approval_request, DomainRegistration}; use base64::{engine::general_purpose, Engine as _}; use gurtlib::prelude::*; use rand::{rngs::OsRng, Rng}; @@ -128,26 +127,7 @@ pub(crate) async fn create_logic(domain: Domain, user_id: i32, app: &AppState) - return Err(GurtError::invalid_message("No registrations remaining")); } - if !app.config.discord.bot_token.is_empty() && app.config.discord.channel_id != 0 { - let domain_registration = DomainRegistration { - id: domain_id, - domain_name: domain.name.clone(), - tld: domain.tld.clone(), - user_id, - username: username.clone(), - }; - - let channel_id = app.config.discord.channel_id; - let bot_token = app.config.discord.bot_token.clone(); - - tokio::spawn(async move { - if let Err(e) = - send_domain_approval_request(channel_id, domain_registration, &bot_token).await - { - log::error!("Failed to send Discord notification: {}", e); - } - }); - } + // Discord notification functionality has been removed Ok(domain) } diff --git a/dns/src/main.rs b/dns/src/main.rs index b22f33a..bd20844 100644 --- a/dns/src/main.rs +++ b/dns/src/main.rs @@ -1,7 +1,6 @@ mod config; mod gurt_server; mod auth; -mod discord_bot; mod crypto; use clap::{Parser, Subcommand};