parent
309fc2494d
commit
b69698fd8e
@ -27,6 +27,10 @@ pub enum CreateError{
|
|||||||
PostError(PostError),
|
PostError(PostError),
|
||||||
Response(ResponseError),
|
Response(ResponseError),
|
||||||
Reqwest(reqwest::Error),
|
Reqwest(reqwest::Error),
|
||||||
|
ParseInt{
|
||||||
|
response:String,
|
||||||
|
err:std::num::ParseIntError,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
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 {
|
||||||
@ -51,6 +55,10 @@ pub enum UploadError{
|
|||||||
Reqwest(reqwest::Error),
|
Reqwest(reqwest::Error),
|
||||||
Response(ResponseError),
|
Response(ResponseError),
|
||||||
AssetIdIsZero,
|
AssetIdIsZero,
|
||||||
|
ParseInt{
|
||||||
|
response:String,
|
||||||
|
err:std::num::ParseIntError,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
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 {
|
||||||
@ -58,7 +66,6 @@ impl std::fmt::Display for UploadError{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl std::error::Error for UploadError{}
|
impl std::error::Error for UploadError{}
|
||||||
type RobloxUploadResponse=u64;
|
|
||||||
#[derive(Debug,serde::Deserialize,serde::Serialize)]
|
#[derive(Debug,serde::Deserialize,serde::Serialize)]
|
||||||
#[allow(nonstandard_style,dead_code)]
|
#[allow(nonstandard_style,dead_code)]
|
||||||
pub struct UploadResponse{
|
pub struct UploadResponse{
|
||||||
@ -272,14 +279,20 @@ impl CookieContext{
|
|||||||
query.append_pair("groupId",group_id.to_string().as_str());
|
query.append_pair("groupId",group_id.to_string().as_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let asset_id=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)?
|
||||||
.json::<RobloxUploadResponse>().await.map_err(CreateError::Reqwest)?;
|
.text().await.map_err(CreateError::Reqwest)?;
|
||||||
|
|
||||||
Ok(UploadResponse{
|
match response.parse(){
|
||||||
AssetId:asset_id,
|
Ok(asset_id)=>Ok(UploadResponse{
|
||||||
})
|
AssetId:asset_id,
|
||||||
|
}),
|
||||||
|
Err(err)=>Err(CreateError::ParseInt{
|
||||||
|
response,
|
||||||
|
err,
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub async fn upload(&self,config:UploadRequest,body:impl Into<reqwest::Body>+Clone)->Result<UploadResponse,UploadError>{
|
pub async fn upload(&self,config:UploadRequest,body:impl Into<reqwest::Body>+Clone)->Result<UploadResponse,UploadError>{
|
||||||
let mut url=reqwest::Url::parse("https://data.roblox.com/Data/Upload.ashx?json=1&type=Model&genreTypeId=1").map_err(UploadError::ParseError)?;
|
let mut url=reqwest::Url::parse("https://data.roblox.com/Data/Upload.ashx?json=1&type=Model&genreTypeId=1").map_err(UploadError::ParseError)?;
|
||||||
@ -307,14 +320,20 @@ impl CookieContext{
|
|||||||
query.append_pair("groupId",group_id.to_string().as_str());
|
query.append_pair("groupId",group_id.to_string().as_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let asset_id=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)?
|
||||||
.json::<RobloxUploadResponse>().await.map_err(UploadError::Reqwest)?;
|
.text().await.map_err(UploadError::Reqwest)?;
|
||||||
|
|
||||||
Ok(UploadResponse{
|
match response.parse(){
|
||||||
AssetId:asset_id,
|
Ok(asset_id)=>Ok(UploadResponse{
|
||||||
})
|
AssetId:asset_id,
|
||||||
|
}),
|
||||||
|
Err(err)=>Err(UploadError::ParseInt{
|
||||||
|
response,
|
||||||
|
err,
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub async fn get_asset(&self,config:GetAssetRequest)->Result<Vec<u8>,GetError>{
|
pub async fn get_asset(&self,config:GetAssetRequest)->Result<Vec<u8>,GetError>{
|
||||||
let mut url=reqwest::Url::parse("https://assetdelivery.roblox.com/v1/asset/").map_err(GetError::ParseError)?;
|
let mut url=reqwest::Url::parse("https://assetdelivery.roblox.com/v1/asset/").map_err(GetError::ParseError)?;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user