Research-Stack/2-Search-Space/search/stract/scripts/article_html.py

31 lines
987 B
Python
Vendored

import argparse
import sys
try:
from libzim.reader import Archive
from libzim.search import Query, Searcher
except ImportError:
sys.exit("Please install libzim (pip install libzim)")
parser = argparse.ArgumentParser(description="Dump a specific article from a ZIM file")
parser.add_argument("--zim-file", help="Path to the ZIM file", type=str, default="data/test.zim")
parser.add_argument("--url", help="If the query should be treated as a direct URL", action="store_true", default=False)
parser.add_argument("query", help="Query to search for", type=str)
args = parser.parse_args()
zim = Archive(args.zim_file)
if args.url:
path = f"A/{args.query}"
else:
query = Query().set_query(args.query)
searcher = Searcher(zim)
search = searcher.search(query)
search_count = search.getEstimatedMatches()
res = list(search.getResults(0, 1))
path = res[0]
article = zim.get_entry_by_path(path)
print(bytes(article.get_item().content).decode("UTF-8"))