diff --git a/README.md b/README.md index a35acf0..458136a 100644 --- a/README.md +++ b/README.md @@ -2,28 +2,54 @@ # maunium-stickerpicker-nix -Nix wrapper for [maunium/stickerpicker][maunium-stickerpicker] +Nix wrapper for [maunium/stickerpicker][maunium-stickerpicker] customized for pub.solar. ## Usage: -Here's an example of a stickerpicker +Overview of steps: +1. Download additional stickers manually from signalstickers.org +2. (Optional) Define desired stickers in `flake.nix` as type `chatsticker` +3. (Optional) Build `.#pub-solar-stickers` +4. Create `config.json` with `@stickerbot` Matrix access token +5. Upload stickers to matrix `@stickerbot` user's media and store thumbnail URLs in `*.json` files +6. Include `*.json` files in host config flake, see [example]() + +`config.json` example: +``` +{ + "homeserver": "https://matrix.your.domain", + "user_id": "@stickerbot:matrix.your.domain", + "access_token": "" +} +``` + +Commands: +``` +# Enter nix devshell +nix develop + +# Get URL from button on signalstickers.org -> "Add to Signal" -> Right-Click -> "Copy Link" +# Repeat for each signal sticker pack +python -m sigstickers --pack 'https://signal.art/addstickers/#pack_id=7d4893e5bb03ad6ec5f8a5effbdada62&pack_key=fa9893126e26c0d28ed332c08c99f13700497c1fe15980d5069f6c4e48b619ee' +sticker-pack --config config.json --add-to-index ./uploaded-packs/ --title "lindner" downloads/Lindner/png/ + +# Move images around, json "id" gets set from dirname +for dir in $(ls ./downloads); do mv ./downloads/$dir/png/* ./downloads/$dir/; done +for dir in $(ls ./downloads); do rm -r ./downloads/$dir/gif ./downloads/$dir/png ./downloads/$dir/webp; done + +# Upload stickers to matrix and generate json files with thumbnail URLs +for dir in $(ls ./downloads); do sticker-pack --config config.json --add-to-index ./uploaded-packs/ --title "$dir" ./downloads/$dir; done + +# Add json files to git, commit and push changes +git add uploaded-packs/ +git commit +git push +``` + +Here's an example of a stickerpicker config in this flake ```nix -myStickerPicker = createStickerPicker { - homeserver = "https://my.matrix.server"; - userId = "@stickerbot:my.matrix.server"; - sha256 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - packs = [ - { - type = "chatsticker"; - name = "pompom-tao3"; - } - { - type = "directory"; - src = ./myHomemadeStickers; - } - ]; -}; + ``` Afterwards, you can easily host it in an nginx config @@ -33,7 +59,9 @@ Afterwards, you can easily host it in an nginx config { services.nginx.enable = true; services.nginx.virtualHosts."stickers.myhost.org" = { - root = myStickerPicker; + forceSSL = true; + enableACME = true; + root = pkgs.element-stickerpicker; }; } ```