Add support for ordering stickers in custom packs

This commit is contained in:
Tulir Asokan 2020-09-13 17:29:08 +03:00
parent 727b022b23
commit b0509920b4
2 changed files with 9 additions and 1 deletions

View file

@ -36,6 +36,8 @@ Notes:
1. Create a directory with your sticker images.
* The file name (excluding extension) will be used as the caption.
* The directory name will be used as the pack name/ID.
* If you want the stickers to appear in a specific order, prefix them with `<number>-`,
e.g. `01-Cat.png`. The number and dash won't be included in the caption.
2. Run `sticker-pack <pack directory>`.
* If you want to override the pack displayname, pass `--title <custom title>`.
3. Copy `<pack directory>/pack.json` to `web/packs/your-pack-name.json`.

View file

@ -42,7 +42,7 @@ async def main(args: argparse.Namespace) -> None:
else:
old_stickers = {sticker["id"]: sticker for sticker in pack["stickers"]}
pack["stickers"] = []
for file in os.listdir(args.path):
for file in sorted(os.listdir(args.path)):
if file.startswith("."):
continue
path = os.path.join(args.path, file)
@ -60,6 +60,12 @@ async def main(args: argparse.Namespace) -> None:
continue
print(f"Processing {file}", end="", flush=True)
name = os.path.splitext(file)[0]
# If the name starts with "number-", remove the prefix
name_split = name.split("-", 1)
if len(name_split) == 2 and name_split[0].isdecimal():
name = name_split[1]
sticker_id = f"sha256:{sha256(image_data).hexdigest()}"
print(".", end="", flush=True)
if sticker_id in old_stickers: