#!/usr/bin/env nix #!nix shell --impure --expr `` #!nix with (import (builtins.getFlake ''nixpkgs'') {}); #!nix python3.withPackages (ps: with ps; [ requests ]) #!nix `` --command python3 import requests import json import sys import re import subprocess def wiki_cont(url, params): continue_params = None while True: req_params = params if continue_params is not None: req_params |= continue_params json_data = requests.get(url, req_params).json() if "query" in json_data: yield json_data["query"] if "continue" not in json_data: break else: continue_params = json_data["continue"] out_re = re.compile(r"[^ ]*[^ 0-9][^ ]*\.") subprocess.run(["gup", "--always"], check=True) with open(sys.argv[1], 'w') as out: for query in wiki_cont("https://de.wiktionary.org/w/api.php", {"action": "query", "list": "categorymembers", "cmtitle": "Kategorie:Abkürzung_(Deutsch)", "format": "json"}): for item in map(lambda i: i["title"], query["categorymembers"]): if out_re.fullmatch(item): print(item, file=out)