Browse Source

Add support for ordering stickers in custom packs

pull/26/head
Tulir Asokan 4 years ago
parent
commit
b0509920b4
  1. 2
      README.md
  2. 8
      sticker/pack.py

2
README.md

@ -36,6 +36,8 @@ Notes:
1. Create a directory with your sticker images. 1. Create a directory with your sticker images.
* The file name (excluding extension) will be used as the caption. * The file name (excluding extension) will be used as the caption.
* The directory name will be used as the pack name/ID. * 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>`. 2. Run `sticker-pack <pack directory>`.
* If you want to override the pack displayname, pass `--title <custom title>`. * 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`. 3. Copy `<pack directory>/pack.json` to `web/packs/your-pack-name.json`.

8
sticker/pack.py

@ -42,7 +42,7 @@ async def main(args: argparse.Namespace) -> None:
else: else:
old_stickers = {sticker["id"]: sticker for sticker in pack["stickers"]} old_stickers = {sticker["id"]: sticker for sticker in pack["stickers"]}
pack["stickers"] = [] pack["stickers"] = []
for file in os.listdir(args.path):
for file in sorted(os.listdir(args.path)):
if file.startswith("."): if file.startswith("."):
continue continue
path = os.path.join(args.path, file) path = os.path.join(args.path, file)
@ -60,6 +60,12 @@ async def main(args: argparse.Namespace) -> None:
continue continue
print(f"Processing {file}", end="", flush=True) print(f"Processing {file}", end="", flush=True)
name = os.path.splitext(file)[0] 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()}" sticker_id = f"sha256:{sha256(image_data).hexdigest()}"
print(".", end="", flush=True) print(".", end="", flush=True)
if sticker_id in old_stickers: if sticker_id in old_stickers:

Loading…
Cancel
Save