Compare commits

...

2 commits

Author SHA1 Message Date
LordMZTE 62b5baf69e add user directory output 2020-11-11 16:26:36 +01:00
LordMZTE 7eb40439b0 dayuploads can now be int too 2020-11-11 16:16:26 +01:00
2 changed files with 18 additions and 7 deletions

View file

@ -1,6 +1,8 @@
use serde::de::{Error, Unexpected, Visitor}; use serde::de::{Error, Unexpected, Visitor};
use core::fmt::Formatter; use core::fmt::Formatter;
use serde::{Deserialize, Deserializer}; use serde::{Deserialize, Deserializer};
use std::convert::TryInto;
#[derive(Deserialize, Debug)] #[derive(Deserialize, Debug)]
pub struct UserResponse { pub struct UserResponse {
pub status: u16, pub status: u16,
@ -36,6 +38,14 @@ where
{ {
v.parse().map_err(|_| E::invalid_type(Unexpected::Str(v), &"a u32")) v.parse().map_err(|_| E::invalid_type(Unexpected::Str(v), &"a u32"))
} }
/// implementing u64 instead of 32 because it is used as fallback
fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>
where
E: Error,
{
v.try_into().map_err(|_| E::invalid_type(Unexpected::Unsigned(v), &"a u32"))
}
} }
de.deserialize_str(Vis) de.deserialize_str(Vis)

View file

@ -1,7 +1,7 @@
use anyhow::Result; use anyhow::Result;
use clap::{App, Arg}; use clap::{App, Arg};
use reqwest::{Client, Url}; use reqwest::{Client, Url};
use tokencracker::{api::UserResponse, hex_string_hash}; use tokencracker::{api::{JensmemesUser, UserResponse}, hex_string_hash};
#[tokio::main] #[tokio::main]
async fn main() -> Result<()> { async fn main() -> Result<()> {
@ -31,19 +31,20 @@ async fn main() -> Result<()> {
.send() .send()
.await?; .await?;
let username = let (username, userdir) =
if let (200..=210, Ok(usr)) = (response.status().as_u16(), response.bytes().await) { if let (200..=210, Ok(usr)) = (response.status().as_u16(), response.bytes().await) {
let UserResponse { user, .. } = serde_json::from_slice::<UserResponse>(&usr)?; let UserResponse { user: JensmemesUser {name, userdir, ..}, .. } = serde_json::from_slice::<UserResponse>(&usr)?;
user.name (name, userdir)
} else { } else {
"Not in Database".into() ("Not in Database".into(), public.clone())
}; };
println!( println!(
"Username: {} "Username: {}
Public Token: {} Public Token: {}
Private Token: {}", Private Token: {}
username, public, private User: https://data.tilera.xyz/file/jensmemes/images/{}",
username, public, private, userdir
); );
Ok(()) Ok(())