mirror of
https://github.com/Justuser3310/ss14_chemistry_site.git
synced 2025-02-08 09:07:38 +00:00
58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
from requests import get
|
|
from yaml import load, SafeLoader
|
|
from reag__ import reag__
|
|
|
|
def parse_yml(url = 'https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/Resources/Prototypes/Recipes/Reactions/medicine.yml'):
|
|
yml = load(get(url).content.decode('utf-8'), Loader=SafeLoader)
|
|
return yml
|
|
|
|
def parse_ftl(url = 'https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/Resources/Locale/ru-RU/reagents/meta/medicine.ftl'):
|
|
raw = get(url).content.decode('utf-8')
|
|
locales = {}
|
|
for i in raw.splitlines():
|
|
if 'name' in i:
|
|
splitted = i.split()
|
|
name = splitted[0][13:]
|
|
locale = splitted[2]
|
|
locales[name] = locale
|
|
return locales
|
|
|
|
def load_recipes(url = 'https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/Resources/Prototypes/Recipes/Reactions/medicine.yml', category = '-'):
|
|
yml = parse_yml(url)
|
|
recipes = {}
|
|
for element in yml:
|
|
product = element["id"]
|
|
comps = {}
|
|
for elem in element["reactants"]:
|
|
comps[elem] = element["reactants"][elem]["amount"]
|
|
for id, value in element["products"].items():
|
|
out = value
|
|
recipes[product] = reag__(category=category, comps=comps, out=out)
|
|
return recipes
|
|
|
|
def localize(ftl = parse_ftl()):
|
|
recipes = load_recipes()
|
|
for k, v in list(recipes.items()):
|
|
for word in ftl:
|
|
if k.lower() == word:
|
|
new_key = ftl[word].capitalize()
|
|
recipes[new_key] = recipes.pop(k)
|
|
for k1, v1 in list(recipes[new_key].comps.items()):
|
|
for word1 in ftl:
|
|
if k1.lower() == word1:
|
|
new_key1 = ftl[word1]
|
|
recipes[new_key].comps[new_key1] = recipes[new_key].comps.pop(k1)
|
|
else:
|
|
try:
|
|
for k1, v1 in list(recipes[k].comps.items()):
|
|
for word1 in ftl:
|
|
if k1.lower() == word1:
|
|
new_key1 = ftl[word1].capitalize()
|
|
recipes[k].comps[new_key1] = recipes[k].comps.pop(k1)
|
|
except:
|
|
for k1, v1 in list(recipes[new_key].comps.items()):
|
|
for word1 in ftl:
|
|
if k1.lower() == word1:
|
|
new_key1 = ftl[word1].capitalize()
|
|
recipes[new_key].comps[new_key1] = recipes[new_key].comps.pop(k1)
|
|
return recipes |