a little cleanup

This commit is contained in:
Book-reader 2025-05-08 20:11:15 +12:00
parent 43aae463e8
commit f06b84bf66
2 changed files with 5 additions and 10 deletions

View file

@ -40,12 +40,7 @@ impl<'b> BangLoc<'_> {
} }
} }
#[derive(Debug)] pub fn redirect_bang(query: &String) -> Option<String> {
pub struct BangRedirect {
pub url: String
}
pub fn redirect_bang(query: &String) -> Option<BangRedirect> {
if !query.contains(BANG_PREFIX) { if !query.contains(BANG_PREFIX) {
return None; return None;
} }
@ -93,6 +88,7 @@ pub fn redirect_bang(query: &String) -> Option<BangRedirect> {
let query_trimmed = format!("{}{}", query_split.0, query_split.1); let query_trimmed = format!("{}{}", query_split.0, query_split.1);
// A hack to get URL escaping without using a proper URL layout, hopefully has no other issues apart from prepending '=' to the string
let query_encoded = url_encoded_data::stringify(&[("", query_trimmed.as_str())]); let query_encoded = url_encoded_data::stringify(&[("", query_trimmed.as_str())]);
let query_encoded = query_encoded.get(1..query_encoded.len()).unwrap().to_owned(); let query_encoded = query_encoded.get(1..query_encoded.len()).unwrap().to_owned();
@ -106,5 +102,5 @@ pub fn redirect_bang(query: &String) -> Option<BangRedirect> {
bang_url_split.1 bang_url_split.1
); );
Some(BangRedirect{url: bang_url}) Some(bang_url)
} }

View file

@ -19,7 +19,6 @@ use crate::unit_converter::UnitConversion;
use crate::wikipedia::WikipediaSummary; use crate::wikipedia::WikipediaSummary;
use crate::{wikipedia, Opts, ALPHA, BUILT_ON, GIT_COMMIT, VERSION, YEAR}; use crate::{wikipedia, Opts, ALPHA, BUILT_ON, GIT_COMMIT, VERSION, YEAR};
use crate::bangs; use crate::bangs;
use crate::bangs::BangRedirect;
use askama::Template; use askama::Template;
use asklyphe_common::nats; use asklyphe_common::nats;
use asklyphe_common::nats::bingservice::{ use asklyphe_common::nats::bingservice::{
@ -175,7 +174,7 @@ pub async fn search_js(
let bang_redirect = bangs::redirect_bang(&query); let bang_redirect = bangs::redirect_bang(&query);
if let Some(redirect) = bang_redirect { if let Some(redirect) = bang_redirect {
return Redirect::to(&redirect.url).into_response(); return Redirect::to(&redirect).into_response();
} }
} else { } else {
complications.disabled = true; complications.disabled = true;
@ -292,7 +291,7 @@ pub async fn search_nojs(
let bang_redirect = bangs::redirect_bang(&query); let bang_redirect = bangs::redirect_bang(&query);
if let Some(redirect) = bang_redirect { if let Some(redirect) = bang_redirect {
return Redirect::to(&redirect.url).into_response(); return Redirect::to(&redirect).into_response();
} }
} else { } else {
complications.disabled = true; complications.disabled = true;