mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
Make website url configurable for search engine redirects
This commit is contained in:
parent
0e65384781
commit
389818c6c3
@ -0,0 +1,7 @@
|
|||||||
|
package nu.marginalia.wmsa.configuration;
|
||||||
|
|
||||||
|
public record WebsiteUrl(String url) {
|
||||||
|
public String withPath(String path) {
|
||||||
|
return url + path;
|
||||||
|
}
|
||||||
|
}
|
@ -2,12 +2,14 @@ package nu.marginalia.wmsa.edge.search;
|
|||||||
|
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import nu.marginalia.util.language.conf.LanguageModels;
|
import nu.marginalia.util.language.conf.LanguageModels;
|
||||||
|
import nu.marginalia.wmsa.configuration.WebsiteUrl;
|
||||||
import nu.marginalia.wmsa.configuration.WmsaHome;
|
import nu.marginalia.wmsa.configuration.WmsaHome;
|
||||||
|
|
||||||
public class EdgeSearchModule extends AbstractModule {
|
public class EdgeSearchModule extends AbstractModule {
|
||||||
|
|
||||||
public void configure() {
|
public void configure() {
|
||||||
bind(LanguageModels.class).toInstance(WmsaHome.getLanguageModels());
|
bind(LanguageModels.class).toInstance(WmsaHome.getLanguageModels());
|
||||||
|
bind(WebsiteUrl.class).toInstance(new WebsiteUrl(System.getProperty("website-url", "https://search.marginalia.nu/")));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import com.google.inject.name.Named;
|
|||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import nu.marginalia.wmsa.api.model.ApiSearchResult;
|
import nu.marginalia.wmsa.api.model.ApiSearchResult;
|
||||||
import nu.marginalia.wmsa.api.model.ApiSearchResults;
|
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.Context;
|
||||||
import nu.marginalia.wmsa.configuration.server.Initialization;
|
import nu.marginalia.wmsa.configuration.server.Initialization;
|
||||||
import nu.marginalia.wmsa.configuration.server.MetricsServer;
|
import nu.marginalia.wmsa.configuration.server.MetricsServer;
|
||||||
@ -34,7 +35,7 @@ public class EdgeSearchService extends Service {
|
|||||||
private final EdgeIndexClient indexClient;
|
private final EdgeIndexClient indexClient;
|
||||||
private final EdgeSearchOperator searchOperator;
|
private final EdgeSearchOperator searchOperator;
|
||||||
private final CommandEvaluator searchCommandEvaulator;
|
private final CommandEvaluator searchCommandEvaulator;
|
||||||
|
private final WebsiteUrl websiteUrl;
|
||||||
private static final Logger logger = LoggerFactory.getLogger(EdgeSearchService.class);
|
private static final Logger logger = LoggerFactory.getLogger(EdgeSearchService.class);
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@ -45,13 +46,14 @@ public class EdgeSearchService extends Service {
|
|||||||
Initialization initialization,
|
Initialization initialization,
|
||||||
MetricsServer metricsServer,
|
MetricsServer metricsServer,
|
||||||
EdgeSearchOperator searchOperator,
|
EdgeSearchOperator searchOperator,
|
||||||
CommandEvaluator searchCommandEvaulator
|
CommandEvaluator searchCommandEvaulator,
|
||||||
) {
|
WebsiteUrl websiteUrl) {
|
||||||
super(ip, port, initialization, metricsServer);
|
super(ip, port, initialization, metricsServer);
|
||||||
this.indexClient = indexClient;
|
this.indexClient = indexClient;
|
||||||
|
|
||||||
this.searchOperator = searchOperator;
|
this.searchOperator = searchOperator;
|
||||||
this.searchCommandEvaulator = searchCommandEvaulator;
|
this.searchCommandEvaulator = searchCommandEvaulator;
|
||||||
|
this.websiteUrl = websiteUrl;
|
||||||
|
|
||||||
Spark.staticFiles.expireTime(600);
|
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 query = URLEncoder.encode(String.format("%s site:%s", queryRaw, site), StandardCharsets.UTF_8);
|
||||||
final String profile = request.queryParamOrDefault("profile", "yolo");
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
@ -141,7 +143,7 @@ public class EdgeSearchService extends Service {
|
|||||||
|
|
||||||
final String queryParam = request.queryParams("query");
|
final String queryParam = request.queryParams("query");
|
||||||
if (null == queryParam || queryParam.isBlank()) {
|
if (null == queryParam || queryParam.isBlank()) {
|
||||||
response.redirect("https://search.marginalia.nu/");
|
response.redirect(websiteUrl.url());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user