mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-07-08 01:32:41 +08:00
Update
This commit is contained in:
@@ -88,7 +88,42 @@ impl AuthUserContext {
|
||||
.try_err3(8, gettext("Failed to add user to database:"))?;
|
||||
Ok(user.to_json2())
|
||||
} else {
|
||||
Ok(json::object! {})
|
||||
let mut is_admin = params
|
||||
.get_bool("is_admin")
|
||||
.try_err3(
|
||||
9,
|
||||
&gettext("Failed to parse <opt>:")
|
||||
.replace("<opt>", "is_admin"),
|
||||
)?
|
||||
.unwrap_or(false);
|
||||
let id = params.get_u64("id").try_err3(
|
||||
10,
|
||||
&gettext("Failed to parse <opt>:").replace("<opt>", "id"),
|
||||
)?;
|
||||
match id {
|
||||
Some(id) => {
|
||||
if id == 0 {
|
||||
is_admin = true;
|
||||
}
|
||||
let user = self
|
||||
.ctx
|
||||
.db
|
||||
.set_user(
|
||||
id,
|
||||
name,
|
||||
username,
|
||||
&hashed_password,
|
||||
is_admin,
|
||||
)
|
||||
.await
|
||||
.try_err3(
|
||||
12,
|
||||
gettext("Failed to set user in database:"),
|
||||
)?;
|
||||
Ok(user.to_json2())
|
||||
}
|
||||
None => Ok(json::object! {}),
|
||||
}
|
||||
}
|
||||
}
|
||||
None => return Err((5, gettext("No RSA key found.")).into()),
|
||||
|
||||
@@ -31,6 +31,49 @@ impl RequestParams {
|
||||
}
|
||||
}
|
||||
|
||||
/// Get parameter and return it as boolean.
|
||||
/// * `name` - Parameter name.
|
||||
pub fn get_bool<S: AsRef<str> + ?Sized>(
|
||||
&self,
|
||||
name: &S,
|
||||
) -> Result<Option<bool>, PixivDownloaderError> {
|
||||
match self.get(name) {
|
||||
Some(v) => {
|
||||
let v = v.trim();
|
||||
if v == "true" {
|
||||
Ok(Some(true))
|
||||
} else if v == "false" {
|
||||
Ok(Some(false))
|
||||
} else {
|
||||
match v.parse::<i64>() {
|
||||
Ok(v) => return Ok(Some(v != 0)),
|
||||
Err(_) => {}
|
||||
}
|
||||
Err(gettext("Invalid boolean value.").into())
|
||||
}
|
||||
}
|
||||
None => Ok(None),
|
||||
}
|
||||
}
|
||||
|
||||
/// Get parameter and return it as [u64].
|
||||
/// * `name` - Parameter name.
|
||||
pub fn get_u64<S: AsRef<str> + ?Sized>(
|
||||
&self,
|
||||
name: &S,
|
||||
) -> Result<Option<u64>, PixivDownloaderError> {
|
||||
match self.get(name) {
|
||||
Some(v) => {
|
||||
let v = v.trim();
|
||||
match v.parse::<u64>() {
|
||||
Ok(v) => Ok(Some(v)),
|
||||
Err(_) => Err(gettext("Invalid unsigned 64bit integer value.").into()),
|
||||
}
|
||||
}
|
||||
None => Ok(None),
|
||||
}
|
||||
}
|
||||
|
||||
/// Get all parameters with same name.
|
||||
/// * `name` - Parameter name.
|
||||
pub fn get_all<S: AsRef<str> + ?Sized>(&self, name: &S) -> Option<&Vec<String>> {
|
||||
|
||||
Reference in New Issue
Block a user