Instead of going forward with making mastodon feeds use the sabe base parser class, I went the other way and removed the base parser altogether, since it was imposing an awkward structure with little benefit for non rss parsers. There's still a RSS base parser which is useful for adding customizations via subclasses.
"sub" Parser selection and construction now is hidden in the parser modules.
I was considering removing the model inheritance since I wasn't taking much advantage of the polymorphism and I still needed to switch on feed type in several places. But after some consideration, I decided to remove that type switching by adding some polymorphic methods to the Feed model classes. I wasn't entirely convinced because it adds feed parsing knowledge to the db layer, but seems to make sense since it avoids duplicating the feed hierarchy and the conditional logic on feed type in the rest of the codebase.
With those changes, a lot of the logic in the tasks module and some in the routes have been simplified.
This is an overhaul of the parser logic.