Compare commits
2 commits
12f359a6da
...
62b5baf69e
Author | SHA1 | Date | |
---|---|---|---|
62b5baf69e | |||
7eb40439b0 |
2 changed files with 18 additions and 7 deletions
|
@ -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)
|
||||||
|
|
|
@ -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(())
|
||||||
|
|
Loading…
Reference in a new issue