diff options
author | lilac | 2019-01-15 04:12:10 +0800 |
---|---|---|
committer | lilac | 2019-01-15 04:12:10 +0800 |
commit | 2d4e6c62143980fd3221f5c2520823d55d0e11e0 (patch) | |
tree | f5837345fdb16b90b3f05a56c556144565c433ff /gen_pkgbuild.py | |
download | aur-2d4e6c62143980fd3221f5c2520823d55d0e11e0.tar.gz |
update by lilac
Diffstat (limited to 'gen_pkgbuild.py')
-rw-r--r-- | gen_pkgbuild.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/gen_pkgbuild.py b/gen_pkgbuild.py new file mode 100644 index 000000000000..0f45c7dfe72f --- /dev/null +++ b/gen_pkgbuild.py @@ -0,0 +1,62 @@ +import io +import logging +import sys + +from lxml import etree +import requests +import tornado.template + + +logger = logging.getLogger(__name__) + + +def main(pkgver): + all_languages = {} + + mozilla_translations_page = requests.get( + 'https://pontoon.mozilla.org/projects/thunderbird/ajax/', + headers={'X-Requested-With': 'XMLHttpRequest'}, + ).text + + parser = etree.HTMLParser() + tree = etree.parse(io.StringIO(mozilla_translations_page), parser) + for lang_td in tree.findall('.//td[@class="name"]'): + lang_iso639 = lang_td.attrib['data-slug'] + lang_name = lang_td.find('.//a').text + all_languages[lang_iso639] = lang_name + all_languages['en-US'] = 'English' + + sha256sums_data = requests.get( + f'https://ftp.mozilla.org/pub/thunderbird/releases/{pkgver}/SHA256SUMS' + ).text + + sha256sums = [] + available_languages = [] + for line in sha256sums_data.strip().split('\n'): + sha256sum, filename = line.split(maxsplit=1) + if not filename.startswith('linux-x86_64/xpi/'): + continue + sha256sums.append(sha256sum) + available_languages.append( + filename[len('linux-x86_64/xpi/'):][:-len('.xpi')]) + available_languages = sorted(available_languages) + + logger.info('Collected languages: %s', available_languages) + + languages = {} + for lang_iso639 in available_languages: + languages[lang_iso639] = all_languages[lang_iso639] + loader = tornado.template.Loader('.') + content = loader.load('PKGBUILD.tmpl').generate( + pkgver=pkgver, + languages=languages, + sha256sums=sha256sums, + ) + + with open('PKGBUILD', 'wb') as f: + f.write(content) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + main(sys.argv[1]) |