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 core::fmt::Formatter;
use serde::{Deserialize, Deserializer};
use std::convert::TryInto;
#[derive(Deserialize, Debug)]
pub struct UserResponse {
pub status: u16,
@ -36,6 +38,14 @@ where
{
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)

View file

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