merge: branch 'master' into insert/dev-branch

This commit is contained in:
Paul Makles
2023-08-26 13:34:44 +01:00
13 changed files with 189 additions and 94 deletions

144
Cargo.lock generated
View File

@@ -421,6 +421,12 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "base64"
version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]] [[package]]
name = "binascii" name = "binascii"
version = "0.1.4" version = "0.1.4"
@@ -519,7 +525,7 @@ dependencies = [
"serde", "serde",
"serde_bytes", "serde_bytes",
"serde_json", "serde_json",
"uuid", "uuid 0.8.2",
] ]
[[package]] [[package]]
@@ -798,12 +804,12 @@ dependencies = [
[[package]] [[package]]
name = "debugid" name = "debugid"
version = "0.7.3" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6ee87af31d84ef885378aebca32be3d682b0e0dc119d5b4860a2c5bb5046730" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
dependencies = [ dependencies = [
"serde", "serde",
"uuid", "uuid 1.4.1",
] ]
[[package]] [[package]]
@@ -1001,6 +1007,18 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "findshlibs"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
dependencies = [
"cc",
"lazy_static",
"libc",
"winapi 0.3.9",
]
[[package]] [[package]]
name = "fnv" name = "fnv"
version = "1.0.7" version = "1.0.7"
@@ -2006,7 +2024,7 @@ dependencies = [
"trust-dns-proto", "trust-dns-proto",
"trust-dns-resolver", "trust-dns-resolver",
"typed-builder", "typed-builder",
"uuid", "uuid 0.8.2",
"webpki-roots", "webpki-roots",
] ]
@@ -2232,11 +2250,12 @@ dependencies = [
[[package]] [[package]]
name = "os_info" name = "os_info"
version = "3.4.0" version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eca3ecae1481e12c3d9379ec541b238a16f0b75c9a409942daa8ec20dbfdb62" checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
dependencies = [ dependencies = [
"log", "log",
"serde",
"winapi 0.3.9", "winapi 0.3.9",
] ]
@@ -2693,7 +2712,7 @@ dependencies = [
[[package]] [[package]]
name = "redis" name = "redis"
version = "0.22.3" version = "0.22.3"
source = "git+https://github.com/insertish/redis-rs?rev=1a41faf356fd21aebba71cea7eb7eb2653e5f0ef#1a41faf356fd21aebba71cea7eb7eb2653e5f0ef" source = "git+https://github.com/revoltchat/redis-rs?rev=1a41faf356fd21aebba71cea7eb7eb2653e5f0ef#1a41faf356fd21aebba71cea7eb7eb2653e5f0ef"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-trait", "async-trait",
@@ -2712,9 +2731,8 @@ dependencies = [
[[package]] [[package]]
name = "redis" name = "redis"
version = "0.23.0" version = "0.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/revoltchat/redis-rs?rev=f8ca28ab85da59d2ccde526b4d2fb390eff5a5f9#f8ca28ab85da59d2ccde526b4d2fb390eff5a5f9"
checksum = "3ea8c51b5dc1d8e5fd3350ec8167f464ec0995e79f2e90a075b63371500d557f"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-trait", "async-trait",
@@ -2740,7 +2758,7 @@ dependencies = [
"lazy_static", "lazy_static",
"mobc", "mobc",
"mobc-redis", "mobc-redis",
"redis 0.23.0", "redis 0.23.1",
"rmp-serde", "rmp-serde",
"serde", "serde",
"serde_json", "serde_json",
@@ -2858,7 +2876,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-bonfire" name = "revolt-bonfire"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-tungstenite", "async-tungstenite",
@@ -2869,13 +2887,14 @@ dependencies = [
"revolt-presence", "revolt-presence",
"revolt-quark", "revolt-quark",
"rmp-serde", "rmp-serde",
"sentry",
"serde", "serde",
"serde_json", "serde_json",
] ]
[[package]] [[package]]
name = "revolt-database" name = "revolt-database"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-recursion", "async-recursion",
"async-std", "async-std",
@@ -2910,7 +2929,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-delta" name = "revolt-delta"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-channel", "async-channel",
"async-std", "async-std",
@@ -2951,7 +2970,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-models" name = "revolt-models"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"indexmap", "indexmap",
"iso8601-timestamp 0.2.11", "iso8601-timestamp 0.2.11",
@@ -2966,7 +2985,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-permissions" name = "revolt-permissions"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-trait", "async-trait",
@@ -2981,7 +3000,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-presence" name = "revolt-presence"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-std", "async-std",
"log", "log",
@@ -2992,7 +3011,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-quark" name = "revolt-quark"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"async-lock", "async-lock",
"async-recursion", "async-recursion",
@@ -3045,7 +3064,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-result" name = "revolt-result"
version = "0.6.5" version = "0.6.7"
dependencies = [ dependencies = [
"revolt_okapi", "revolt_okapi",
"revolt_rocket_okapi", "revolt_rocket_okapi",
@@ -3466,39 +3485,44 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]] [[package]]
name = "sentry" name = "sentry"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2d23af89cf3e40dffb53f974e9a21653353b3e21cf51633aa58006f2a0caf8a" checksum = "01b0ad16faa5d12372f914ed40d00bda21a6d1bdcc99264c5e5e1c9495cf3654"
dependencies = [ dependencies = [
"httpdate 1.0.2", "httpdate 1.0.2",
"native-tls",
"reqwest", "reqwest",
"sentry-backtrace", "sentry-backtrace",
"sentry-contexts", "sentry-contexts",
"sentry-core", "sentry-core",
"sentry-debug-images",
"sentry-panic", "sentry-panic",
"sentry-tracing",
"tokio 1.18.2", "tokio 1.18.2",
"ureq",
] ]
[[package]] [[package]]
name = "sentry-backtrace" name = "sentry-backtrace"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8158a446429420acdf6a4f75192ee8929da16a0c41c89a1c34b2e0f1eaebcc02" checksum = "11f2ee8f147bb5f22ac59b5c35754a759b9a6f6722402e2a14750b2a63fc59bd"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"lazy_static", "once_cell",
"regex", "regex",
"sentry-core", "sentry-core",
] ]
[[package]] [[package]]
name = "sentry-contexts" name = "sentry-contexts"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3bda8a1e3213f1944da2d42f3081ea9f3717105bb2a6b0a8fe4f5e603010a3" checksum = "dcd133362c745151eeba0ac61e3ba8350f034e9fe7509877d08059fe1d7720c6"
dependencies = [ dependencies = [
"hostname", "hostname",
"libc", "libc",
"os_info",
"rustc_version 0.4.0", "rustc_version 0.4.0",
"sentry-core", "sentry-core",
"uname", "uname",
@@ -3506,11 +3530,11 @@ dependencies = [
[[package]] [[package]]
name = "sentry-core" name = "sentry-core"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56333f11be3a78131c67637f7611339df8af7ad9af831226585a457df75f9e3b" checksum = "7163491708804a74446642ff2c80b3acd668d4b9e9f497f85621f3d250fd012b"
dependencies = [ dependencies = [
"lazy_static", "once_cell",
"rand 0.8.5", "rand 0.8.5",
"sentry-types", "sentry-types",
"serde", "serde",
@@ -3518,20 +3542,43 @@ dependencies = [
] ]
[[package]] [[package]]
name = "sentry-panic" name = "sentry-debug-images"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b957b1965c450acd220a27806fe1f2dec998d393973ebae797936b12df1c7416" checksum = "6a5003d7ff08aa3b2b76994080b183e8cfa06c083e280737c9cee02ca1c70f5e"
dependencies = [
"findshlibs",
"once_cell",
"sentry-core",
]
[[package]]
name = "sentry-panic"
version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4dfe8371c9b2e126a8b64f6fefa54cef716ff2a50e63b5558a48b899265bccd"
dependencies = [ dependencies = [
"sentry-backtrace", "sentry-backtrace",
"sentry-core", "sentry-core",
] ]
[[package]] [[package]]
name = "sentry-types" name = "sentry-tracing"
version = "0.25.0" version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "825fd3382e2397007499a910e0184e55f7837cb0df4af30ae62bd2123e2ebcd6" checksum = "5aca8b88978677a27ee1a91beafe4052306c474c06f582321fde72d2e2cc2f7f"
dependencies = [
"sentry-backtrace",
"sentry-core",
"tracing-core",
"tracing-subscriber",
]
[[package]]
name = "sentry-types"
version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e7a88e0c1922d19b3efee12a8215f6a8a806e442e665ada71cc222cab72985f"
dependencies = [ dependencies = [
"debugid", "debugid",
"getrandom", "getrandom",
@@ -3541,7 +3588,7 @@ dependencies = [
"thiserror", "thiserror",
"time 0.3.17", "time 0.3.17",
"url", "url",
"uuid", "uuid 1.4.1",
] ]
[[package]] [[package]]
@@ -4413,6 +4460,19 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
name = "ureq"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9"
dependencies = [
"base64 0.21.2",
"log",
"native-tls",
"once_cell",
"url",
]
[[package]] [[package]]
name = "url" name = "url"
version = "2.2.2" version = "2.2.2"
@@ -4442,6 +4502,16 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "uuid"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
dependencies = [
"getrandom",
"serde",
]
[[package]] [[package]]
name = "validator" name = "validator"
version = "0.15.0" version = "0.15.0"

View File

@@ -3,4 +3,8 @@ members = ["crates/delta", "crates/bonfire", "crates/quark", "crates/core/*"]
[patch.crates-io] [patch.crates-io]
# mobc-redis = { git = "https://github.com/insertish/mobc", rev = "8b880bb59f2ba80b4c7bc40c649c113d8857a186" } # mobc-redis = { git = "https://github.com/insertish/mobc", rev = "8b880bb59f2ba80b4c7bc40c649c113d8857a186" }
redis = { git = "https://github.com/insertish/redis-rs", rev = "1a41faf356fd21aebba71cea7eb7eb2653e5f0ef" } redis22 = { package = "redis", version = "0.22.3", git = "https://github.com/revoltchat/redis-rs", rev = "1a41faf356fd21aebba71cea7eb7eb2653e5f0ef" }
redis23 = { package = "redis", version = "0.23.1", git = "https://github.com/revoltchat/redis-rs", rev = "f8ca28ab85da59d2ccde526b4d2fb390eff5a5f9" }
[profile.release]
debug = true

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-bonfire" name = "revolt-bonfire"
version = "0.6.5" version = "0.6.7"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
edition = "2021" edition = "2021"
@@ -25,7 +25,12 @@ serde = "1.0.136"
# async # async
futures = "0.3.21" futures = "0.3.21"
async-tungstenite = { version = "0.17.0", features = ["async-std-runtime"] } async-tungstenite = { version = "0.17.0", features = ["async-std-runtime"] }
async-std = { version = "1.8.0", features = ["tokio1", "tokio02", "attributes"] } async-std = { version = "1.8.0", features = [
"tokio1",
"tokio02",
"attributes",
] }
# core # core
revolt-presence = { path = "../core/presence", features = [ "redis-is-patched" ] } revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
sentry = "0.31.5"

View File

@@ -136,13 +136,13 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr)
);*/ );*/
// Handle incoming events. // Handle incoming events.
match conn.on_message().next().await.map(|item| { match conn.on_message().next().await.map(|res| {
( res.map(|item|(
item.get_channel_name().to_string(), item.get_channel_name().to_string(),
redis_kiss::decode_payload::<EventV1>(&item), redis_kiss::decode_payload::<EventV1>(&item),
) ))
}) { }) {
Some((channel, item)) => { Some(Ok((channel, item))) => {
if let Ok(mut event) = item { if let Ok(mut event) = item {
if state if state
.handle_incoming_event_v1( .handle_incoming_event_v1(
@@ -160,6 +160,11 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr)
warn!("Failed to deserialise an event for {channel}!"); warn!("Failed to deserialise an event for {channel}!");
} }
} }
Some(Err(e)) => {
info!("Error while consuming pub/sub messages: {e:?}");
sentry::capture_error(&e);
break
}
// No more data, assume we disconnected or otherwise // No more data, assume we disconnected or otherwise
// something bad occurred, so disconnect user. // something bad occurred, so disconnect user.
None => break, None => break,

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-database" name = "revolt-database"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
@@ -22,10 +22,10 @@ default = ["mongodb", "async-std-runtime"]
[dependencies] [dependencies]
# Core # Core
revolt-result = { version = "0.6.5", path = "../result" } revolt-result = { version = "0.6.7", path = "../result" }
revolt-models = { version = "0.6.5", path = "../models" } revolt-models = { version = "0.6.7", path = "../models" }
revolt-presence = { version = "0.6.5", path = "../presence" } revolt-presence = { version = "0.6.7", path = "../presence" }
revolt-permissions = { version = "0.6.5", path = "../permissions", features = [ revolt-permissions = { version = "0.6.7", path = "../permissions", features = [
"serde", "serde",
"bson", "bson",
] } ] }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-models" name = "revolt-models"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
@@ -18,7 +18,7 @@ default = ["serde", "partials"]
[dependencies] [dependencies]
# Core # Core
revolt-permissions = { version = "0.6.5", path = "../permissions" } revolt-permissions = { version = "0.6.7", path = "../permissions" }
# Utility # Utility
regex = "1" regex = "1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-permissions" name = "revolt-permissions"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,9 +1,9 @@
[package] [package]
name = "revolt-presence" name = "revolt-presence"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ] authors = ["Paul Makles <me@insrt.uk>"]
description = "Revolt Backend: User Presence" description = "Revolt Backend: User Presence"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@@ -1,20 +1,20 @@
[package] [package]
name = "revolt-result" name = "revolt-result"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = [ "Paul Makles <me@insrt.uk>" ] authors = ["Paul Makles <me@insrt.uk>"]
description = "Revolt Backend: Result and Error types" description = "Revolt Backend: Result and Error types"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
serde = [ "dep:serde" ] serde = ["dep:serde"]
schemas = [ "dep:schemars" ] schemas = ["dep:schemars"]
rocket = [ "dep:rocket", "dep:serde_json" ] rocket = ["dep:rocket", "dep:serde_json"]
okapi = [ "dep:revolt_rocket_okapi", "dep:revolt_okapi" ] okapi = ["dep:revolt_rocket_okapi", "dep:revolt_okapi"]
default = [ "serde" ] default = ["serde"]
[dependencies] [dependencies]
# Serialisation # Serialisation

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-delta" name = "revolt-delta"
version = "0.6.5" version = "0.6.7"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <paulmakles@gmail.com>"] authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018" edition = "2018"
@@ -38,29 +38,38 @@ futures = "0.3.8"
chrono = "0.4.15" chrono = "0.4.15"
async-channel = "1.6.1" async-channel = "1.6.1"
reqwest = { version = "0.11.4", features = ["json"] } reqwest = { version = "0.11.4", features = ["json"] }
async-std = { version = "1.8.0", features = ["tokio1", "tokio02", "attributes"] } async-std = { version = "1.8.0", features = [
"tokio1",
"tokio02",
"attributes",
] }
# internal util # internal util
lettre = "0.10.0-alpha.4" lettre = "0.10.0-alpha.4"
# web # web
rocket = { version = "0.5.0-rc.2", default-features = false, features = ["json"] } rocket = { version = "0.5.0-rc.2", default-features = false, features = [
"json",
] }
rocket_empty = { version = "0.1.1", features = ["schema"] } rocket_empty = { version = "0.1.1", features = ["schema"] }
rocket_authifier = { version = "1.0.7" } rocket_authifier = { version = "1.0.7" }
rocket_prometheus = "0.10.0-rc.3" rocket_prometheus = "0.10.0-rc.3"
# spec generation # spec generation
schemars = "0.8.8" schemars = "0.8.8"
revolt_rocket_okapi = { version = "0.9.1", features = [ "swagger" ] } revolt_rocket_okapi = { version = "0.9.1", features = ["swagger"] }
# quark # quark
revolt-quark = { path = "../quark" } revolt-quark = { path = "../quark" }
# core # core
revolt-database = { path = "../core/database", features = [ "rocket-impl", "redis-is-patched" ] } revolt-database = { path = "../core/database", features = [
revolt-models = { path = "../core/models", features = [ "schemas", "validator" ] } "rocket-impl",
revolt-result = { path = "../core/result", features = [ "rocket", "okapi" ] } "redis-is-patched",
revolt-permissions = { path = "../core/permissions", features = [ "schemas" ] } ] }
revolt-models = { path = "../core/models", features = ["schemas", "validator"] }
revolt-result = { path = "../core/result", features = ["rocket", "okapi"] }
revolt-permissions = { path = "../core/permissions", features = ["schemas"] }
[build-dependencies] [build-dependencies]
vergen = "7.5.0" vergen = "7.5.0"

View File

@@ -24,10 +24,6 @@ pub async fn req(db: &State<Database>, user: User, target: Ref) -> Result<Json<M
return Err(Error::InvalidOperation); return Err(Error::InvalidOperation);
} }
if user.bot.is_some() {
return Err(Error::IsBot);
}
let target = target.as_user(db).await?; let target = target.as_user(db).await?;
if perms(&user) if perms(&user)

View File

@@ -1,13 +1,13 @@
[package] [package]
name = "revolt-quark" name = "revolt-quark"
version = "0.6.5" version = "0.6.7"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
mongo = [ "mongodb" ] mongo = ["mongodb"]
rocket_impl = [ rocket_impl = [
"rocket", "rocket",
"rocket_empty", "rocket_empty",
@@ -18,11 +18,11 @@ rocket_impl = [
"authifier/database-mongodb", "authifier/database-mongodb",
"authifier/rocket_impl", "authifier/rocket_impl",
"authifier/okapi_impl" "authifier/okapi_impl",
] ]
test = [ "async-std", "mongo", "mongodb/async-std-runtime", "rocket_impl" ] test = ["async-std", "mongo", "mongodb/async-std-runtime", "rocket_impl"]
default = [ "test" ] default = ["test"]
[dependencies] [dependencies]
# Serialisation # Serialisation
@@ -39,7 +39,7 @@ bson = { version = "2.1.0", features = ["chrono-0_4"] }
# Spec Generation # Spec Generation
schemars = "0.8.8" schemars = "0.8.8"
revolt_okapi = "0.9.1" revolt_okapi = "0.9.1"
revolt_rocket_okapi = { version = "0.9.1", features = [ "swagger" ] } revolt_rocket_okapi = { version = "0.9.1", features = ["swagger"] }
# Databases # Databases
redis-kiss = { version = "0.1.4" } redis-kiss = { version = "0.1.4" }
@@ -81,18 +81,20 @@ web-push = "0.7.2"
# Implementations # Implementations
rocket_http = { optional = true, version = "0.5.0-rc.2" } rocket_http = { optional = true, version = "0.5.0-rc.2" }
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false, features = ["json"] } rocket = { optional = true, version = "0.5.0-rc.2", default-features = false, features = [
rocket_empty = { version = "0.1.1", optional = true, features = [ "schema" ] } "json",
] }
rocket_empty = { version = "0.1.1", optional = true, features = ["schema"] }
rocket_cors = { optional = true, git = "https://github.com/lawliet89/rocket_cors", rev = "c17e8145baa4790319fdb6a473e465b960f55e7c" } rocket_cors = { optional = true, git = "https://github.com/lawliet89/rocket_cors", rev = "c17e8145baa4790319fdb6a473e465b960f55e7c" }
# Authifier # Authifier
authifier = { version = "1.0.7", features = [ "async-std-runtime" ] } authifier = { version = "1.0.7", features = ["async-std-runtime"] }
# Sentry # Sentry
sentry = "0.25.0" sentry = "0.31.5"
# Core # Core
revolt-result = { path = "../core/result", features = [ "serde", "schemas" ] } revolt-result = { path = "../core/result", features = ["serde", "schemas"] }
revolt-presence = { path = "../core/presence", features = [ "redis-is-patched" ] } revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
revolt-database = { path = "../core/database" } revolt-database = { path = "../core/database" }
revolt-models = { path = "../core/models" } revolt-models = { path = "../core/models" }

View File

@@ -1,5 +1,5 @@
/// Configure logging and common Rust variables /// Configure logging and common Rust variables
pub fn setup_logging(release: &'static str) -> sentry::ClientInitGuard { pub fn setup_logging(release: &'static str) -> Option<sentry::ClientInitGuard> {
dotenv::dotenv().ok(); dotenv::dotenv().ok();
if std::env::var("RUST_LOG").is_err() { if std::env::var("RUST_LOG").is_err() {
@@ -13,13 +13,17 @@ pub fn setup_logging(release: &'static str) -> sentry::ClientInitGuard {
pretty_env_logger::init(); pretty_env_logger::init();
info!("Starting {release}"); info!("Starting {release}");
sentry::init(( if let Ok(dsn) = std::env::var("SENTRY_DSN") {
"https://d1d2a6f15c6245a987c532bbbcb30a04@glitchtip.insert.moe/2", Some(sentry::init((
sentry::ClientOptions { dsn,
release: Some(release.into()), sentry::ClientOptions {
..Default::default() release: Some(release.into()),
}, ..Default::default()
)) },
)))
} else {
None
}
} }
#[macro_export] #[macro_export]