27 lines
686 B
Python
27 lines
686 B
Python
|
import json
|
||
|
import requests
|
||
|
|
||
|
|
||
|
def gen_bangs_json(bangs_file):
|
||
|
# Request list
|
||
|
try:
|
||
|
r = requests.get('https://duckduckgo.com/bang.v255.js')
|
||
|
r.raise_for_status()
|
||
|
except requests.exceptions.HTTPError as err:
|
||
|
raise SystemExit(err)
|
||
|
|
||
|
# Convert to json
|
||
|
data = json.loads(r.text)
|
||
|
|
||
|
# Set up a json object (with better formatting) for all available bangs
|
||
|
bangs_data = {}
|
||
|
|
||
|
for row in data:
|
||
|
bang_command = '!' + row['t']
|
||
|
bangs_data[bang_command] = {
|
||
|
'url': row['u'].replace('{{{s}}}', '{}'),
|
||
|
'suggestion': bang_command + ' (' + row['s'] + ')'
|
||
|
}
|
||
|
|
||
|
json.dump(bangs_data, open(bangs_file, 'w'))
|