Skip to content
This repository has been archived by the owner on Jul 30, 2020. It is now read-only.

Commit

Permalink
Merge pull request #101 from milimetric/develop
Browse files Browse the repository at this point in the history
Simple wikimetrics support
  • Loading branch information
nuria committed Jul 4, 2014
2 parents c19d99b + 9636208 commit f709bb6
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 9 deletions.
16 changes: 8 additions & 8 deletions src/data/dataset/index.co
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
dataset = require './dataset'
series_dataset = require './series-dataset'
timeseries_dataset = require './timeseries-dataset'
geo_json_dataset = require './geo-json-dataset'
topo_json_dataset = require './topo-json-dataset'
mobile_device_by_geo = require './mobile-device-by-geo-dataset'
umapi_timeseries = require './umapi-timeseries-dataset'
dataset = require './dataset'
series_dataset = require './series-dataset'
timeseries_dataset = require './timeseries-dataset'
geo_json_dataset = require './geo-json-dataset'
topo_json_dataset = require './topo-json-dataset'
mobile_device_by_geo = require './mobile-device-by-geo-dataset'
wikimetrics_timeseries = require './wikimetrics-timeseries-dataset'

exports import dataset import series_dataset import timeseries_dataset import geo_json_dataset import topo_json_dataset import mobile_device_by_geo import umapi_timeseries
exports import dataset import series_dataset import timeseries_dataset import geo_json_dataset import topo_json_dataset import mobile_device_by_geo import wikimetrics_timeseries
52 changes: 52 additions & 0 deletions src/data/dataset/wikimetrics-timeseries-dataset.co
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{ Dataset,
} = require './dataset'


/**
* @class Hack to handle User Metrics JSON structure
* @extends Dataset
*/
class exports.WikimetricsTimeseriesDataset extends Dataset
@registerType 'wikimetrics_timeseries'

->
super ...
@format = 'json'


/**
* @returns {Array<String>} List of column labels.
*/
getLabels: ->
@labelInfo


parse: (rawData) ->
return rawData if typeof rawData is 'string'
console.info 'Wikimetrics format, parsing it into standard JSON'
console.log rawData

normalized = []

@labelInfo = []
for key in rawData
if key is 'parameters'
p = rawData[key]
# TODO: save the metadata somewhere?
console.log "#{p['Cohort']} - #{p['Metric']}"
continue

newRow = []
index = 0
newRow[index] = new Date key
@labelInfo[index] ?= 'date'
values = rawData[key]['Sum'] # TODO: make it understand other aggregates?
for i in values
index ++
newRow[index] = values[i]
@labelInfo[index] ?= i

normalized.push newRow

normalized.sort (a, b) ->
a[0].getTime() - b[0].getTime()
2 changes: 1 addition & 1 deletion src/template/datasources.jade
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ fieldset.controlGroup.datasources-page
option(value="timeseries") Timeseries
option(value="series") Series
option(value="mobile_device_by_geo") Special: Pivoted Geographical
option(value="umapi_timeseries") Special: User Metrics API Timeseries
option(value="wikimetrics_timeseries") Special: Wikimetrics Timeseries
.control-group
label.control-label(for="format") Format of Data
.controls
Expand Down

0 comments on commit f709bb6

Please sign in to comment.