summaryrefslogtreecommitdiff
path: root/createContributors.py
blob: fb9bed85761ef7f4e8c08f815bb8d07760359f85 (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python3
import pycountry
import requests
import configparser
import os

contributorsFile = open("CONTRIBUTORS.md", "w")

###### Developers #####
MAINTAINERS = ['ByteHamster', 'keunes']
FORMER_MAINTAINERS = ['mfietz', 'TomHennen']

csvFile = open("app/src/main/assets/developers.csv", "w")
contributorsFile.write('# Developers\n\n')
page = 1
hasMore = True
first = True
while hasMore:
    json = requests.get('https://api.github.com/repos/AntennaPod/AntennaPod/contributors'
        + '?q=contributions&order=desc&per_page=100&page=' + str(page)).json()
    for contributor in json:
        role = 'Contributor'
        if contributor['login'] == 'danieloeh':
            role = 'Original creator of AntennaPod (retired)'
        elif contributor['login'] in MAINTAINERS:
            role = 'Maintainer'
        elif contributor['login'] in FORMER_MAINTAINERS:
            role = 'Maintainer (retired)'
        csvFile.write(contributor['login'].replace(";", "") + ';' + str(contributor['id']) + ';' + role + '\n')
        if not first:
            contributorsFile.write(', ')
        first = False
        contributorsFile.write('[' + contributor['login'] + '](https://github.com/' + contributor['login'] + ')')
    page = page + 1
    hasMore = len(json) > 0
csvFile.close()

###### Translators #####
config = configparser.ConfigParser()
config.read(os.path.expanduser("~") + '/.transifexrc')
if 'https://www.transifex.com' in config:
    TRANSIFEX_USER = config['https://www.transifex.com']['username']
    TRANSIFEX_PW = config['https://www.transifex.com']['password']
else:
    TRANSIFEX_USER = ""
    TRANSIFEX_PW = ""

csvFile = open("app/src/main/assets/translators.csv", "w")
r = requests.get('http://www.transifex.com/api/2/project/antennapod/languages/',
        auth=(TRANSIFEX_USER, TRANSIFEX_PW))
contributorsFile.write('\n\n# Translators\n\n')
contributorsFile.write('| Language | Translators |\n| :-- | :-- |\n')

for lang in r.json():
    langContributers = lang['coordinators'] + lang['reviewers'] + lang['translators']
    langContributers = sorted(langContributers, key=str.lower)
    langCode = lang['language_code']
    try:
        langName = pycountry.languages.lookup(langCode).name
    except:
        try:
            langName = pycountry.languages.lookup(
                langCode.split('_')[0]).name + ' (' + langCode + ')'
        except:
            langName = lang['language_code']
            print('\033[91mLanguage code not found:' + langCode + '\033[0m')

    joinedTranslators = ', '.join(langContributers).replace(';', '')
    contributorsFile.write('| ' + langName + ' | ' + joinedTranslators + ' |\n')
    csvFile.write(langName + ';' + joinedTranslators + '\n')
csvFile.close()

contributorsFile.close()