Compare commits

..

No commits in common. "master" and "0.3.2" have entirely different histories.

5 changed files with 6 additions and 24 deletions

View file

@ -1,6 +1,6 @@
[package]
name = "aliurl"
version = "0.3.3"
version = "0.3.2"
edition = "2021"
license = "MIT"
repository = "https://github.com/ivabus/aliurl"

View file

@ -1,5 +1,3 @@
## Archived, see [ivabus/urouter](https://github.com/ivabus/urouter) or something else as a replacement
# aliurl
> ALIaser for URLs
@ -146,4 +144,4 @@ See `./redirect.html.example` to understand what's going on.
## License
The project is licensed under the terms of the [MIT license](./LICENSE).
The project is licensed under the terms of the [MIT license](./LICENSE).

View file

@ -50,17 +50,7 @@ struct Alias {
redirect_with_ad: Option<bool>,
}
fn lock() {
while std::path::Path::new("./alias.json.lock").exists() {}
std::fs::File::create("./alias.json.lock").unwrap();
}
fn unlock() {
std::fs::remove_file("./alias.json.lock").unwrap()
}
fn read_aliases() -> Vec<Alias> {
lock();
if !std::path::Path::new("./alias.json").exists() {
let mut file = std::fs::File::create("./alias.json").unwrap();
file.write_all(b"[]").unwrap();
@ -76,7 +66,6 @@ fn read_aliases() -> Vec<Alias> {
let mut contents = String::new();
buf_reader.read_to_string(&mut contents).unwrap();
let aliases_list: Vec<Alias> = serde_json::from_str(&contents).unwrap();
unlock();
aliases_list
}

View file

@ -71,7 +71,7 @@ fn check_access_key(key: Option<String>) -> Result<String, (Status, RawJson<Stri
}
#[post("/api/create_alias", data = "<data>")]
pub async fn create_alias(data: &RawStr) -> (Status, RawJson<String>) {
pub fn create_alias(data: &RawStr) -> (Status, RawJson<String>) {
let data: CreateAliasRequest = match serde_json::from_str(&data.to_string()) {
Ok(req) => req,
Err(e) => {
@ -82,8 +82,8 @@ pub async fn create_alias(data: &RawStr) -> (Status, RawJson<String>) {
if let Err(e) = check_access_key(data.access_key) {
return e;
}
let mut aliases_list = read_aliases();
lock();
let mut file = std::fs::File::options().write(true).open("./alias.json").unwrap();
let alias = match data.alias {
None => {
@ -128,13 +128,12 @@ pub async fn create_alias(data: &RawStr) -> (Status, RawJson<String>) {
file.write_all(serde_json::to_string(&aliases_list).unwrap().as_bytes()).unwrap();
file.sync_all().unwrap();
unlock();
return (Status::Ok, RawJson(serde_json::to_string(&alias).unwrap()));
}
#[post("/api/get_aliases", data = "<data>")]
pub async fn get_aliases(data: &RawStr) -> (Status, RawJson<String>) {
pub fn get_aliases(data: &RawStr) -> (Status, RawJson<String>) {
let data: GetAliasesRequest = match serde_json::from_str(&data.to_string()) {
Ok(req) => req,
Err(e) => {
@ -150,7 +149,7 @@ pub async fn get_aliases(data: &RawStr) -> (Status, RawJson<String>) {
}
#[post("/api/remove_alias", data = "<data>")]
pub async fn remove_alias(data: &RawStr) -> (Status, RawJson<String>) {
pub fn remove_alias(data: &RawStr) -> (Status, RawJson<String>) {
let data: RemoveAliasRequest = match serde_json::from_str(&data.to_string()) {
Ok(req) => req,
Err(e) => {
@ -162,7 +161,6 @@ pub async fn remove_alias(data: &RawStr) -> (Status, RawJson<String>) {
}
let mut aliases_list = read_aliases();
let mut removed_aliases: Vec<Alias> = vec![];
lock();
let mut file = std::fs::File::options().write(true).open("./alias.json").unwrap();
for i in (0..aliases_list.len()).rev() {
@ -174,7 +172,6 @@ pub async fn remove_alias(data: &RawStr) -> (Status, RawJson<String>) {
file.write_all(&aliases_list.as_bytes()).unwrap();
file.set_len(aliases_list.as_bytes().len() as u64).unwrap();
file.sync_all().unwrap();
unlock();
return (Status::Ok, RawJson(serde_json::to_string(&removed_aliases).unwrap()));
}

View file

@ -1,2 +0,0 @@
dependencies:
rust-lang.org/cargo: '*'