1
0
Fork 1
mirror of https://github.com/maunium/stickerpicker synced 2024-12-21 06:30:43 +00:00
A fast and simple Matrix sticker picker widget
Find a file
2020-09-05 18:37:50 +03:00
web Add hack to make scrolling work on iOS (ref #8) 2020-09-05 18:37:50 +03:00
.gitignore Initial commit 2020-09-05 02:31:34 +03:00
import.py Add more Element iOS compatibility (ref #8) 2020-09-05 17:19:25 +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