Skip to content
This repository was archived by the owner on May 31, 2026. It is now read-only.

reupload_pack seems to be broken if media reupload is skipped #99

Description

@cthu1hoo
Found 35 already reuploaded stickers
Skipped reuploading 643524467607209917
Traceback (most recent call last):
  File "/opt/element/stickerpicker/./venv/bin/sticker-import", line 33, in <module>
    sys.exit(load_entry_point('maunium-stickerpicker==0.1.0+dev.4c13a2c2', 'console_scripts', 'sticker-import')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/element/stickerpicker/venv/lib/python3.11/site-packages/sticker/stickerimport.py", line 165, in cmd
    asyncio.run(main(parser.parse_args()))
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/opt/element/stickerpicker/venv/lib/python3.11/site-packages/sticker/stickerimport.py", line 157, in main
    await reupload_pack(client, pack, args.output_dir)
  File "/opt/element/stickerpicker/venv/lib/python3.11/site-packages/sticker/stickerimport.py", line 89, in reupload_pack
    stickers_data[reuploaded_documents[document.id]["url"]] = data
                                                              ^^^^
UnboundLocalError: cannot access local variable 'data' where it is not associated with a value

Looking at the source:

    stickers_data: Dict[str, bytes] = {}
    reuploaded_documents: Dict[int, matrix.StickerInfo] = {}
    for document in pack.documents:
        try:
            reuploaded_documents[document.id] = already_uploaded[document.id]
            print(f"Skipped reuploading {document.id}")
        except KeyError:
            reuploaded_documents[document.id], data = await reupload_document(client, document)
        # Always ensure the body and telegram metadata is correct
        add_meta(document, reuploaded_documents[document.id], pack)
        stickers_data[reuploaded_documents[document.id]["url"]] = data

So, if uploading is skipped, it looks like data will never be defined.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions