diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-05-11 22:39:03 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-05-11 22:39:03 -0700 |
| commit | 434a0414377d098671ba92c33100943ca0c328fe (patch) | |
| tree | 17b84c2fcea83d3562fbdcbfff5f1d28004a963a /build/lib/sticker/scalar_convert.py | |
| parent | 4c13a2c254d68980bcf43f132e0b78e3c08ed3b1 (diff) | |
Diffstat (limited to 'build/lib/sticker/scalar_convert.py')
| -rw-r--r-- | build/lib/sticker/scalar_convert.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/build/lib/sticker/scalar_convert.py b/build/lib/sticker/scalar_convert.py new file mode 100644 index 0000000..76a0101 --- /dev/null +++ b/build/lib/sticker/scalar_convert.py @@ -0,0 +1,56 @@ +# maunium-stickerpicker - A fast and simple Matrix sticker picker widget. +# Copyright (C) 2020 Tulir Asokan +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +import sys +import json + +index_path = "../web/packs/index.json" + +try: + with util.open_utf8(index_path) as index_file: + index_data = json.load(index_file) +except (FileNotFoundError, json.JSONDecodeError): + index_data = {"packs": []} + +with util.open_utf8(sys.argv[-1]) as file: + data = json.load(file) + +for pack in data["assets"]: + title = pack["name"].title() + if "images" not in pack["data"]: + print(f"Skipping {title}") + continue + pack_id = f"scalar-{pack['asset_id']}" + stickers = [] + for sticker in pack["data"]["images"]: + sticker_data = sticker["content"] + sticker_data["id"] = sticker_data["url"].split("/")[-1] + stickers.append(sticker_data) + pack_data = { + "title": title, + "id": pack_id, + "stickers": stickers, + } + filename = f"scalar-{pack['name'].replace(' ', '_')}.json" + pack_path = f"web/packs/{filename}" + with util.open_utf8(pack_path, "w") as pack_file: + json.dump(pack_data, pack_file) + print(f"Wrote {title} to {pack_path}") + if filename not in index_data["packs"]: + index_data["packs"].append(filename) + +with util.open_utf8(index_path, "w") as index_file: + json.dump(index_data, index_file, indent=" ") +print(f"Updated {index_path}") |
