From 81ba20fad962d89c16541ff0c1ad27e56166613b Mon Sep 17 00:00:00 2001 From: CaliBrain Date: Wed, 18 Dec 2024 09:30:35 -0500 Subject: [PATCH] Enable multilingual search (#5) --- book_manager.py | 6 +++--- config.py | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/book_manager.py b/book_manager.py index 5ab4e5c..cc66000 100644 --- a/book_manager.py +++ b/book_manager.py @@ -28,8 +28,8 @@ def search_books(query: str) -> List[BookInfo]: query_html = quote(query) url = ( f"https://annas-archive.org/search?index=&page=1&display=table" - f"&acc=aa_download&acc=external_download&lang={BOOK_LANGUAGE}&sort=" - f"&ext={'&ext='.join(SUPPORTED_FORMATS)}&lang={BOOK_LANGUAGE}&q={query_html}" + f"&acc=aa_download&acc=external_download&sort=" + f"&ext={'&ext='.join(SUPPORTED_FORMATS)}&lang={'&lang='.join(BOOK_LANGUAGE)}&q={query_html}" ) html = network.html_get_page(url) @@ -266,4 +266,4 @@ def _get_download_url(link: str, title: str) -> Optional[str]: else: return download_links[0]['href'] - return None \ No newline at end of file + return None diff --git a/config.py b/config.py index 484bdd0..5176277 100644 --- a/config.py +++ b/config.py @@ -3,6 +3,8 @@ import os from pathlib import Path +_SUPPORTED_BOOK_LANGUAGE = ['en','zh','ru','es','fr','de','it','pt','pl','bg','nl','ja','ar','he','hu','la','cs','ko','tr','uk','id','ro','el','lt','bn','zh‑Hant','af','ca','sv','th','hi','ga','lv','kn','sr','bo','da','fa','hr','sk','jv','vi','ur','fi','no','rw','ta','be','kk','mn','ka','sl','eo','gl','mr','fil','gu','ml','ky','qu','az','sw','ba','pa','ms','te','sq','ug','hy','shn'] + # Directory settings BASE_DIR = Path(__file__).resolve().parent LOG_DIR = "/var/logs" @@ -30,6 +32,10 @@ SUPPORTED_FORMATS = os.getenv("SUPPORTED_FORMATS", "epub,mobi,azw3,fb2,djvu,cbz, SUPPORTED_FORMATS = SUPPORTED_FORMATS.split(",") BOOK_LANGUAGE = os.getenv("BOOK_LANGUAGE", "en") +BOOK_LANGUAGE = BOOK_LANGUAGE.lower().split(',') +BOOK_LANGUAGE = [l for l in BOOK_LANGUAGE if l in _SUPPORTED_BOOK_LANGUAGE] +if len(BOOK_LANGUAGE) == 0: + BOOK_LANGUAGE = ['en'] # API settings FLASK_HOST = os.getenv("FLASK_HOST", "0.0.0.0")