mirror of
https://codeberg.org/demostf/api-client.git
synced 2026-06-03 16:44:09 +02:00
allow uploading private demos
This commit is contained in:
parent
35db814441
commit
ef7e590be0
5 changed files with 502 additions and 343 deletions
798
Cargo.lock
generated
798
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
16
Cargo.toml
16
Cargo.toml
|
|
@ -13,25 +13,25 @@ categories = ["api-bindings"]
|
|||
rust-version = "1.81.0"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.216", features = ["derive"] }
|
||||
time = { version = "0.3.37", features = ["serde"] }
|
||||
reqwest = { version = "0.12.9", default-features = false, features = [
|
||||
serde = { version = "1.0.219", features = ["derive"] }
|
||||
time = { version = "0.3.41", features = ["serde"] }
|
||||
reqwest = { version = "0.12.15", default-features = false, features = [
|
||||
"json",
|
||||
"multipart",
|
||||
"stream",
|
||||
] }
|
||||
thiserror = "2.0.9"
|
||||
thiserror = "2.0.12"
|
||||
hex = "0.4.3"
|
||||
steamid-ng = "1.0.0"
|
||||
bytes = "1.9.0"
|
||||
bytes = "1.10.1"
|
||||
futures-util = "0.3.31"
|
||||
tracing = "0.1.41"
|
||||
tinyvec = { version = "1.8.1", features = ["alloc"] }
|
||||
tinyvec = { version = "1.9.0", features = ["alloc"] }
|
||||
md5 = "0.7.0"
|
||||
|
||||
[dev-dependencies]
|
||||
tokio = { version = "1.42.0", features = ["macros"] }
|
||||
sqlx = { version = "0.8.2", features = ["postgres", "runtime-tokio-rustls"] }
|
||||
tokio = { version = "1.44.2", features = ["macros"] }
|
||||
sqlx = { version = "0.8.5", features = ["postgres", "runtime-tokio-rustls"] }
|
||||
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
||||
|
||||
[features]
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ in
|
|||
src = fetchFromGitHub {
|
||||
owner = "demostf";
|
||||
repo = "api";
|
||||
rev = "1a8380360b993226ae1c6fcc226011e03a6c1467";
|
||||
hash = "sha256-JcBRU1N44tt0QDLnj6z9MCT3V2s2dkf+JbpWb1rmXnY=";
|
||||
rev = "9595b7f6f520fffb6e31c31c08d897b5b7593574";
|
||||
hash = "sha256-HncThFvIQ02QD8jpdsj70kvE+OlVO/loKM3hCVgJ2tk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-EYWCR2aJAoyWvEX+SML4Fb3F3KGcUtwCgqhAGT6ZjZ4=";
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@
|
|||
testBinary = lib.getExe pkgs.test-runner;
|
||||
initSql = pkgs.fetchurl {
|
||||
url = "https://github.com/demostf/db/raw/refs/heads/master/schema.sql";
|
||||
hash = "sha256-AwXN9mh9CRk6HWdvyUR+YdBkpmExNIDOIeDMz6XqjEQ=";
|
||||
hash = "sha256-tdMYDxlvpuQRxHglX46sCldxzsh1cDxkch2lGWnFH8E=";
|
||||
};
|
||||
in ''
|
||||
machine.succeed("mkdir /demos && chmod 0777 /demos");
|
||||
|
|
|
|||
|
|
@ -377,12 +377,39 @@ impl ApiClient {
|
|||
red: String,
|
||||
blue: String,
|
||||
key: String,
|
||||
) -> Result<u32, Error> {
|
||||
self.upload_maybe_private_demo(file_name, body, red, blue, key, false)
|
||||
.await
|
||||
}
|
||||
|
||||
#[instrument(skip(body))]
|
||||
pub async fn upload_private_demo(
|
||||
&self,
|
||||
file_name: String,
|
||||
body: Vec<u8>,
|
||||
red: String,
|
||||
blue: String,
|
||||
key: String,
|
||||
) -> Result<u32, Error> {
|
||||
self.upload_maybe_private_demo(file_name, body, red, blue, key, true)
|
||||
.await
|
||||
}
|
||||
|
||||
async fn upload_maybe_private_demo(
|
||||
&self,
|
||||
file_name: String,
|
||||
body: Vec<u8>,
|
||||
red: String,
|
||||
blue: String,
|
||||
key: String,
|
||||
private: bool,
|
||||
) -> Result<u32, Error> {
|
||||
let form = multipart::Form::new()
|
||||
.text("red", red)
|
||||
.text("blue", blue)
|
||||
.text("name", file_name)
|
||||
.text("key", key);
|
||||
.text("key", key)
|
||||
.text("private", if private { "1" } else { "0" });
|
||||
|
||||
let file = multipart::Part::bytes(body)
|
||||
.file_name("demo.dem")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue