| 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() | |