mirror of
https://github.com/maunium/stickerpicker.git
synced 2025-10-24 14:49:08 +02:00
28c7d2f1a2113d3ea609373a345d23d35361d605
Maunium sticker picker
A fast and simple Matrix sticker picker widget. Tested on Element Web & Android.
Importing packs from Telegram
- (Optional) Set up a virtual environment.
- Create with
virtualenv -p python3 . - Activate with
source ./bin/activate
- Create with
- Install dependencies with
pip install -r requirements.txt - Copy
example-config.jsontoconfig.jsonand set your homeserver URL and access token (used for uploading stickers to Matrix). - Run
python3 import.py <pack urls...>- On the first run, it'll prompt you to log in with a bot token or a telegram account.
The session data is stored in
sticker-import.sessionby 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.
- On the first run, it'll prompt you to log in with a bot token or a telegram account.
The session data is stored in
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
-
Serve everything under
web/using your webserver of choice. Make sure not to serve the top-level data, asconfig.jsonand the Telethon session file contain sensitive data. -
Using
/devtoolsin Element Web, edit them.widgetsaccount 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.widgetsevent, simply create it with that content. You can also use the client-server API directly instead of using Element Web. -
Open the sticker picker and enjoy the fast sticker picking experience.
Preview
Element Web
Element Android
Languages
Python
42.7%
JavaScript
39.9%
Sass
11%
Go
4.2%
HTML
1.6%
Other
0.6%

