0

我知道过滤器被用来显示更具体的结果。但是有没有办法可以用它来排除特定的用户或图像?或者 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
      }
    });

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

4

3 回答 3

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因此,如果您知道要阻止的特定图像,您也可以检查该属性。

于 2015-01-21T23:17:02.657 回答
0

史蒂文斯的回答解决了你的问题吗?

它对我不起作用=/。也用 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>
于 2015-02-18T14:01:01.873 回答
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 知识有限。=/

于 2015-02-20T03:25:01.240 回答