Go to file
Tulir Asokan 993b4af549 Set fake width instead of actually resizing image
The image quality shouldn't be reduced, but it should be shown smaller in clients.

Also add compatibility hack for broken clients like Element iOS that require a thumbnail_url
2020-09-05 15:44:04 +03:00
web Make scrolling less hacky 2020-09-05 14:34:43 +03:00
.gitignore Initial commit 2020-09-05 02:31:34 +03:00
import.py Set fake width instead of actually resizing image 2020-09-05 15:44:04 +03:00
LICENSE Initial commit 2020-09-05 02:31:34 +03:00
preview-element-android.png Update previews 2020-09-05 14:51:21 +03:00
preview-element-web.png Update previews 2020-09-05 14:51:21 +03:00
README.md Add link to Matrix room 2020-09-05 14:56:35 +03:00
requirements.txt Initial commit 2020-09-05 02:31:34 +03:00

Maunium sticker picker

A fast and simple Matrix sticker picker widget. Tested on Element Web & Android.

Discussion

Matrix room: #maunium:maunium.net

Importing packs from Telegram

  1. (Optional) Set up a virtual environment.
    1. Create with virtualenv -p python3 .
    2. Activate with source ./bin/activate
  2. Install dependencies with pip install -r requirements.txt
  3. Run python3 import.py <pack urls...>
    • On the first run, it'll prompt you to log in to Matrix and Telegram.
      • The Matrix URL and access token are stored in config.json by default.
      • The Telethon session data is stored in sticker-import.session by default.
    • By default, the pack data will be written to web/packs/.
    • You can pass as many pack URLs as you want.
    • You can re-run the command with the same URLs to update packs.

If you want to list the URLs of all your saved packs, use python3 import.py --list. This requires logging in with your account instead of a bot token.

Enabling the sticker widget

  1. Serve everything under web/ using your webserver of choice. Make sure not to serve the top-level data, as config.json and the Telethon session file contain sensitive data.

  2. Using /devtools in Element Web, edit the m.widgets account data event to have the following content:

    {
        "stickerpicker": {
            "content": {
                "type": "m.stickerpicker",
                "url": "https://your.sticker.picker.url/index.html",
                "name": "Stickerpicker",
                "data": {}
            },
            "sender": "@you:picker.url",
            "state_key": "stickerpicker",
            "type": "m.widget",
            "id": "stickerpicker"
        }
    }
    

    If you do not yet have a m.widgets event, simply create it with that content. You can also use the client-server API directly instead of using Element Web.

  3. Open the sticker picker and enjoy the fast sticker picking experience.

Preview

Element Web

Element Web

Element Android

Element Android