mediawiki: Suchfehler lesbar statt als Stacktrace (0.1.1)
Gleichstand mit inmedias.it/dokumentierer d1eeb94. Eine von CirrusSearch abgelehnte Suchanfrage liess mwclient.errors.APIError bis nach oben durchschlagen - der Benutzer sah einen Stacktrace statt einer Meldung. cmd_search faengt den Fehler jetzt ab und beendet mit Code 1. Fuer cirrussearch-parse-error gibt es einen eigenen Hinweis: "insource:wort" funktioniert, die Regex-Form "insource:/muster/" nicht. Letztere braucht das Elasticsearch-Plugin wikimedia-extra, das auf unserer Instanz fehlt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7efb302c10
commit
72a1ca284a
2 files changed
+15
-8
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mediawiki",
|
"name": "mediawiki",
|
||||||
"version": "0.1.0",
|
"version": "0.1.1",
|
||||||
"description": "MediaWiki-Seiten/Templates lesen, rendern und schreiben via wiki.py (fetch/update/render/search, Instanzen wiki & devwiki).",
|
"description": "MediaWiki-Seiten/Templates lesen, rendern und schreiben via wiki.py (fetch/update/render/search, Instanzen wiki & devwiki).",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "inmedias.it"
|
"name": "inmedias.it"
|
||||||
|
|||||||
@@ -88,13 +88,20 @@ def cmd_search(args: argparse.Namespace) -> None:
|
|||||||
sys.exit(f"Error: unknown namespace '{ns_key}'. "
|
sys.exit(f"Error: unknown namespace '{ns_key}'. "
|
||||||
f"Known: all, {', '.join(NAMESPACES)}")
|
f"Known: all, {', '.join(NAMESPACES)}")
|
||||||
|
|
||||||
result = site.api(
|
try:
|
||||||
"query", list="search",
|
result = site.api(
|
||||||
srsearch=args.query,
|
"query", list="search",
|
||||||
srnamespace=ns,
|
srsearch=args.query,
|
||||||
srlimit=50,
|
srnamespace=ns,
|
||||||
srprop="title|snippet",
|
srlimit=50,
|
||||||
)
|
srprop="title|snippet",
|
||||||
|
)
|
||||||
|
except mwclient.errors.APIError as exc:
|
||||||
|
if exc.code == "cirrussearch-parse-error":
|
||||||
|
sys.exit(f"Error: Suchanfrage nicht verstanden: {args.query!r}\n"
|
||||||
|
f"Hinweis: 'insource:wort' funktioniert, die Regex-Form "
|
||||||
|
f"'insource:/muster/' ist auf dieser Instanz nicht freigeschaltet.")
|
||||||
|
sys.exit(f"Error: Suche fehlgeschlagen ({exc.code}): {exc.info}")
|
||||||
hits = result["query"]["search"]
|
hits = result["query"]["search"]
|
||||||
if not hits:
|
if not hits:
|
||||||
print("(keine Ergebnisse)", file=sys.stderr)
|
print("(keine Ergebnisse)", file=sys.stderr)
|
||||||
|
|||||||
Reference in new issue
Block a user