mirror of
1
0
Fork 0

Improve download speed of update plugin script

This commit is contained in:
Daniel Julius Lasiman 2015-06-06 22:12:17 +07:00
parent 4cf1fa37e6
commit d0eb16db58
1 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,11 @@
try:
import concurrent.futures as futures
except ImportError:
try:
import futures
except ImportError:
futures = None
import zipfile import zipfile
import shutil import shutil
import tempfile import tempfile
@ -72,14 +80,21 @@ def download_extract_replace(plugin_name, zip_path, temp_dir, source_dir):
print('Updated {0}'.format(plugin_name)) print('Updated {0}'.format(plugin_name))
def update(plugin):
name, github_url = plugin.split(' ')
zip_path = GITHUB_ZIP % github_url
download_extract_replace(name, zip_path,
temp_directory, SOURCE_DIR)
if __name__ == '__main__': if __name__ == '__main__':
temp_directory = tempfile.mkdtemp() temp_directory = tempfile.mkdtemp()
try: try:
for line in PLUGINS.splitlines(): if futures:
name, github_url = line.split(' ') with futures.ThreadPoolExecutor(16) as executor:
zip_path = GITHUB_ZIP % github_url executor.map(update, PLUGINS.splitlines())
download_extract_replace(name, zip_path, else:
temp_directory, SOURCE_DIR) [update(x) for x in PLUGINS.splitlines()]
finally: finally:
shutil.rmtree(temp_directory) shutil.rmtree(temp_directory)