blob: abcab1da12a51cbaa59217c9df9e6ce03dac1ffc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/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)
|