fix search request detection, fix suggestion formatter

This commit is contained in:
yggverse 2025-01-25 19:41:12 +02:00
parent c6d24565fd
commit 3e570bd268

View file

@ -152,7 +152,12 @@ fn lookup(
Ok(uri) => callback(feature, cancellable, Ok(uri)), Ok(uri) => callback(feature, cancellable, Ok(uri)),
Err(_) => { Err(_) => {
// try default scheme suggestion // try default scheme suggestion
let suggestion = format!("{DEFAULT_SCHEME}://{query}"); let suggestion = format!(
"{DEFAULT_SCHEME}://{}",
query
.strip_prefix(&format!("{DEFAULT_SCHEME}://"))
.unwrap_or(query)
);
let resolver = Resolver::default(); let resolver = Resolver::default();
resolver.set_timeout(TIMEOUT); resolver.set_timeout(TIMEOUT);
@ -161,6 +166,8 @@ fn lookup(
Ok(connectable) => resolver.lookup_by_name_async( Ok(connectable) => resolver.lookup_by_name_async(
&connectable.hostname(), &connectable.hostname(),
Some(&cancellable.clone()), Some(&cancellable.clone()),
{
let query = query.to_owned();
move |resolve| { move |resolve| {
callback( callback(
feature, feature,
@ -168,15 +175,16 @@ fn lookup(
if resolve.is_ok() { if resolve.is_ok() {
match Uri::parse(&suggestion, UriFlags::NONE) { match Uri::parse(&suggestion, UriFlags::NONE) {
Ok(uri) => Err(uri), Ok(uri) => Err(uri),
Err(_) => Err(search(&suggestion)), Err(_) => Err(search(&query)),
} }
} else { } else {
Err(search(&suggestion)) Err(search(&query))
}, },
) )
}
}, },
), ),
Err(_) => callback(feature, cancellable, Err(search(&suggestion))), Err(_) => callback(feature, cancellable, Err(search(&query))),
} }
} }
} }