Repository navigation
Conversation
Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Dawid Ciepiela <dawid@ciepiela.org>
This was referenced Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
βοΈ Resolves
@nickvergessen asked me, if I could contribute the code base from the app for my family to your code base.
What it does:
An admin points Talk at a folder, for example
occ config:app:set spreed stickers_folder --value Stickers. Until then, no one gets stickers. The path is resolved in each user's own files, so a team folder or a shared folder namedStickersworks tooEach subfolder is one sticker pack, and the subfolder's name is then the tab name. Images lying directly in the top folder form a pack of their own. Only PNG, JPEG, GIF and WebP files get in. SVG is skipped because of possible code injection. Files the user isn't allowed to share are skipped too.
New endpoint
GET /ocs/v2.php/apps/spreed/api/v1/stickersreturns the packs, and for each sticker its file id, name, path, mimetype and etag. Mobile apps could use the same endpoint to build their own picker later. This is in implementedlib/Service/StickerService.phpandlib/Controller/StickerController.php.A
stickersentry is in the features list, plusconfig => chat => stickers-folderin the settings.A sticker button sits to the right of the message box. It opens a popup with one tab per pack and a grid of previews. A click sends the sticker and closes the popover. The packs are fetched each time the popover opens. The button is hidden in federated conversations, for guests and while editing a message.
Sending uses Talk's existing "share from Files". The problem is that a file can be shared with a conversation only once. On a repeat send, Talk posts the message again anyway but answers the request with a 403, so the web client treats that 403 as sent (maybe you can find a fix for it?).
AI (if applicable)
ποΈ UI Checklist
πΌοΈ Screenshots / Screencasts
π§ Tasks
occ config:app:set spreed stickers_folder --value Stickersonly)π Checklist
π οΈ API Checklist
π§ Tasks
GET /api/v1/stickersπ Checklist
docs/has been updated or is not required