Instafeed.js - 如何过滤掉或排除特定图像或用户?

时间:2015-01-20 04:34:45

标签: javascript instagram instafeedjs

我知道过滤器正用于显示更具体的结果。但有没有办法可以用它来排除特定用户或图像呢?或者,instafeed.js还有其他选择吗?

var feed = new Instafeed({
      target: 'instafeed',
      get: 'tagged',
      tagName: 'hashtag',
      limit: '10',
      sortBy: 'most-recent',
      resolution: 'standard_resolution',
      clientId: 'xxxxx', 
      template:'<img class="item" src="{{image}}">',
      filter: function(image) {
        //filter to exclude specific user
      }
    });

感谢任何反馈。 非常感谢!

3 个答案:

答案 0 :(得分:1)

是。如果您从过滤器功能返回false,它将从结果中排除图像。

因此,要阻止来自特定用户的图像,您可以检查image.user.username属性:

filter: function(image) {
  var blockedUsernames = [
    'reallybaduser',
    'otherreallybaduser'
  ];

  // check for blocked users
  for (var i=0; i<blockedUsernames.length; i++) {
    if (image.user.username === blockedUsernames[i]) {
      return false;
    }
  }

  return true;
}

您可以展开过滤器功能以检查图像的任何属性。因此,如果您知道要阻止的图片的特定id,您也可以检查该属性。

答案 1 :(得分:0)

Stevens的回答是否解决了你的问题?

它对我不起作用= /。使用model.user.username测试(我在打印上传者用户名时使用),但是没有用。

<script type="text/javascript">

                var feed = new Instafeed({
                  get:'tagged',
                  tagName: 'horizon',
                  clientId: 'xxxxxxx',
                  limit:'16',
                  sortBy: 'most-liked',
                  resolution:'low_resolution',
                  template: '<img src="{{image}}" class="imagen" <p>Likes: {{likes}} User: {{model.user.username}} </p> ',
                /*  filter: function(image) {
                      var blockedUsernames = [
                        'reallybaduser',
                        'otherreallybaduser'
                      ];

                      // check for blocked users
                      for (var i=0; i<blockedUsernames.length; i++) {
                        if (image.user.username === blockedUsernames[i]) {
                          return false;
                        }
                      }

                      return true;
                    }, */
                  after:function(){
                    var images = $('#instafeed').find('a');
                  }
                });

                feed.run();

                /*==== GET MORE PICTURES.. ======*/
                $(function() {
                      $("#load-more").click( function()
                           {
                             feed.next();
                           }
                      );
                });
             </script>

答案 2 :(得分:0)

回答Dahak,Steven的代码对我有用!这是我网站上的完整代码:

<script type="text/javascript">

    var feed = new Instafeed({
        get: 'tagged',
        tagName: 'hashtag',
        clientId: 'xxxxxxxx',
        template: '<a href="{{link}}" target="_blank"><img src="http:{{image}}" class="insta" /></a>',
        limit: 20,
        filter: function(image) {
            var blockedUsernames = [
            'baduser',
            'otherreallybaduser'
            ];

            // check for blocked users
            for (var i=0; i<blockedUsernames.length; i++) {
               if (image.user.username === blockedUsernames[i]) {
                 return false;
               }
            }
            return true;
        }

    });
    feed.run();

</script>

您在测试代码时是否排除了评论标记/**/

抱歉,我的javascript知识有限。 = /