summaryrefslogtreecommitdiff
path: root/createContributors.py
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-01-01 19:55:42 +0100
committerByteHamster <info@bytehamster.com>2021-01-01 19:55:42 +0100
commitc6a52663c7e46a4b0fa2f1fba618d107e623359e (patch)
tree4898cc196780e5e557169ec44167e02d9032ce9c /createContributors.py
parent773f98fafc379d4d4c4db987c966701b7582f795 (diff)
downloadantennapod-c6a52663c7e46a4b0fa2f1fba618d107e623359e.zip
Updated contributors
Diffstat (limited to 'createContributors.py')
-rw-r--r--createContributors.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/createContributors.py b/createContributors.py
new file mode 100644
index 000000000..fb9bed857
--- /dev/null
+++ b/createContributors.py
@@ -0,0 +1,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()