fix bugs
Project: http://git-wip-us.apache.org/repos/asf/couchdb-admin/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-admin/commit/db84dab0 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-admin/tree/db84dab0 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-admin/diff/db84dab0 Branch: refs/heads/master Commit: db84dab079108366dcdbe70cbe12e1c1cc97abb7 Parents: b456c03 Author: Robert Kowalski <r...@kowalski.gd> Authored: Mon Feb 16 19:12:45 2015 +0100 Committer: Robert Kowalski <r...@kowalski.gd> Committed: Mon Feb 16 19:14:21 2015 +0100 ---------------------------------------------------------------------- board-report/generate-report | 4 ++-- board-report/lib/argument.js | 5 +++-- board-report/lib/index.js | 27 +++++++++++++++------------ board-report/test/argument.js | 8 ++++---- 4 files changed, 24 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-admin/blob/db84dab0/board-report/generate-report ---------------------------------------------------------------------- diff --git a/board-report/generate-report b/board-report/generate-report index 2ec0335..79c9fa8 100755 --- a/board-report/generate-report +++ b/board-report/generate-report @@ -15,7 +15,7 @@ const crawler = require('./lib/index.js'), argument = require('./lib/argument.js'); const arg = process.argv[2]; -const template = '{{count}} {{messages}} since {{month}} ' + +const template = '{{count}} {{messages}} since end of {{month}} ' + '({{diff}} change)'; if (arg === '-h' || arg === '--help') { @@ -41,7 +41,7 @@ crawler(queryParams, monthsForDiff, function (err, data) { logLine('Your message counts:'); Object.keys(data).forEach(function (el) { - const month = argument.getMonthAsWordFromNow(arg, monthsForDiff), + const month = argument.getMonthAsWordFromNow(arg, monthsForDiff + 1), messageCount = data[el].curr, message = messageCount > 1 ? 'messages' : 'message', wikitext = template http://git-wip-us.apache.org/repos/asf/couchdb-admin/blob/db84dab0/board-report/lib/argument.js ---------------------------------------------------------------------- diff --git a/board-report/lib/argument.js b/board-report/lib/argument.js index 5fda129..a75e460 100644 --- a/board-report/lib/argument.js +++ b/board-report/lib/argument.js @@ -14,6 +14,7 @@ const moment = require('moment'); exports.prepareQueryParams = prepareQueryParams; function prepareQueryParams (arg) { + console.log(arg) const startEnd = getStartEndDates(arg, 3); startAsString = startEnd[0].format('YYYYMM'), diffStartEnd = getStartEndDates(startAsString, 3); @@ -50,6 +51,7 @@ function getMonthAsWordFromNow (reportEnd, time) { return moment(inter, 'YYYYMM').format('MMMM'); } +exports.getMonthAsWord = getMonthAsWord; function getMonthAsWord (reportEnd) { return moment(reportEnd, 'YYYYMM').format('MMMM'); } @@ -60,8 +62,7 @@ function formatQuery (startEnd) { } function getStartEndDates (arg, time) { - const end = moment(arg, 'YYYYMM'), + const end = moment(arg, 'YYYYMM').subtract(1, 'month'), start = moment(arg, 'YYYYMM').subtract(time, 'months'); - return [start, end]; } http://git-wip-us.apache.org/repos/asf/couchdb-admin/blob/db84dab0/board-report/lib/index.js ---------------------------------------------------------------------- diff --git a/board-report/lib/index.js b/board-report/lib/index.js index 63ec26c..d1e783c 100644 --- a/board-report/lib/index.js +++ b/board-report/lib/index.js @@ -16,8 +16,9 @@ const async = require('async'), assert = require('assert'), argument = require('./argument.js'); -const urlTemplate = 'http://markmail.org/search/?q=list%3A' + - 'org.apache.{{listname}}%20date%3A{{date}}'; +const urlPrefix = 'http://markmail.org/search/?q=list%3Aorg.apache.'; +const urlTemplate = urlPrefix + '{{listname}}%20date%3A{{date}}'; + const lists = [ 'couchdb-announce', @@ -40,9 +41,6 @@ function api (queryParams, timeframe, cb) { const listUrlsCurr = getUrls(queryParams.queryCurr), listUrlsDiff = getUrls(queryParams.queryDiff); - console.log(listUrlsCurr); - console.log(listUrlsDiff); - async.parallel({ current: function (cb) { getMessageCounts(listUrlsCurr, cb); @@ -86,7 +84,7 @@ function pick (element, structure) { } function getDiffString (count, countOld) { - const result = normalize(countOld) - normalize(count); + const result = normalize(count) - normalize(countOld); if (result >= 0) { return '+' + result; @@ -95,6 +93,9 @@ function getDiffString (count, countOld) { } function normalize (string) { + if (!string) { + string = '0'; + } return parseInt(string.replace(',', ''), 10); } @@ -113,21 +114,23 @@ function requestWithOptions (url, cb) { maxSockets: Infinity } }, function (err, res, body) { - cb(err, body); + cb(err, [url, body]); }) } +function normalizeListName (list) { + return list.replace(urlPrefix, '').split('%20date')[0]; +} + function getMessageCounts (urlList, cb) { async.map(urlList, requestWithOptions, function (err, results) { if (err) { return cb(err); } - - const res = results.map(function (markup) { - const $ = cheerio.load(markup), + const res = results.map(function (element) { + const $ = cheerio.load(element[1]), count = $('#lists .count').text(), - list = $('#lists a').text().replace('org.apache.couchdb.', ''); - + list = normalizeListName(element[0]); return [list, count]; }); http://git-wip-us.apache.org/repos/asf/couchdb-admin/blob/db84dab0/board-report/test/argument.js ---------------------------------------------------------------------- diff --git a/board-report/test/argument.js b/board-report/test/argument.js index 0074425..b3dad7e 100644 --- a/board-report/test/argument.js +++ b/board-report/test/argument.js @@ -29,14 +29,14 @@ describe('arguments', function () { it('prepares query parameters', function () { const queryParams = argument.prepareQueryParams('201411'); - assert.equal(queryParams.queryCurr, '201408-201411'); - assert.equal(queryParams.queryDiff, '201405-201408'); + assert.equal(queryParams.queryCurr, '201408-201410'); + assert.equal(queryParams.queryDiff, '201405-201407'); }); it('prepares urls for the current and the diff', function () { const queryParams = argument.prepareQueryParams('201411'); - assert.equal(queryParams.queryCurr, '201408-201411'); - assert.equal(queryParams.queryDiff, '201405-201408'); + assert.equal(queryParams.queryCurr, '201408-201410'); + assert.equal(queryParams.queryDiff, '201405-201407'); }); });