Go to file
2020-09-08 15:00:38 +03:00
packs Add README for ready-to-use packs 2020-09-08 15:00:38 +03:00
web Allow scrolling navbar with mouse wheel. Fixes #9 2020-09-06 18:52:25 +03:00
.gitignore Add Scalar pack metadata 2020-09-08 14:57:19 +03:00
import.py Add namespacing for IDs 2020-09-08 14:55:07 +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 It works on iOS 🎉 2020-09-05 18:52:44 +03:00
requirements.txt Initial commit 2020-09-05 02:31:34 +03:00
scalar-convert.py Add script to convert Scalar sticker picker assets.json 2020-09-08 14:55:30 +03:00

Maunium sticker picker

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

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