PieFed now includes a simple plugin engine so third parties can extend PieFed functionality without adding their code to the main PieFed project. It's pretty simple and bare-bones at the moment and is more of a 'tech preview' stage rather than something to get too serious about.

Each plugin is a directory under app/plugins and must include a init.py file. In that file there must be a plugin_info() function. Plugins can have their code executed by adding a @hook decorator to a function, as in the image above.

The example plugin that comes with PieFed just prints some debugging messages to the console before and after a post is created but the sky is the limit. Eventually plugins could modify data at any stage of the content lifecycle, react to people joining or leaving a community, votes, send email, etc etc.

What I've built today is just the beginning and I'm hoping other contributors will take this framework and add more hooks and incorporate it into the rest of the system.

Some Python code

all 9 comments

sorted by: hot top controversial new old
[–] 8 points 1 year ago

Wow ! Awesome ! I hope more and more people will be interested :)

  • source
  • [–] 7 points 1 year ago

    That's pretty good!

  • source
  • [–] 6 points 1 year ago

    whoa, nice! :D

  • source
  • [–] 5 points 1 year ago (1 child)

    Would this enable something like Lemmy Webhook or other kinds of automod plugins then if I am understanding this right?

  • source
  • hideshow 1 child comment
  • [–] 5 points 1 year ago

    This is a great direction to go

  • source
  • [–] 3 points 1 year ago

    @rimu Looking forward to checking this out. Piefed is amazing, thank you for making it!

  • source
  • [–] 2 points 1 year ago

    In the future i think there should be a nice store with reviews like wordpress plugins or discourse plugins .

    Having a great UX which will motivate people to extend piefed (like firefox addons website) can be really a killer feature .

  • source
  • [–] 1 point 1 year ago

    The link for example plugin gives me broken github link :)

  • source