Skip Navigation

Documentation for writing Lemmy Plugins

github.com lemmy-docs/src/contributors/08-plugins.md at plugins · LemmyNet/lemmy-docs

Documentation for Lemmy. Contribute to LemmyNet/lemmy-docs development by creating an account on GitHub.

lemmy-docs/src/contributors/08-plugins.md at plugins · LemmyNet/lemmy-docs

If you write a plugin, let me know how it goes!

Link to PR

6
6 comments
  • a pretty simple plugin idea would be a regex to validate post titles, deny the post if the title is invalid

    I might try it unless someone else beats me to it

    I guess to start with it could be a config file with a dictionary of community name: regex

    and later it could be made to use the database with an api to set the regexes, could even allow community moderators to set their own regexes (might need a maximum regex length, maximum number of parenthesis/groups in the regex pattern, and disable lookbehind/lookahead, for performance reasons)

  • Plugins may introduce some risks imo. Non-standard behaviour may be a b*tch.

    E.g. the idea of a plugin which posts tags:

    How are these elected and shares across instances? And displayed on clients? Are they modifying the actual data written by the user in order to sync?

    Maybe they are attractive to admins. But they can mostlikely already query and modify the database, right?

    I do not want to be against it just mentioning that it may introduce problems on its own which in turn needs to get adressed. E.g.: When multiple plugins do a task at the same hook; How is the ordering managed? When are transactions committed? Should there be a maximal amount of time spend on plugins at some hook? How are resources shared then?

    Let's think about bad actors: Meta deploys provides a plugin which compresses and decompresses post content and saves plenty of ressources for the admin. After a couple of years they put it to the grave or change the compression methods such that old posts cant be retrieved. But their instance surely still can access those.

    I admire beeing lean. Had some projects where bad plugins raised in popularity and become the defacto standard. But they were resource-hungry and badly written or barely maintained. Workarounds spread back to the original program.

    Just looked the first time into the lemmy code and it appears to be very neat and clean. I would recommend to stick to it. But then I am no maintainer and a nobody shrugs

    //edit: To me plugins are good to aid customization and enlarging the user base. I do not see how this contributes to the fediverse and instances in the long run.

6 comments