1
0
Fork
You've already forked multiposter
0
Small application to post to multiple services simultaneously
  • Common Lisp 100%
Glenn Thompson 3accee4daf Add Lemmy client support
- Add clients/lemmy.lisp with full Lemmy API implementation
- Support for text, image, video, and link posts
- JWT authentication with auto-login
- Community resolution (community@instance format)
- Post deletion (undo) support
- Add lemmy to multiposter.asd components
- Update README.mess with Lemmy in supported services list
2026年02月16日 22:36:58 +03:00
.woodpecker Woodpecker 2026年01月03日 12:05:38 +01:00
clients Add Lemmy client support 2026年02月16日 22:36:58 +03:00
docs Doc update 2025年08月20日 16:10:50 +02:00
.gitignore Buncha stuff 2023年09月10日 16:53:08 +02:00
config.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00
documentation.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00
LICENSE license 2023年09月11日 11:09:52 +02:00
main.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00
multiposter.asd Add Lemmy client support 2026年02月16日 22:36:58 +03:00
package.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00
protocol.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00
README.mess Add Lemmy client support 2026年02月16日 22:36:58 +03:00
toolkit.lisp Add overflow-mode to multiposter for controlling post truncation behavior 2026年02月07日 10:43:02 +01:00

# About Multiposter
This is an application that lets you post to multiple web services at once.
## How To
While you can use Multiposter from the REPL, it also has a convenient command line interface. To build a binary, simply run ``sbcl --eval '(asdf:make :multiposter)'``.
The following services are supported:
- "Cohost"(https://cohost.org)
- File (just writes to disk)
- Git (commits and pushes)
- "Lichat"(https://shirakumo.org/docs/lichat)
- "Mastodon"(https://mastodon.social)
- "Pixiv"(https://pixiv.net)
- "Reader"(https://shirakumo.org/project/reader)
- "Studio"(https://shirakumo.org/project/studio)
- "Tumblr"(https://tumblr.com)
- WebDAV
- "Bluesky"(https://bsky.app)
- "Discord"(https://discord.com/) via "webhook"(https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) (text and images only)
- "Lemmy"(https://join-lemmy.org) (Fediverse link aggregator)
On the command line you can simply run ``multiposter`` and it should show you a nice help text with all the available options and commands.
## Creating New Clients
If you'd like to contribute another client to Multiposter, it's not too hard. Simply create a new client class with ``define-client``, and ensure all the properties that should be persisted for it are returned from an ``initargs`` method. Then implement methods for the ``post``, ``ready-p`` and ``setup`` functions.
If your service supports undoing/deleting a post, you should also create a ``result`` subclass and implement the ``undo`` method for it. Your ``post`` methods should then return a result instance on success, such that the post can be removed again later if desired.
For the ``setup`` function, make sure you implement the following logic: if ``&rest args`` are passed, reinitialise your client to use those initargs. Otherwise, if your client is not yet ``ready-p``, perform an interactive setup using ``query`` to prompt the user for the necessary options.