|
| 1 | +import os |
1 | 2 | from typing import Tuple |
2 | 3 | from urllib.request import Request, urlopen |
3 | 4 |
|
|
10 | 11 | f"https://api.github.com/repos/{REPO_OWNER}/{REPO}/contents/" |
11 | 12 | f"{AUTHORS_FILENAME}?ref={BRANCH}" |
12 | 13 | ) |
| 14 | +AUTHORS_FILENAME = "AUTHORS" |
| 15 | +AUTHORS_FILEPATH = os.path.join(os.path.dirname(__file__), AUTHORS_FILENAME) |
13 | 16 |
|
14 | 17 |
|
15 | 18 | def get_authors() -> Tuple[str, str]: |
| 19 | + author_lines = set() |
| 20 | + with open(AUTHORS_FILEPATH, "r") as fd: |
| 21 | + author_lines = {line for line in fd.readlines()} |
| 22 | + |
16 | 23 | req = Request(URL, headers=HEADERS) |
17 | 24 | with urlopen(req) as fd: |
18 | | - for author_line in fd.readlines(): |
19 | | - author_line = author_line.decode("utf-8") |
20 | | - tokens = author_line.split("<") |
21 | | - email = tokens[1].strip()[:-1] |
22 | | - tokens = tokens[0].strip().split("(") |
23 | | - name = tokens[0] |
24 | | - nickname = tokens[1][:-1] |
25 | | - yield (nickname, name, f"mailto:{email}") |
| 25 | + author_lines.update({line.decode("utf-8") for line in fd.readlines()}) |
| 26 | + |
| 27 | + for author_line in author_lines: |
| 28 | + tokens = author_line.split("<") |
| 29 | + email = tokens[1].strip()[:-1] |
| 30 | + tokens = tokens[0].strip().split("(") |
| 31 | + name = tokens[0] |
| 32 | + nickname = tokens[1][:-1] |
| 33 | + yield (nickname, name, f"mailto:{email}") |
0 commit comments