|
| 1 | +import os |
| 2 | + |
1 | 3 | import requests |
2 | 4 |
|
3 | | -dirOut = '.circleci/fonts/truetype/googleFonts/' |
| 5 | +dir_out = ".circleci/fonts/truetype/googleFonts/" |
| 6 | + |
4 | 7 |
|
5 | | -def download(repo, family, types): |
6 | | - for t in types : |
7 | | - name = family + t + '.ttf' |
8 | | - url = repo + name + '?raw=true' |
9 | | - print(url) |
10 | | - req = requests.get(url, allow_redirects=True) |
| 8 | +def download(repo, family, types, overwrite=True): |
| 9 | + for t in types: |
| 10 | + name = family + t + ".ttf" |
| 11 | + url = repo + name + "?raw=true" |
| 12 | + out_file = dir_out + name |
| 13 | + print("Getting: ", url) |
| 14 | + if os.path.exists(out_file) and not overwrite: |
| 15 | + print(" => Already exists: ", out_file) |
| 16 | + continue |
| 17 | + req = requests.get(url, allow_redirects=False) |
11 | 18 | if req.status_code != 200: |
| 19 | + # If we get a redirect, print an error so that we know to update the URL |
| 20 | + if req.status_code == 302 or req.status_code == 301: |
| 21 | + new_url = req.headers.get("Location") |
| 22 | + print(f" => Redirected -- please update URL to: {new_url}") |
12 | 23 | raise RuntimeError(f""" |
13 | 24 | Download failed. |
14 | 25 | Status code: {req.status_code} |
15 | 26 | Message: {req.reason} |
16 | | -""" |
17 | | - ) |
18 | | - open(dirOut + name, 'wb').write(req.content) |
| 27 | +""") |
| 28 | + open(out_file, "wb").write(req.content) |
| 29 | + |
19 | 30 |
|
20 | 31 | download( |
21 | | - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSansMono/', |
22 | | - 'NotoSansMono', |
23 | | - [ |
24 | | - '-Regular', |
25 | | - '-Bold' |
26 | | - ] |
| 32 | + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSansMono/hinted/ttf/", |
| 33 | + "NotoSansMono", |
| 34 | + ["-Regular", "-Bold"], |
27 | 35 | ) |
28 | 36 |
|
29 | 37 | download( |
30 | | - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSans/', |
31 | | - 'NotoSans', |
32 | | - [ |
33 | | - '-Regular', |
34 | | - '-Italic', |
35 | | - '-Bold' |
36 | | - ] |
| 38 | + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSans/hinted/ttf/", |
| 39 | + "NotoSans", |
| 40 | + ["-Regular", "-Italic", "-Bold"], |
37 | 41 | ) |
38 | 42 |
|
39 | 43 | download( |
40 | | - 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSerif/', |
41 | | - 'NotoSerif', |
| 44 | + "https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSerif/hinted/ttf/", |
| 45 | + "NotoSerif", |
42 | 46 | [ |
43 | | - '-Regular', |
44 | | - '-Italic', |
45 | | - '-Bold', |
46 | | - '-BoldItalic', |
47 | | - ] |
| 47 | + "-Regular", |
| 48 | + "-Italic", |
| 49 | + "-Bold", |
| 50 | + "-BoldItalic", |
| 51 | + ], |
48 | 52 | ) |
49 | 53 |
|
50 | 54 | download( |
51 | | - 'https://github.com/google/fonts/blob/main/ofl/oldstandardtt/', |
52 | | - 'OldStandard', |
53 | | - [ |
54 | | - '-Regular', |
55 | | - '-Italic', |
56 | | - '-Bold' |
57 | | - ] |
| 55 | + "https://raw.githubusercontent.com/google/fonts/refs/heads/main/ofl/oldstandardtt/", |
| 56 | + "OldStandard", |
| 57 | + ["-Regular", "-Italic", "-Bold"], |
58 | 58 | ) |
59 | 59 |
|
60 | 60 | download( |
61 | | - 'https://github.com/google/fonts/blob/main/ofl/ptsansnarrow/', |
62 | | - 'PT_Sans-Narrow-Web', |
63 | | - [ |
64 | | - '-Regular', |
65 | | - '-Bold' |
66 | | - ] |
| 61 | + "https://raw.githubusercontent.com/google/fonts/refs/heads/main/ofl/ptsansnarrow/", |
| 62 | + "PT_Sans-Narrow-Web", |
| 63 | + ["-Regular", "-Bold"], |
67 | 64 | ) |
68 | 65 |
|
69 | 66 | download( |
70 | | - 'https://github.com/impallari/Raleway/blob/master/fonts/v3.000%20Fontlab/TTF/', |
71 | | - 'Raleway', |
72 | | - [ |
73 | | - '-Regular', |
74 | | - '-Regular-Italic', |
75 | | - '-Bold', |
76 | | - '-Bold-Italic' |
77 | | - ] |
| 67 | + "https://raw.githubusercontent.com/impallari/Raleway/refs/heads/master/fonts/v3.000%20Fontlab/TTF/", |
| 68 | + "Raleway", |
| 69 | + ["-Regular", "-Regular-Italic", "-Bold", "-Bold-Italic"], |
78 | 70 | ) |
79 | 71 |
|
80 | 72 | download( |
81 | | - 'https://github.com/googlefonts/roboto/blob/main/src/hinted/', |
82 | | - 'Roboto', |
83 | | - [ |
84 | | - '-Regular', |
85 | | - '-Italic', |
86 | | - '-Bold', |
87 | | - '-BoldItalic' |
88 | | - ] |
| 73 | + "https://raw.githubusercontent.com/googlefonts/roboto-2/refs/heads/main/src/hinted/", |
| 74 | + "Roboto", |
| 75 | + ["-Regular", "-Italic", "-Bold", "-BoldItalic"], |
89 | 76 | ) |
90 | 77 |
|
91 | 78 | download( |
92 | | - 'https://github.com/expo/google-fonts/blob/main/font-packages/gravitas-one/400Regular/', |
93 | | - 'GravitasOne', |
94 | | - [ |
95 | | - '_400Regular' |
96 | | - ] |
| 79 | + "https://raw.githubusercontent.com/expo/google-fonts/refs/heads/main/font-packages/gravitas-one/400Regular/", |
| 80 | + "GravitasOne", |
| 81 | + ["_400Regular"], |
97 | 82 | ) |
0 commit comments