       JComment = require '../comment'
       JPost::reply.call this, client, JComment, comment, callback
 
+  @getExemptUserIdsIfNeeded: (client, options, callback=->)->
+    unless options.withExempt
+      {delegate} = client.connection
+      return callback null, []  unless delegate
+
+      JAccount = require '../../account'
+      JAccount.getExemptUserIds (err, ids)->
+        return callback err, null if err
+        index = ids.indexOf(delegate.getId().toString())
+        if index > -1
+          ids.splice(index, 1)
+
+        callback null, ids
+    else
+      callback null, []
+
   @getCurrentGroup: (client, callback)->
     groupName = client.context.group or "koding"
     JGroup = require '../../group'

        else
          teasers[i] = teaser
          fin()
    , -> callback null, teasers
    collectTeasers post for post in posts

        sort : {'timestamp': -1}
        limit: options.limit or 20

      @getExemptUserIdsIfNeeded client, options, (err, ids)=>
        return callback err  if err

        query =
          targetName: 'JNewStatusUpdate'
          "timestamp": "$lt": to

        showExempt = @checkForTrollMode delegate, options
        # add isExempt query if necessary
        query['data.flags.isLowQuality'] = $ne: yes unless showExempt

        tag.fetchContents query, fetchOptions, (err, posts)=>
          return callback err if err
          @decorateResults posts, showExempt, callback

  @fetchFollowingFeed = secure (client, options = {}, callback)->
    {Activity} = require "../../graph"

    {connection:{delegate}} = client
    showExemptComments = @checkForTrollMode delegate, options

    options.client = client
    Activity.fetchFolloweeContentsForNewKoding options, (err, ids)=>
      return callback err  if err
