Import all entries from RSS in feed poll for embedded blog


#1

I’ve set up the feed polling from a Drupal site into a Discourse instance, which allows for discussion of blog posts and news. Everything works well with the “embedded blog” functionality. However, only new or recent posts on the external RSS feed are imported into Discourse. How do I ensure that all entries from an RSS feed are imported?

References

http://eviltrout.com/2014/01/22/embedding-discourse.html


(Jason Nall) #2

In the admin panel under embedding there is an option for the limit to the number of posts that will be embedded… on mine it defaults to 100. You could try increasing this.

It may also be that the RSS feed that is being generated is shorter than you’re expecting—only the posts on that feed are shown.


#3

Thanks for that tip. I think I kept the default option of 100 on my instance as well. I also just double-checked the external XML. Right now, Discourse has imported about 10 posts out of 50+.


(Jason Nall) #4

Alright, try one other thing for me. The feed polling may only be interested in recent articles and stories, so some older ones may not be visible. I would like to know what happens if you visit one of the older articles to load the comments. When the comments on the page load, is the topic now visible on your Discourse instance?

I’m not sure if this is how it works, but it seems to be what @eviltrout indicates in his blog comment from 10 days ago when he says

Finally, you don’t have to use RSS to create the topics if you don’t want. You can have them be created when embedded.


#5

My hunch is that time is a key factor as well. Visiting an older article shows basically an empty Discourse frame with a “Loading Discussion…” message. Note that newer articles successfully show “Start New Discussion” (for a single post) or the comments themselves (for posts with a few replies).

Also, nothing new occurs in Discourse (in terms of posting) after visiting one of these older articles.

Here is what an “older” page looks like. Discourse is embedded in a separate block below the main content:


(Kane York) #6

Yeah, that should be the message for when it’s creating the topic, if you’re using the standard (not wp-discourse) embedding. Check back on those same old articles now, it’s been six hours.

p.s. if your javascript ever gives a different url, it will make a different topic. make sure your URLs that you’re passing are clean


#7

Unfortunately, I’ve checked back with no difference. It’s not that the URLs are misaligned (showing no apparent comments for a blog post), it’s simply that topics haven’t been created in Discourse at all.


#8

Any other ideas @riking? Or perhaps I should be looking in a different direction, possibly towards a full RSS/XML import?


#9

I’ve found a workaround which may be useful to others as well. I was not able to resolve the issue with RSS imports. However, comment embedding does not require feed polling to be enabled in order to create new topics on Discourse. In my Discourse instance, I removed the RSS XML link and unchecked the “feed polling enabled” option under “Embedding” in the admin panel. Doing this allows the system to create a new post on Discourse whenever a page is viewed on my corresponding blog. This process is rather fast, and a simple refresh on the blog page will enable visitors to start the discussion right away.