Reorganize Python stuff and add command to create packs

Fixes #11
This commit is contained in:
Tulir Asokan
2020-09-13 03:56:28 +03:00
parent de79aea535
commit 80bcf6d0ac
11 changed files with 356 additions and 154 deletions

View File

@ -4,22 +4,43 @@ A fast and simple Matrix sticker picker widget. Tested on Element Web, Android &
## Discussion
Matrix room: [`#maunium:maunium.net`](https://matrix.to/#/#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.
## Utility commands
In addition to the sticker picker widget itself, this project includes some
utility scripts you can use to import and create sticker packs.
If you want to list the URLs of all your saved packs, use `python3 import.py --list`.
To get started, install the dependencies for using the commands:
0. Make sure you have Python 3.6 or higher.
1. (Optional) Set up a virtual environment.
1. Create with `virtualenv -p python3 .venv`
2. Activate with `source .venv/bin/activate`
2. Install the utility commands and their dependencies with `pip install .`
### Importing packs from Telegram
To import packs from Telegram, simply run `sticker-import <pack urls...>` with
one or more t.me/addstickers/... URLs.
If you want to list the URLs of all your saved packs, use `sticker-import --list`.
This requires logging in with your account instead of a bot token.
Notes:
* 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.
### Creating your own packs
1. Create a directory with your sticker images.
* The file name (excluding extension) will be used as the caption.
* The directory name will be used as the pack name/ID.
2. Run `sticker-pack <pack directory>`.
* If you want to override the pack displayname, pass `--title <custom title>`.
3. Copy `<pack directory>/pack.json` to `web/packs/your-pack-name.json`.
4. Add `your-pack-name.json` to the list in `web/packs/index.json`.
## 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.