forked from asklyphe-public/asklyphe
make it work fully
This commit is contained in:
parent
bac21898c9
commit
64a771f8cc
2 changed files with 16 additions and 14 deletions
|
@ -46,7 +46,6 @@ pub struct BangRedirect {
|
|||
}
|
||||
|
||||
pub fn do_bangs_or_whatever(query: &String) -> Option<BangRedirect> {
|
||||
error!("Hello, World!");
|
||||
if !query.contains(BANG_PREFIX) {
|
||||
return None;
|
||||
}
|
||||
|
@ -72,27 +71,27 @@ pub fn do_bangs_or_whatever(query: &String) -> Option<BangRedirect> {
|
|||
}).filter(|bang| bang.is_some())
|
||||
.map(|bang| bang.unwrap())
|
||||
.collect::<Vec<_>>();
|
||||
debug!("Result: {:?}", bangs);
|
||||
|
||||
|
||||
let bang = bangs.first()?;
|
||||
let end_idx = bang.start_idx + 1 + bang.len;
|
||||
debug!("Initial query: \"{}\"", query);
|
||||
|
||||
let query_split = query.split_once(query.get(bang.start_idx..end_idx).unwrap()).unwrap();
|
||||
debug!("Split query: {:?}", query_split);
|
||||
|
||||
let query_trimmed = format!("{}{}", query_split.0, query_split.1);
|
||||
debug!("Trimmed query: \"{}\"", query_trimmed);
|
||||
|
||||
let query_encoded = url_encoded_data::stringify(&[("", query_trimmed.as_str())]);
|
||||
let query_encoded = query_encoded.get(1..query_encoded.len()).unwrap().to_owned();
|
||||
debug!("Encoded query: {:?}", query_encoded);
|
||||
|
||||
|
||||
let bang_url_split = bang.url.split_once("{}").unwrap();
|
||||
debug!("Split bang URL: {:?}", bang_url_split);
|
||||
|
||||
let bang_url = format!(
|
||||
"{}{}{}",
|
||||
bang_url_split.0,
|
||||
query_encoded,
|
||||
bang_url_split.1
|
||||
);
|
||||
debug!("Final URL: \"{}\"", bang_url);
|
||||
|
||||
Some(BangRedirect{url: bang_url})
|
||||
}
|
||||
|
|
|
@ -70,7 +70,6 @@ pub struct Complications {
|
|||
disabled: bool,
|
||||
wikipedia: Option<WikipediaSummary>,
|
||||
unit_converter: Option<UnitConversion>,
|
||||
bang: Option<BangRedirect>
|
||||
}
|
||||
|
||||
pub async fn search(
|
||||
|
@ -173,11 +172,11 @@ pub async fn search_js(
|
|||
unit_query = unit_query.replace("metre", "meter");
|
||||
let unit_comp = unit_converter::convert_unit(&unit_query);
|
||||
complications.unit_converter = unit_comp;
|
||||
/*if let Some(bang, result_query) = bangs::do_bangs_or_whatever(&query) {
|
||||
error!("Would redirect to '{}', but it's not implemented", format!(bang, result_query));
|
||||
}*/
|
||||
|
||||
let bang_redirect = bangs::do_bangs_or_whatever(&query);
|
||||
complications.bang = bang_redirect;
|
||||
if let Some(redirect) = bang_redirect {
|
||||
return Redirect::to(&redirect.url).into_response();
|
||||
}
|
||||
} else {
|
||||
complications.disabled = true;
|
||||
query = query.replace("-complications", "");
|
||||
|
@ -290,7 +289,11 @@ pub async fn search_nojs(
|
|||
unit_query = unit_query.replace("metre", "meter");
|
||||
let unit_comp = unit_converter::convert_unit(&unit_query);
|
||||
complications.unit_converter = unit_comp;
|
||||
let bang = bangs::do_bangs_or_whatever(&query);
|
||||
|
||||
let bang_redirect = bangs::do_bangs_or_whatever(&query);
|
||||
if let Some(redirect) = bang_redirect {
|
||||
return Redirect::to(&redirect.url).into_response();
|
||||
}
|
||||
} else {
|
||||
complications.disabled = true;
|
||||
query = query.replace("-complications", "");
|
||||
|
|
Loading…
Add table
Reference in a new issue