return;
}
- DATA = JSON.parse($indexData.innerHTML);
+ DATA = JSON.parse(atob($indexData.innerHTML));
DIR_EMPTY_NOTE = PARAMS.q ? 'No results' : DATA.dir_exists ? 'Empty folder' : 'Folder will be created when a file is uploaded';
await ready();
use crate::{args::Args, server::Response, utils::unix_now};
use anyhow::{anyhow, bail, Result};
-use base64::{engine::general_purpose, Engine as _};
+use base64::{engine::general_purpose::STANDARD, Engine as _};
use headers::HeaderValue;
use hyper::{header::WWW_AUTHENTICATE, Method};
use indexmap::IndexMap;
pub fn get_auth_user(authorization: &HeaderValue) -> Option<String> {
if let Some(value) = strip_prefix(authorization.as_bytes(), b"Basic ") {
- let value: Vec<u8> = general_purpose::STANDARD.decode(value).ok()?;
+ let value: Vec<u8> = STANDARD.decode(value).ok()?;
let parts: Vec<&str> = std::str::from_utf8(&value).ok()?.split(':').collect();
Some(parts[0].to_string())
} else if let Some(value) = strip_prefix(authorization.as_bytes(), b"Digest ") {
auth_pass: &str,
) -> Option<()> {
if let Some(value) = strip_prefix(authorization.as_bytes(), b"Basic ") {
- let value: Vec<u8> = general_purpose::STANDARD.decode(value).ok()?;
+ let value: Vec<u8> = STANDARD.decode(value).ok()?;
let parts: Vec<&str> = std::str::from_utf8(&value).ok()?.split(':').collect();
if parts[0] != auth_user {
use anyhow::{anyhow, Result};
use async_zip::{tokio::write::ZipFileWriter, Compression, ZipDateTime, ZipEntryBuilder};
+use base64::{engine::general_purpose::STANDARD, Engine as _};
use bytes::Bytes;
use chrono::{LocalResult, TimeZone, Utc};
use futures_util::{pin_mut, TryStreamExt};
};
res.headers_mut()
.typed_insert(ContentType::from(mime_guess::mime::TEXT_HTML_UTF_8));
+ let index_data = STANDARD.encode(serde_json::to_string(&data)?);
let output = self
.html
.replace(
"__ASSETS_PREFIX__",
&format!("{}{}", self.args.uri_prefix, self.assets_prefix),
)
- .replace("__INDEX_DATA__", &serde_json::to_string(&data)?);
+ .replace("__INDEX_DATA__", &index_data);
res.headers_mut()
.typed_insert(ContentLength(output.as_bytes().len() as u64));
if head_only {
} else {
res.headers_mut()
.typed_insert(ContentType::from(mime_guess::mime::TEXT_HTML_UTF_8));
+
+ let index_data = STANDARD.encode(serde_json::to_string(&data)?);
self.html
.replace(
"__ASSETS_PREFIX__",
&format!("{}{}", self.args.uri_prefix, self.assets_prefix),
)
- .replace("__INDEX_DATA__", &serde_json::to_string(&data)?)
+ .replace("__INDEX_DATA__", &index_data)
};
res.headers_mut()
.typed_insert(ContentLength(output.as_bytes().len() as u64));
+use base64::{engine::general_purpose::STANDARD, Engine as _};
use indexmap::IndexSet;
use serde_json::Value;
#[allow(dead_code)]
pub fn retrieve_edit_file(content: &str) -> Option<bool> {
- let value = retrieve_json(content)?;
+ let value = retrieve_json(content).unwrap();
let value = value.get("editable").unwrap();
Some(value.as_bool().unwrap())
}
let end_index = line[start_content_index..].find(end_tag)?;
let end_content_index = start_content_index + end_index;
- let value = line[start_content_index..end_content_index].parse().ok()?;
+ let value = &line[start_content_index..end_content_index];
+ let value = STANDARD.decode(value).ok()?;
+ let value = serde_json::from_slice(&value).ok()?;
Some(value)
}