From 33712ca93b6f223faddb102266f8e76cbc014563 Mon Sep 17 00:00:00 2001 From: tchaikovdriver Date: Mon, 15 Mar 2021 12:02:54 +0800 Subject: [PATCH] Create a python script to download the newest golibs.aar and replace the older one with it, for convenience. It is necessary to have Python modules [requests] and [lxml] installed before running this script. --- pull_golibs.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 pull_golibs.py diff --git a/pull_golibs.py b/pull_golibs.py new file mode 100644 index 00000000..efb78ca3 --- /dev/null +++ b/pull_golibs.py @@ -0,0 +1,50 @@ +# coding=utf-8 +import os +import requests +from lxml import etree + + +def figure_out_download_url(): + html = requests.get('https://github.com/trojan-gfw/igniter-go-libs/releases/') + if not html.ok: + return None + root = etree.HTML(html.content) + first_release_entry_div = root.find('.//div[@class="release-entry"]') + if first_release_entry_div is None: + return None + download_a = first_release_entry_div.find('.//div/div[2]/details/div/div/div[1]/a') + url_sub_path = download_a.get('href') + return 'https://github.com' + url_sub_path + + +def replace_golibs(): + golibs_path = './app/src/libs/golibs.aar' + if os.path.exists(golibs_path): + os.remove(golibs_path) + os.rename('tmp.aar', golibs_path) + + +def download_golibs(): + print('Figuring out url to download golibs.aar ...') + download_url = figure_out_download_url() + if download_url is None: + print('Failed to figure out download url') + return + print('Download url: {0} downloading ...'.format(download_url)) + r = requests.get(url=download_url, allow_redirects=True) + if not r.ok: + print('Download golibs.aar failed') + return + with open('tmp.aar', 'wb') as output: + output.write(r.content) + print('Download success') + replace_golibs() + print('Done') + + +def main(): + download_golibs() + + +if __name__ == '__main__': + main()