bclindner / ivory

A Mastodon automoderator.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Component system for Ivory functionalities

bclindner opened this issue · comments

Regarding #12, I need to rig Ivory to do multiple things with the driver at a time. Extending the drivers is simple enough, but I want the individual functionalities to be easy to add and remove. A component system seems like the thing to do, where the Ivory class proper loads and runs each component, just like how it loads drivers and rules.

I understand this introduces a design problem for the browser driver - it can't do multiple things at once. Perhaps make the driver a per-component thing?

A design note: I don't see the need in making these dynamically registered and imported as I do with the drivers and rules. I won't need to be adding these that often. They just need to be broken out into a subpackage the Ivory class will work with.

Yeah, this is achieved by just dropping another Python module into the tree at this point and calling it from __main__.

I realize lately I seriously overthought a lot of this project.