Steps to follow to create a (Content Aggregator) plugin, that creates topics from different RSS feeds


(A Magdy) #1

Hi,

So I found out about discourse a few days ago, and I was able to deploy it to my aws vm in a couple of hours (including getting to know what it is), and it blow me away, awesome work, it contains some features, that I had to implement myself in TelescopeJS -another open-source forum-.

But the only feature I am missing right now is creating topics from rss feeds to specific categories, to get the community going, so I looked around, and I found out that such plugin hasn’t been made until now, and the only feature that does that is the feed polling from only one site (that one that discourse will be embedded in), but I need to poll rss feeds from multiple sources.

So the only solution now is to create a plugin that does that, so I looked in the current implementation in TelescopeJS, and it uses a package in Node to parse feeds, and create posts for specific users on certain categories, not that complex, so I looked around for a Ruby on Rails gem that does that and found out that (GitHub - feedjira/feedjira: A feed parsing library) is the gem I need.

So now I’ve to create a plugin that parses a list of rss feeds, and use Discourse API to create posts, but as I am new to both discourse and Ruby on Rails, would you please help guide me to the points that will get me started, like:

  1. The current implementation of the feed polling from the embedded site.
  2. What consideration I have to keep in mind while write the plugin.
  3. How to create a form in the admin panel for this plugin to take inputs, so anyone else can use it easily, or it will read from a configuration file ?!
  4. What do I need to know while creating a post for a certain user and bind it to some categories, I don’t want these posts to be crashed, as I want them to be included in the email digest.
  5. A plugin to refer to, and use the same structure and steps, while creating this.
  6. Any extra points, that you may have faced while creating a plugin for discourse.

Thanks


(Joe Buhlig) #2

You can have different hosts that post to different categories. Is that what you’re talking about?


(A Magdy) #3

What I need is a “Content Aggregator” plugin, that fetches content from different rss feeds, and adds them to Discourse.

but the embedding feature allows me to embed Discourse into my blog or an existing site, and it allows pulling topics from that site only (or from one rss feed).

What I need is for Discourse to import and create topics automatically from different RSS feeds, for ex:
in Gaming category, I want to add every new topic from the “CNET Gaming”, and for Java category I’ll find some good rss feeds too … etc.

So that my forum will always have new content, from other different sources, with links to all of them, so it won’t rely only on the moderators and users activity, but there will be new content added regularly from other rss feeds.

This feature is implemented in TelescopeJS, please check it here:


and the blog post about it here:
http://www.telescopeapp.org/blog/building-content-aggregator-email-digest/


(Régis Hanol) #4

First, I would setup a dev environment locally. Developing a plugin in production mode is going to be a PITA.

Secondly, I would create a plugin which will do the simplest thing that works

  1. Create a scheduled job that will regularly check if one RSS/Atom feed has been updated
  2. Use the PostCreator class to create topics/posts from the items in the feed
  3. Profit :dollar:

(Jeff Atwood) #5

Yes but this is generic, low value “content” … what’s the value to people that find your forum when it is filled with generic RSS? That’s not why people visit sites…


(A Magdy) #6

I won’t just use generic rss feeds, I’ll carefully choose rss feeds releveant to the categories I’ll have, and choose 1 or 2 of them foreach category, my target is to build a community for my company, and we are around 700, so there is no easy way to find moderators for all categories, technologies and interests to always keep the forum updated, I want the users to dive in, share and talk, and always be aligned to new ideas and technologies, so carefully choosing some cool rss feeds, will get things going.

And answering the part about:

This is not intended to be a commercial forum, but rather the place where ideas are being discussed, and new material is always being presented, although I think it might have commercial value is it was taken care of by an expert.

Feedly is all about that.


#7

If you are comfortable with something like php, cron and curl then I suggest having a script run at intervals of your choice (ie, hourly)


(Thomas S) #8

Hey, did you end up creating a plugin that works?


(Erlend Sogge Heggen) #9

Discussion continued here: