mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
31 lines
987 B
Python
Vendored
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"))
|