monero-site/.github/alphabetic-userguide.py

42 lines
1.2 KiB
Python

from bs4 import BeautifulSoup
import yaml
import sys
en_yaml = "_i18n/en.yml"
index = "resources/user-guides/index.md"
with open(en_yaml, 'r') as stream:
data_loaded = yaml.safe_load(stream)
with open(index, "r") as f:
soup = BeautifulSoup(f, "html.parser")
divs = soup.find_all("div", {"class": "col"})
data = {}
for div in divs:
category = str(div.find("h2"))
category = category.split(".")[1].split(" ")[0]
data[category] = []
items = div.find_all("p")
for raw_html in items:
title_key = raw_html.text.split(".")[1].split(" ")[0]
title_yaml = data_loaded["user-guides"][title_key]
info = {
"title_key": title_key,
"title_yaml": title_yaml,
"raw_data": raw_html
}
data[category].append(info)
success = 1
for category in data:
original = data[category]
alphabetic = sorted(data[category], key=lambda d: d['title_yaml'])
data[category] = alphabetic
if original == alphabetic:
print(f"--> Category: {category} [ OK ]")
else:
print(f"--> Category: {category} [ FAIL ]")
success = 0
if success == 0:
sys.exit(1)