diff options
| author | frosty <gabriel@bwaaa.monster> | 2026-04-01 04:01:07 +0300 |
|---|---|---|
| committer | frosty <gabriel@bwaaa.monster> | 2026-04-01 04:01:07 +0300 |
| commit | 116069c8e9643f0f16e0fc7c1d123ba45fce720a (patch) | |
| tree | 00484f2c92253201393897323210f36bd6ca358e /src/Routes | |
| parent | c41ab84738ddfc71d6062e0d173afa33ac2c35a6 (diff) | |
| download | omnisearch-116069c8e9643f0f16e0fc7c1d123ba45fce720a.tar.gz | |
feat: add more locale keys
Diffstat (limited to 'src/Routes')
| -rw-r--r-- | src/Routes/Images.c | 13 | ||||
| -rw-r--r-- | src/Routes/Search.c | 39 |
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; |
