import sys
import re
import subprocess
import os
from datetime import datetime
x = datetime.now()
formated_date = '/'.join([str(i) for i in [x.day, x.month, x.year]])
def parse_problem(pro_file):
con = open(pro_file, 'r').read()
plink = re.search(r'(https://.*)', con, re.M | re.I).group(1)
diffi = re.search(r'# (Medium|Easy|Hard)', con, re.M | re.I)
diffi = diffi.group(1) if diffi else 'Easy'
pid = pro_file.replace('/', '.').split(".")[1]
title = pro_file.replace('/', '.').split(".")[2]
return [plink, diffi, pid, title]
def format_print():
listfiles = subprocess.Popen(["ls", "-lt", "solutions"], stdout=subprocess.PIPE).stdout
outputs = []
for fs in listfiles:
for line in str(fs).split("\n"):
arr = line.split()
rm = re.match(r'\d+.*\.rs', arr[-1])
if rm is not None:
local_link = "solutions/" + rm.group(0)
plink, diffi, pid, title = parse_problem(local_link)
outputs.append([pid, diffi, plink, title, "./" + local_link])
outputs.sort(key=lambda a: int(a[0]))
return outputs
def find_rust_solution(local):
return local if os.path.exists(local) else None
def update_readme():
diff_symbols = {'Hard': '𝐇', 'Medium': '𝐌', 'Easy': '𝐄'}
readme_head = open('conf.d/readme_head', 'r').read()
items = format_print()
with open('README.md', 'w') as f:
f.write(readme_head)
for pid, diffi, plink, title, local in items:
tr = "|" + diff_symbols[diffi] + "." + pid + " | [" + title + "](" + plink + ") | [Rust solution](" + local + ")"
tr += "|\n"
f.write(tr)
f.write(open('conf.d/readme_tail', 'r').read())
update_readme()