diff options
| author | Stanislav Boboň | 2020-10-20 14:46:52 +0200 |
|---|---|---|
| committer | Stanislav Boboň | 2020-10-20 14:46:52 +0200 |
| commit | 9f5717587ecdd9a27f9a03a8c5ea246383b994f2 (patch) | |
| tree | e36669fca28f288bb88a0652a830a31ab22b8a1a | |
| parent | 290eb267156fed196d7453d98870dbd85c2fd26f (diff) | |
| download | sec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.tar.gz sec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.tar.zst sec-certs-9f5717587ecdd9a27f9a03a8c5ea246383b994f2.zip | |
fstrings in downloads
| -rw-r--r-- | sec_certs/download.py | 59 | ||||
| -rw-r--r-- | sec_certs/download_files.py | 0 |
2 files changed, 30 insertions, 29 deletions
diff --git a/sec_certs/download.py b/sec_certs/download.py index eacee1f4..33733634 100644 --- a/sec_certs/download.py +++ b/sec_certs/download.py @@ -8,7 +8,6 @@ import requests from .extract_certificates import PDF2TEXT_CONVERT from .files import search_files, FILE_ERRORS_STRATEGY - CC_WEB_URL = 'https://www.commoncriteriaportal.org' @@ -16,7 +15,7 @@ def download_file(url: str, output: Path) -> int: r = requests.get(url, allow_redirects=True) with output.open("wb") as f: f.write(r.content) - #for chunk in r.iter_content(chunk_size=1024): + # for chunk in r.iter_content(chunk_size=1024): # if chunk: # f.write(chunk) return r.status_code @@ -26,8 +25,8 @@ def generate_download_script(file_name, certs_dir, targets_dir, base_url, downlo with open(file_name, "w", errors=FILE_ERRORS_STRATEGY) as write_file: # certs files if certs_dir != '': - write_file.write('mkdir \"{}\"\n'.format(certs_dir)) - write_file.write('cd \"{}\"\n\n'.format(certs_dir)) + write_file.write(f'mkdir \"{certs_dir}\"\n') + write_file.write(f'cd \"{certs_dir}\"\n\n') for cert in download_files_certs: # double %% is necessary to prevent replacement of %2 within script (second argument of script) file_name_short_web = cert[0].replace(' ', '%%20') @@ -35,42 +34,45 @@ def generate_download_script(file_name, certs_dir, targets_dir, base_url, downlo if file_name_short_web.find(base_url) != -1: # base url already included write_file.write( - 'curl \"{}\" -o \"{}\"\n'.format(file_name_short_web, cert[1])) + f'curl \"{file_name_short_web}\" -o \"{cert[1]}\"\n') else: # insert base url write_file.write( - 'curl \"{}{}\" -o \"{}\"\n'.format(base_url, file_name_short_web, cert[1])) - write_file.write('{} \"{}\"\n\n'.format(PDF2TEXT_CONVERT, cert[1])) + f'curl \"{base_url}{file_name_short_web}\" -o \"{cert[1]}\"\n') + write_file.write(f'{PDF2TEXT_CONVERT} \"{cert[1]}\"\n\n') if len(download_files_certs) > 0 and len(cert) > 2: # security targets file if targets_dir != '': write_file.write('\n\ncd ..\n') - write_file.write('mkdir \"{}\"\n'.format(targets_dir)) - write_file.write('cd \"{}\"\n\n'.format(targets_dir)) + write_file.write(f'mkdir \"{targets_dir}\"\n') + write_file.write(f'cd \"{targets_dir}\"\n\n') for cert in download_files_certs: # double %% is necessary to prevent replacement of %2 within script (second argument of script) file_name_short_web = cert[2].replace(' ', '%%20') if file_name_short_web.find(base_url) != -1: # base url already included write_file.write( - 'curl \"{}\" -o \"{}\"\n'.format(file_name_short_web, cert[3])) + f'curl \"{file_name_short_web}\" -o \"{cert[3]}\"\n') else: # insert base url write_file.write( - 'curl \"{}{}\" -o \"{}\"\n'.format(base_url, file_name_short_web, cert[3])) - write_file.write('{} \"{}\"\n\n'.format( - PDF2TEXT_CONVERT, cert[3])) + f'curl \"{base_url}{file_name_short_web}\" -o \"{cert[3]}\"\n') + write_file.write(f'{PDF2TEXT_CONVERT} \"{cert[3]}\"\n\n') def download_cc_web(web_dir: Path): download_file("https://www.commoncriteriaportal.org/products/", web_dir / "cc_products_active.html") - download_file("https://www.commoncriteriaportal.org/products/index.cfm?archived=1", web_dir / "cc_products_archived.html") + download_file("https://www.commoncriteriaportal.org/products/index.cfm?archived=1", + web_dir / "cc_products_archived.html") download_file("https://www.commoncriteriaportal.org/labs/", web_dir / "cc_labs.html") - download_file("https://www.commoncriteriaportal.org/products/certified_products.csv", web_dir / "cc_products_active.csv") - download_file("https://www.commoncriteriaportal.org/products/certified_products-archived.csv", web_dir / "cc_products_archived.csv") + download_file("https://www.commoncriteriaportal.org/products/certified_products.csv", + web_dir / "cc_products_active.csv") + download_file("https://www.commoncriteriaportal.org/products/certified_products-archived.csv", + web_dir / "cc_products_archived.csv") download_file("https://www.commoncriteriaportal.org/pps/", web_dir / "cc_pp_active.html") - download_file("https://www.commoncriteriaportal.org/pps/collaborativePP.cfm?cpp=1", web_dir / "cc_pp_collaborative.html") + download_file("https://www.commoncriteriaportal.org/pps/collaborativePP.cfm?cpp=1", + web_dir / "cc_pp_collaborative.html") download_file("https://www.commoncriteriaportal.org/pps/index.cfm?archived=1", web_dir / "cc_pp_archived.html") download_file("https://www.commoncriteriaportal.org/pps/pps.csv", web_dir / "cc_pp_active.csv") download_file("https://www.commoncriteriaportal.org/pps/pps-archived.csv", web_dir / "cc_pp_archived.csv") @@ -87,6 +89,7 @@ def download_cc(walk_dir: Path, cert_list, num_threads): download_file(cert[2], walk_dir / "targets" / cert[3]) else: download_file(CC_WEB_URL + cert[2], walk_dir / "targets" / cert[3]) + with tqdm(total=len(cert_list)) as pbar: for response in ThreadPool(num_threads).imap(download_one, cert_list): pbar.update(1) @@ -123,14 +126,13 @@ def generate_failed_download_script(base_dir: Path): file_name_short = file_name[file_name.rfind(os.sep) + 1:] # double %% is necessary to prevent replacement of %2 within script (second argument of script) file_name_short_web = file_name_short.replace(' ', '%%20') - download_link = '/files/epfiles/{}'.format(file_name_short_web) + download_link = f'/files/epfiles/{file_name_short_web}' download_again.append((download_link, file_name)) generate_download_script('download_failed_certs.bat', '', '', CC_WEB_URL, download_again) - print('*** Number of files to be re-downloaded again (inside \'{}\'): {}'.format( - 'download_failed_certs.bat', len(download_again))) - + print( + f'*** Number of files to be re-downloaded again (inside \'{"download_failed_certs.bat"}\'): {len(download_again)}') def generate_fips_basic_download_script(): @@ -151,15 +153,14 @@ def generate_fips_download_script(file_name, fips_dir): with open(file_name, 'w', errors=FILE_ERRORS_STRATEGY) as write_file: # make directories for both html and security policies, scraping in one go - write_file.write('mkdir {}\n'.format(html_dir)) - write_file.write('mkdir {}\n\n'.format(sp_dir)) + write_file.write(f'mkdir {html_dir}\n') + write_file.write(f'mkdir {sp_dir}\n\n') + # upper bound for max certs, in reality there is ~ 3730 certificates for cert_id in range(1, 4001): write_file.write( - 'curl "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/{}" -o {}{}.html\n'.format( - cert_id, html_dir, cert_id)) + f'curl "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/{cert_id}" -o {html_dir}{cert_id}.html\n') write_file.write( - 'curl "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents' - '/security-policies/140sp{}.pdf" -o {}{}.pdf\n'.format( - cert_id, sp_dir, cert_id)) - write_file.write("{} {}{}.pdf\n".format(PDF2TEXT_CONVERT, sp_dir, cert_id)) + f'curl "https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents' + '/security-policies/140sp{cert_id}.pdf" -o {sp_dir}{cert_id}.pdf\n') + write_file.write(f"{PDF2TEXT_CONVERT} {sp_dir}{cert_id}.pdf\n") diff --git a/sec_certs/download_files.py b/sec_certs/download_files.py deleted file mode 100644 index e69de29b..00000000 --- a/sec_certs/download_files.py +++ /dev/null |
