From 034ba87021b59f6f7a75d8e7595ee7cc2cf7af19 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Wed, 21 Apr 2021 22:32:09 +0200 Subject: Update transifex to APIv3 --- createContributors.py | 69 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 26 deletions(-) (limited to 'createContributors.py') diff --git a/createContributors.py b/createContributors.py index fb9bed857..d315e5687 100644 --- a/createContributors.py +++ b/createContributors.py @@ -16,8 +16,10 @@ 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() + nextPage = ('https://api.github.com/repos/AntennaPod/AntennaPod/contributors' + + '?q=contributions&order=desc&per_page=100&page=' + str(page)) + print("Loading " + nextPage) + json = requests.get(nextPage).json() for contributor in json: role = 'Contributor' if contributor['login'] == 'danieloeh': @@ -38,36 +40,51 @@ 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'] +if 'https://www.transifex.com' in config and config['https://www.transifex.com']['username'] == 'api': + TRANSIFEX_TOKEN = config['https://www.transifex.com']['password'] else: - TRANSIFEX_USER = "" - TRANSIFEX_PW = "" + TRANSIFEX_TOKEN = "" + +languages = dict() + +nextPage = 'https://rest.api.transifex.com/team_memberships?filter[organization]=o:antennapod' +while nextPage is not None: + print("Loading " + nextPage) + r = requests.get(nextPage, + headers={'Authorization': 'Bearer ' + TRANSIFEX_TOKEN, + 'Accept': 'application/vnd.api+json'}) + for item in r.json()['data']: + language = item['relationships']['language']['data']['id'] + user = item['relationships']['user']['data']['id'] + if not language in languages: + langCode = language.replace('l:', '') + try: + langName = pycountry.languages.lookup(langCode).name + except: + try: + langName = pycountry.languages.lookup( + langCode.split('_')[0]).name + ' (' + langCode + ')' + except: + langName = code + print('\033[91mLanguage code not found:' + langCode + '\033[0m') + languages[language] = {'name': langName, 'translators': []} + languages[language]['translators'].append(user.replace('u:', '')) + nextPage = r.json()['links']['next'] + +languages = list(languages.values()) +languages.sort(key=lambda x : x['name'].lower()) 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(';', '') +for language in languages: + translators = sorted(language['translators'], key=str.lower) + langName = language['name'] + joinedTranslators = ', '.join(translators).replace(';', '') contributorsFile.write('| ' + langName + ' | ' + joinedTranslators + ' |\n') csvFile.write(langName + ';' + joinedTranslators + '\n') csvFile.close() - contributorsFile.close() + +print('Done') + -- cgit v1.2.3