aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfrosty <gabriel@bwaaa.monster>2026-04-01 04:01:07 +0300
committerfrosty <gabriel@bwaaa.monster>2026-04-01 04:01:07 +0300
commit116069c8e9643f0f16e0fc7c1d123ba45fce720a (patch)
tree00484f2c92253201393897323210f36bd6ca358e /src
parentc41ab84738ddfc71d6062e0d173afa33ac2c35a6 (diff)
downloadomnisearch-116069c8e9643f0f16e0fc7c1d123ba45fce720a.tar.gz
feat: add more locale keys
Diffstat (limited to 'src')
-rw-r--r--src/Routes/Images.c13
-rw-r--r--src/Routes/Search.c39
2 files changed, 34 insertions, 18 deletions
diff --git a/src/Routes/Images.c b/src/Routes/Images.c
index 636f071..d5a1951 100644
--- a/src/Routes/Images.c
+++ b/src/Routes/Images.c
@@ -49,7 +49,11 @@ int images_handler(UrlParams *params) {
char *locale = get_locale("en_uk");
beaker_set_locale(&ctx, locale);
- free(locale);
+
+ const char *rate_limit_msg = beaker_get_locale_value(locale, "rate_limit");
+ if (!rate_limit_msg) rate_limit_msg = "Slow down! Too many image searches from you!";
+ const char *error_images_msg = beaker_get_locale_value(locale, "error_images");
+ if (!error_images_msg) error_images_msg = "Error fetching images";
context_set(&ctx, "page", page_str);
context_set(&ctx, "prev_page", prev_str);
@@ -96,8 +100,7 @@ int images_handler(UrlParams *params) {
rate_limit_check("images", &rate_limit_config);
if (rate_limit_result.limited) {
char response[256];
- snprintf(response, sizeof(response),
- "<h1>Slow down!</h1><p>Too many image searches from you!</p>");
+ snprintf(response, sizeof(response), "<h1>%s</h1>", rate_limit_msg);
send_response(response);
free(request_cache_key);
free(display_query);
@@ -115,7 +118,9 @@ int images_handler(UrlParams *params) {
if (scrape_images(raw_query, page, &results, &result_count) != 0 ||
!results) {
- send_response("<h1>Error fetching images</h1>");
+ char error_html[128];
+ snprintf(error_html, sizeof(error_html), "<h1>%s</h1>", error_images_msg);
+ send_response(error_html);
free(request_cache_key);
free(display_query);
free_context(&ctx);
diff --git a/src/Routes/Search.c b/src/Routes/Search.c
index c5b3ec0..9219620 100644
--- a/src/Routes/Search.c
+++ b/src/Routes/Search.c
@@ -296,15 +296,20 @@ static int add_warning_to_collection(const char *engine_name,
return current_count + 1;
}
-static const char *warning_message_for_job(const ScrapeJob *job) {
+static const char *warning_message_for_job(const ScrapeJob *job, const char *locale) {
switch (job->status) {
- case SCRAPE_STATUS_FETCH_ERROR:
- return "request failed before OmniSearch could read search results.";
- case SCRAPE_STATUS_PARSE_MISMATCH:
- return "returned search results in a format OmniSearch could not parse.";
- case SCRAPE_STATUS_BLOCKED:
- return "returned a captcha or another blocking page instead of search "
- "results.";
+ case SCRAPE_STATUS_FETCH_ERROR: {
+ const char *msg = beaker_get_locale_value(locale, "warning_fetch_error");
+ return msg ? msg : "request failed before OmniSearch could read search results.";
+ }
+ case SCRAPE_STATUS_PARSE_MISMATCH: {
+ const char *msg = beaker_get_locale_value(locale, "warning_parse_mismatch");
+ return msg ? msg : "returned search results in a format OmniSearch could not parse.";
+ }
+ case SCRAPE_STATUS_BLOCKED: {
+ const char *msg = beaker_get_locale_value(locale, "warning_blocked");
+ return msg ? msg : "returned a captcha or another blocking page instead of search results.";
+ }
default:
return NULL;
}
@@ -421,7 +426,11 @@ int results_handler(UrlParams *params) {
char *locale = get_locale("en_uk");
beaker_set_locale(&ctx, locale);
- free(locale);
+
+ const char *rate_limit_msg = beaker_get_locale_value(locale, "rate_limit");
+ if (!rate_limit_msg) rate_limit_msg = "Slow down! Too many searches from you!";
+ const char *no_results_msg = beaker_get_locale_value(locale, "no_results");
+ if (!no_results_msg) no_results_msg = "No results found";
char page_str[16];
snprintf(page_str, sizeof(page_str), "%d", page);
@@ -518,8 +527,7 @@ int results_handler(UrlParams *params) {
rate_limit_check("search", &rate_limit_config);
if (rate_limit_result.limited) {
char response[256];
- snprintf(response, sizeof(response),
- "<h1>Slow down!</h1><p>Too many searches from you!</p>");
+ snprintf(response, sizeof(response), "<h1>%s</h1>", rate_limit_msg);
send_response(response);
free(request_cache_key);
free_context(&ctx);
@@ -629,7 +637,9 @@ int results_handler(UrlParams *params) {
}
free(request_cache_key);
free_context(&ctx);
- send_response("<h1>No results found</h1>");
+ char no_results_html[128];
+ snprintf(no_results_html, sizeof(no_results_html), "<h1>%s</h1>", no_results_msg);
+ send_response(no_results_html);
return 0;
}
@@ -661,7 +671,7 @@ int results_handler(UrlParams *params) {
int warning_count = 0;
for (int i = 0; i < enabled_engine_count; i++) {
- if (warning_message_for_job(&jobs[i]))
+ if (warning_message_for_job(&jobs[i], locale))
warning_count++;
}
@@ -671,7 +681,7 @@ int results_handler(UrlParams *params) {
int warning_index = 0;
for (int i = 0; i < enabled_engine_count; i++) {
- const char *warning_message = warning_message_for_job(&jobs[i]);
+ const char *warning_message = warning_message_for_job(&jobs[i], locale);
if (!warning_message)
continue;
@@ -886,6 +896,7 @@ int results_handler(UrlParams *params) {
}
}
}
+ free(locale);
free_context(&ctx);
return 0;