import os
import xml.etree.ElementTree as ET
import re
table_columns = 6
img_domain = "https://edent.github.io/SuperTinyIcons/"
svg_list = sorted(os.listdir('images/svg/'))
ref_list = sorted(os.listdir('images/reference/'))
svg_data = {}
total_bytes = 0
for svg_file in svg_list:
if not svg_file.endswith('.svg'):
continue
svg = svg_file.split('.')[0]
svg_data[svg] = { 'svg_file' : svg_file }
svg_data[svg]['name'] = ET.parse(f'images/svg/{svg_file}').getroot().attrib["aria-label"]
bytes = os.stat(f'images/svg/{svg_file}').st_size
svg_data[svg]['bytes'] = bytes
total_bytes += bytes
for ref_file in ref_list:
if ref_file.endswith('.url'):
continue
ref_name = ref_file.split('.')[0]
if ref_name in svg_data:
svg_data[ref_name]['ref_file'] = ref_file
for ref_url in ref_list:
if ref_url.endswith('.url'):
ref_name = ref_url.split('.')[0]
if ref_name in svg_data:
svg_data[ref_name]['source'] = open("images/reference/" + ref_url, "r").readline()
readme_table = "
\n"
check_table = 'SVG Icon | Circle Icon | Reference | Source |
\n'
reference_table = "-|-|-\n"
missing_table = " | ** No Reference Image Found ** | \n"
counter = 0
for svg in svg_data:
svg_file = svg_data[svg]['svg_file']
name = svg_data[svg]['name']
bytes = svg_data[svg]['bytes']
check_table += f' |  | '
if 'ref_file' in svg_data[svg]:
ref_file = svg_data[svg]['ref_file']
reference_table += f'
|
| '
check_table += f' | '
if 'source' in svg_data[svg]:
source = svg_data[svg]['source']
reference_table += source
check_table += f'{source} | '
reference_table += '\n'
else:
missing_table += f'
| {name}
*[{svg}]* | \n'
check_table += '
\n'
if counter == 0 :
readme_table += "\n"
readme_table += f'{name} '
readme_table += f' '
readme_table += f'{bytes} bytes | \n'
counter +=1
if counter == table_columns:
readme_table += "
\n\n"
counter = 0
if counter != 0 :
readme_table += "\n\n"
readme_table += "
"
check_table += "
"
readme_summary_text = f"There are currently {len(svg_list)} icons and the average size is _under_ {round(total_bytes / len(svg_list))} bytes!"
with open('README.md','r+') as f:
file = f.read()
file = re.sub(r"(?s)", readme_table, file)
file = re.sub("There are currently \d* icons and the average size is _under_ \d* bytes\!", readme_summary_text, file)
f.seek(0)
f.write(file)
f.truncate()
print(f"README.md updated with {len(svg_list)} icons.")
with open('REFERENCE.md','r+') as f:
file = f.read()
file = re.sub(r"(?s)-\|-\|-.*", reference_table, file)
file += missing_table
f.seek(0)
f.write(file)
f.truncate()
print(f"REFERENCE.md updated.")
with open('CHECK.html','r+') as f:
file = f.read()
file = re.sub(r"(?s)", check_table, file)
f.seek(0)
f.write(file)
f.truncate()
print(f"CHECK.html updated.")