code: function getPosts (wall, body, page, view) {
    var $ = parser.load(body);
    var available = $('#ctl00_cphRoblox_GroupWallPane_GroupWall_ctrl0_NoWallPostsPanel').length === 0;
    if (!available) {
      if (wall) {
        wall.totalPages = 0;
        return;
      } else {
        return 0;
      }
    }
    var totalPages = parseInt($('#ctl00_cphRoblox_GroupWallPane_GroupWallPager_ctl01_Div1').find('.paging_pagenums_container').text(), 10);
    if (wall) {
      var posts = $('.GroupWall_PostContainer');
      for (var i = 0; i < posts.length; i++) {
        var container = posts.eq(i);
        var post = container.parent().parent();
        var user = post.find('.UserLink').find('a');
        var element = {
          content: container.text(),
          author: {
            id: parseInt(user.attr('href').match(/\d+/)[0], 10),
            name: user.text().trim()
          },
          date: getDate({time: post.find('.GroupWall_PostDate').find('span').eq(0).text(), timezone: 'CT'}),
          parent: {
            page: page,
            index: i
          },
          id: parseInt(post.find('.AbuseButton').find('a').attr('href').match(/groupwallpost\?id=(\d+)/)[1], 10) // In fact wall posts do have IDs (as all reportable items have to have) but other than for reporting it isn't really exposed to be used
        };
        if (wall.stream) {
          wall.stream.write(element);
        } else {
          wall.posts.push(element);
        }
      }
      wall.totalPages = totalPages;
      if (view) {
        if (!wall.views) {
          wall.views = [];
        }
        wall.views[page] = getVerificationInputs({selector: $});
      }
    }
    $ = null;
    body = null;
    if (!wall) {
      return totalPages;
    }
  }
docs: Define