Skip to content

Commit a7550bc

Browse files
committed
Added jsd_url scheme check
1 parent d6e4d76 commit a7550bc

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

translate-messages/__main__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from translate import Translator
55
from urllib.error import URLError, HTTPError
66
from urllib.request import urlopen
7+
from urllib.parse import urlparse
78

89
env = init.env()
910
cli = init.cli(__file__)
@@ -14,16 +15,21 @@
1415
else:
1516
try: # try to fetch template from jsDelivr
1617
jsd_url = f'{cli.urls.jsdelivr}/{cli.name}/{cli.config_filename}'
18+
if urlparse(jsd_url).scheme != 'https':
19+
raise ValueError('Only https URLs are allowed')
20+
1721
with urlopen(jsd_url) as resp:
1822
if resp.status == 200:
1923
cli.config_data = json.loads(resp.read().decode('utf-8'))
2024
else:
2125
raise ValueError('Non-200 response')
26+
2227
except (URLError, HTTPError, json.JSONDecodeError, ValueError):
2328
cli.config_data = {}
2429

2530
with open(cli.config_path, 'w', encoding='utf-8') as configFile:
2631
json.dump(cli.config_data, configFile, indent=2)
32+
2733
print(f'Default config created at {cli.config_path}')
2834
exit()
2935

translate-messages/lib/init.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def parse_csv_val(val) : return [item.strip() for item in val.split(',') if item
55
def cli(callerFile):
66
cli = sns(
77
name='translate-messages',
8-
version='2026.2.10.39',
8+
version='2026.2.10.40',
99
author=sns(name='Adam Lui', email='adam@kudoa.com', url='https://github.com/adamlui'),
1010
description='Translate en/messages.json to other locales',
1111
urls=sns(

0 commit comments

Comments
 (0)