File size: 1,046 Bytes
709c473 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import json
from textwrap import dedent
import db.persistence as persistence
def dump() -> None:
data = [
(element.emoji, element.name, discovered)
for element, discovered in persistence.select_elements_and_discovered()
]
print(
dedent(
f"""
let data = {json.dumps(data)};
let storage = JSON.parse(localStorage.getItem("infinite-craft-data")) || {{}};
storage.elements = storage.elements || [];
const nameSet = new Set(storage.elements.map(element => element.text));
data.forEach(element => {{
let [emoji, name, discovered] = element;
if (!nameSet.has(name)) {{
storage.elements.push({{ text: name, emoji: emoji, discovered: discovered }});
}}
}});
localStorage.setItem("infinite-craft-data", JSON.stringify(storage));
""",
).strip(),
)
if __name__ == "__main__":
dump()
|