Make website url configurable for search engine redirects

This commit is contained in:
vlofgren 2022-06-09 21:47:59 +02:00
parent 0e65384781
commit 389818c6c3
3 changed files with 16 additions and 5 deletions

View File

@ -0,0 +1,7 @@
package nu.marginalia.wmsa.configuration;
public record WebsiteUrl(String url) {
public String withPath(String path) {
return url + path;
}
}

View File

@ -2,12 +2,14 @@ package nu.marginalia.wmsa.edge.search;
import com.google.inject.AbstractModule;
import nu.marginalia.util.language.conf.LanguageModels;
import nu.marginalia.wmsa.configuration.WebsiteUrl;
import nu.marginalia.wmsa.configuration.WmsaHome;
public class EdgeSearchModule extends AbstractModule {
public void configure() {
bind(LanguageModels.class).toInstance(WmsaHome.getLanguageModels());
bind(WebsiteUrl.class).toInstance(new WebsiteUrl(System.getProperty("website-url", "https://search.marginalia.nu/")));
}
}

View File

@ -8,6 +8,7 @@ import com.google.inject.name.Named;
import lombok.SneakyThrows;
import nu.marginalia.wmsa.api.model.ApiSearchResult;
import nu.marginalia.wmsa.api.model.ApiSearchResults;
import nu.marginalia.wmsa.configuration.WebsiteUrl;
import nu.marginalia.wmsa.configuration.server.Context;
import nu.marginalia.wmsa.configuration.server.Initialization;
import nu.marginalia.wmsa.configuration.server.MetricsServer;
@ -34,7 +35,7 @@ public class EdgeSearchService extends Service {
private final EdgeIndexClient indexClient;
private final EdgeSearchOperator searchOperator;
private final CommandEvaluator searchCommandEvaulator;
private final WebsiteUrl websiteUrl;
private static final Logger logger = LoggerFactory.getLogger(EdgeSearchService.class);
@SneakyThrows
@ -45,13 +46,14 @@ public class EdgeSearchService extends Service {
Initialization initialization,
MetricsServer metricsServer,
EdgeSearchOperator searchOperator,
CommandEvaluator searchCommandEvaulator
) {
CommandEvaluator searchCommandEvaulator,
WebsiteUrl websiteUrl) {
super(ip, port, initialization, metricsServer);
this.indexClient = indexClient;
this.searchOperator = searchOperator;
this.searchCommandEvaulator = searchCommandEvaulator;
this.websiteUrl = websiteUrl;
Spark.staticFiles.expireTime(600);
@ -79,7 +81,7 @@ public class EdgeSearchService extends Service {
final String query = URLEncoder.encode(String.format("%s site:%s", queryRaw, site), StandardCharsets.UTF_8);
final String profile = request.queryParamOrDefault("profile", "yolo");
response.redirect("https://search.marginalia.nu/search?query="+query+"&profile="+profile);
response.redirect(websiteUrl.withPath("search?query="+query+"&profile="+profile));
return null;
}
@ -141,7 +143,7 @@ public class EdgeSearchService extends Service {
final String queryParam = request.queryParams("query");
if (null == queryParam || queryParam.isBlank()) {
response.redirect("https://search.marginalia.nu/");
response.redirect(websiteUrl.url());
return null;
}