Reddit RSS feed不能始终如一地获取结果

时间:2017-03-27 01:46:18

标签: javascript rss reddit

我现在一直在尝试调试,我不确定问题是什么。

为您提供一些背景知识:

我正在开展一个项目,该项目在最左边的新闻来源(赫芬顿邮报),温和的左派(CNN),温和的右派(福克斯)以及极右派的政治部分中占据头条新闻(布赖特巴特)。

从这里,我发现Reddit帖子引用该文章并将其附加到html。所有这些都是通过YQL完成的。

以下是我如何使用CNN的示例。

//CNN

$(function getCNNNews() {
    var statement = "select * from feed where url='http://rss.cnn.com/rss/cnn_allpolitics.rss'";
    $.queryYQL(statement, "json", undefined, function (data) {
      // do something with "data".
      console.log(data.query.results.item);

      //Get first object in array
      console.log(data.query.results.item[0]);
      var firstObjectCNN = data.query.results.item[0];

      $("#col2").append("<h1 id='cnn'>" + firstObjectCNN.title + "</h1>");
      $("#col2").append("<h4 id='cnn'> Published by CNN <br/>"  + firstObjectCNN.pubDate + "</h4>"); 

      //Search for the top post referencing that headline on Reddit
      $(function getCNNPostReddit() {
      var newStatement = encodeURIComponent(firstObjectCNN.title).replace(/'/g , "%27");
      var statement = "select * from feed where url='https://www.reddit.com/search.xml?q=" + newStatement + "&sort=new'";
      $.queryYQL(statement, "json", undefined, function (data) {

      console.log(statement);
      console.log(data);

      var firstCNNEntryResults = data.query.results;

        if (firstCNNEntryResults == null)
          {
            document.getElementById("loading2").style.display = 'inline-block';
          }
          else
          {
                // Get first entry's (which is the entry with the most comments) rss feed containing comments
            var firstCNNEntry = data.query.results.entry[0];
            console.log("select * from feed where url='" + firstCNNEntry.link.href + ".rss");
            // Erase end of URL that's not needed
            var firstCNNEntryLink = firstCNNEntry.link.href;
            firstCNNEntryLink = firstCNNEntryLink.substring(0, firstCNNEntryLink.indexOf('?'));
            console.log(firstCNNEntryLink);
            //Create a dynamic rss feed based on link to first entry; this is where the comments will come from.
            $(function getCNNRedditComments() {
            var statement = "select * from feed where url='" + firstCNNEntryLink + ".rss'" ;
            $.queryYQL(statement, "json", undefined, function (data) {

            console.log(data.query.results.entry);
            //Start with the 4th comment; since the first 3 comments are auto moderator
            for (var i = 0; i < data.query.results.entry.length; i++) {
            console.log(data.query.results.entry[i].content.content);
            $("#col2 #comment-box").append("<div id='comment'><span id='username'>" + data.query.results.entry[i].author.name + "</span>" + ":" + data.query.results.entry[i].content.content + "</div>")
            } 
            });   
            });

          }
  });           
  }); 
  });                  
  });

当结果出现null时,我已经这样做了,我用加载符号替换了注释。我遇到的问题是,有时评论会显示,有时候他们会赢。

该网站的当前状态如下: leftright.info

1 个答案:

答案 0 :(得分:1)

Reddit对获取RSS源的频率有限制。我也有这个问题,所以我想出了一个解决方法。我已经在我的网站上为它创建了一个公共工具。

https://smithsdownunder.com/reddit_rss