parent
68ebbad7a7
commit
5a4ac0e7f2
@ -31,6 +31,8 @@ pub enum CreateError{
|
|||||||
response:String,
|
response:String,
|
||||||
err:std::num::ParseIntError,
|
err:std::num::ParseIntError,
|
||||||
},
|
},
|
||||||
|
VersionHeaderMissing,
|
||||||
|
ToStr(reqwest::header::ToStrError),
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for CreateError{
|
impl std::fmt::Display for CreateError{
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
@ -59,6 +61,8 @@ pub enum UploadError{
|
|||||||
response:String,
|
response:String,
|
||||||
err:std::num::ParseIntError,
|
err:std::num::ParseIntError,
|
||||||
},
|
},
|
||||||
|
VersionHeaderMissing,
|
||||||
|
ToStr(reqwest::header::ToStrError),
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for UploadError{
|
impl std::fmt::Display for UploadError{
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
@ -70,6 +74,7 @@ impl std::error::Error for UploadError{}
|
|||||||
#[allow(nonstandard_style,dead_code)]
|
#[allow(nonstandard_style,dead_code)]
|
||||||
pub struct UploadResponse{
|
pub struct UploadResponse{
|
||||||
pub AssetId:u64,
|
pub AssetId:u64,
|
||||||
|
pub AssetVersion:u64,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(nonstandard_style,dead_code)]
|
#[allow(nonstandard_style,dead_code)]
|
||||||
@ -387,12 +392,23 @@ impl CookieContext{
|
|||||||
}
|
}
|
||||||
let response=crate::response_ok(
|
let response=crate::response_ok(
|
||||||
self.post(url,body).await.map_err(CreateError::PostError)?
|
self.post(url,body).await.map_err(CreateError::PostError)?
|
||||||
).await.map_err(CreateError::Response)?
|
).await.map_err(CreateError::Response)?;
|
||||||
.text().await.map_err(CreateError::Reqwest)?;
|
|
||||||
|
let version_str=response
|
||||||
|
.headers()
|
||||||
|
.get("roblox-assetversionnumber")
|
||||||
|
.ok_or(CreateError::VersionHeaderMissing)?
|
||||||
|
.to_str()
|
||||||
|
.map_err(CreateError::ToStr)?;
|
||||||
|
let version=version_str.parse()
|
||||||
|
.map_err(|err|CreateError::ParseInt{err,response:version_str.to_owned()})?;
|
||||||
|
|
||||||
|
let response=response.text().await.map_err(CreateError::Reqwest)?;
|
||||||
|
|
||||||
match response.parse(){
|
match response.parse(){
|
||||||
Ok(asset_id)=>Ok(UploadResponse{
|
Ok(asset_id)=>Ok(UploadResponse{
|
||||||
AssetId:asset_id,
|
AssetId:asset_id,
|
||||||
|
AssetVersion:version,
|
||||||
}),
|
}),
|
||||||
Err(err)=>Err(CreateError::ParseInt{
|
Err(err)=>Err(CreateError::ParseInt{
|
||||||
response,
|
response,
|
||||||
@ -428,12 +444,23 @@ impl CookieContext{
|
|||||||
}
|
}
|
||||||
let response=crate::response_ok(
|
let response=crate::response_ok(
|
||||||
self.post(url,body).await.map_err(UploadError::PostError)?
|
self.post(url,body).await.map_err(UploadError::PostError)?
|
||||||
).await.map_err(UploadError::Response)?
|
).await.map_err(UploadError::Response)?;
|
||||||
.text().await.map_err(UploadError::Reqwest)?;
|
|
||||||
|
let version_str=response
|
||||||
|
.headers()
|
||||||
|
.get("roblox-assetversionnumber")
|
||||||
|
.ok_or(UploadError::VersionHeaderMissing)?
|
||||||
|
.to_str()
|
||||||
|
.map_err(UploadError::ToStr)?;
|
||||||
|
let version=version_str.parse()
|
||||||
|
.map_err(|err|UploadError::ParseInt{err,response:version_str.to_owned()})?;
|
||||||
|
|
||||||
|
let response=response.text().await.map_err(UploadError::Reqwest)?;
|
||||||
|
|
||||||
match response.parse(){
|
match response.parse(){
|
||||||
Ok(asset_id)=>Ok(UploadResponse{
|
Ok(asset_id)=>Ok(UploadResponse{
|
||||||
AssetId:asset_id,
|
AssetId:asset_id,
|
||||||
|
AssetVersion:version,
|
||||||
}),
|
}),
|
||||||
Err(err)=>Err(UploadError::ParseInt{
|
Err(err)=>Err(UploadError::ParseInt{
|
||||||
response,
|
response,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user