From 7dabf8d1dae76cc9e5f909f4208ad3daa1b21f50 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Wed, 8 Feb 2017 16:07:04 -0600 Subject: [PATCH] bug fixes, fixed major Piwik downloads api bug --- gs/data.gs | 12 ++++++------ gs/filscore.gs | 25 +++++++++++++++---------- gs/html-factory.gs | 3 +-- gs/utilities.gs | 21 +++++++-------------- 4 files changed, 29 insertions(+), 32 deletions(-) diff --git a/gs/data.gs b/gs/data.gs index 6d607a3e9..f98f276f0 100644 --- a/gs/data.gs +++ b/gs/data.gs @@ -24,8 +24,7 @@ function concatNamelessComboLists() { function refreshParsed() { var urlTypes = ["viewUrl", "addUrl", "homeUrl", "forumUrl", "issuesUrl", "email", "donateUrl"]; - for (var i = 0, - var urlTypesLength = urlTypes.length; i < urlTypesLength; i++) { + for (var i = 0, urlTypesLength = urlTypes.length; i < urlTypesLength; i++) { var colIndexParsedUrlType = getColIndex(sParsed, urlTypes[i]); var colRangeParsedUrlType = sParsed.getRange(colIndexParsedUrlType + "2:" + colIndexParsedUrlType); colRangeParsedUrlType.clearContent(); @@ -55,15 +54,15 @@ function refreshParsed() { break; default: } + var colDataParsedUrlType = colRangeParsedUrlType.getDisplayValues(); colRangeParsedUrlType.clearContent(); - colRangeParsedUrlType.setValues(colRangeParsedUrlType.getDisplayValues()); + colRangeParsedUrlType.setValues(colDataParsedUrlType); } } function refreshPublic() { var publicFields = ["list", "tags", "description", "links", "related"]; - for (var i = 0, - var publicFieldsLength = publicFields.length; i < publicFieldsLength; i++) { + for (var i = 0, publicFieldsLength = publicFields.length; i < publicFieldsLength; i++) { var colIndexPublicPublicField = getColIndex(sPublic, publicFields[i]); var colRangePublicPublicField = sPublic.getRange(colIndexPublicPublicField + "2:" + colIndexPublicPublicField); colRangePublicPublicField.clearContent(); @@ -90,7 +89,8 @@ function refreshPublic() { break; default: } + var colDataPublicPublicField = colRangePublicPublicField.getDisplayValues(); colRangePublicPublicField.clearContent(); - colRangePublicPublicField.setValues(colRangePublicPublicField.getDisplayValues()); + colRangePublicPublicField.setValues(colDataPublicPublicField); } } \ No newline at end of file diff --git a/gs/filscore.gs b/gs/filscore.gs index 7d754ea22..8a991c286 100644 --- a/gs/filscore.gs +++ b/gs/filscore.gs @@ -25,16 +25,17 @@ function copyViewUrlToFilScore() { function getSumUniqueDailyVisitorsLast30() { getDownloadsFromPiwikApi(); - moveColumn(sPiwikApiTemp, 1, 2); + moveColumn(sPiwikApiTemp, 10, 11); copyPiwikDownloadsToFilScore(); } function getDownloadsFromPiwikApi() { - var colRangePiwikApiTemp = sPiwikApiTemp.getRange("A2:B"); + var colRangePiwikApiTemp = sPiwikApiTemp.getRange("A1:K"); colRangePiwikApiTemp.clearContent(); - sPiwikApiTemp.getRange("A2").setValue("=ImportJson(CONCATENATE(\"" + piwikUrl + "?module=API&method=Actions.getDownloads&idSite=3&period=range&date=last30&flat=1&format=json&token_auth=" + piwikApiToken + "\"), \"/url,/sum_daily_nb_uniq_visitors\", \"noHeaders\")"); + sPiwikApiTemp.getRange("A1").setValue("=ImportJson(CONCATENATE(\"" + piwikUrl + "?module=API&method=Actions.getDownloads&idSite=3&period=range&date=last30&expanded=1&format=json&token_auth=" + piwikApiToken + "\"), \"\", \"\")"); + var colDataPiwikApiTemp = colRangePiwikApiTemp.getDisplayValues() colRangePiwikApiTemp.clearContent(); - colRangePiwikApiTemp.setValues(colRangePiwikApiTemp.getDisplayValues()); + colRangePiwikApiTemp.setValues(colDataPiwikApiTemp); } function copyPiwikDownloadsToFilScore() { @@ -42,9 +43,12 @@ function copyPiwikDownloadsToFilScore() { var colTopFilScoreSudv = sFilScore.getRange(colIndexFilScoreSudv + "2"); var colRangeFilScoreSudv = sFilScore.getRange(colIndexFilScoreSudv + "2:" + colIndexFilScoreSudv); colRangeFilScoreSudv.clearContent(); - colTopFilScoreSudv.setValue("=ARRAYFORMULA(IF(ISBLANK($B2:B),\"\",IFERROR(VLOOKUP($B2:B,PiwikApiTemp!$A$2:$B,2,FALSE),0)))"); + var colIndexPiwikApiTempSudv = getColIndex(sPiwikApiTemp, "Subtablesumdailynbuniqvisitors"); + var colIndexPiwikApiTempViewUrl = getColIndex(sPiwikApiTemp, "Subtableurl"); + colTopFilScoreSudv.setValue("=ARRAYFORMULA(IF(ISBLANK($B2:B),\"\",IFERROR(VLOOKUP($B2:B,PiwikApiTemp!$" + colIndexPiwikApiTempSudv + "$2:$" + colIndexPiwikApiTempViewUrl + ",2,FALSE),0)))"); + var colDataFilScoreSudv = colRangeFilScoreSudv.getDisplayValues(); colRangeFilScoreSudv.clearContent(); - colRangeFilScoreSudv.setValues(colRangeFilScoreSudv.getDisplayValues()); + colRangeFilScoreSudv.setValues(colDataFilScoreSudv); } function calculateSumUniqueDailyVisitorsLast30Score() { @@ -53,14 +57,14 @@ function calculateSumUniqueDailyVisitorsLast30Score() { colRangeFilScoreSudvScore.clearContent(); var colIndexFilScoreSudv = getColIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); sFilScore.getRange(colIndexFilScoreSudvScore + "2").setValue("=ARRAYFORMULA(IF(ISBLANK($" + colIndexFilScoreSudv + "2:" + colIndexFilScoreSudv + "),\"\",PERCENTRANK($" + colIndexFilScoreSudv + "$2:$" + colIndexFilScoreSudv + ",$" + colIndexFilScoreSudv + "2:$" + colIndexFilScoreSudv + ")))"); + var colDataFilScoreSudvScore = colRangeFilScoreSudvScore.getDisplayValues(); colRangeFilScoreSudvScore.clearContent(); - colRangeFilScoreSudvScore.setValues(colRangeFilScoreSudvScore.getDisplayValues()); + colRangeFilScoreSudvScore.setValues(colDataFilScoreSudvScore); } function calculateFilScore() { var filScoreArrayFormula = "=ARRAYFORMULA("; - for (var i = 0, - var filScoreWeightLength = filScoreWeight.length; i < filScoreWeightLength; i++) { + for (var i = 0, filScoreWeightLength = filScoreWeight.length; i < filScoreWeightLength; i++) { var colIndex = getColIndex(sFilScore, filScoreWeight[i][0] + "Score"); if (i > 0) { filScoreArrayFormula += "*"; @@ -76,8 +80,9 @@ function updateFilScoreArrayFormula(filScoreArrayFormula) { var colRangeFilScoreFilScore = sFilScore.getRange(colIndexFilScoreFilScore + "2:" + colIndexFilScoreFilScore); colRangeFilScoreFilScore.clearContent(); sFilScore.getRange(colIndexFilScoreFilScore + "2").setValue(filScoreArrayFormula); + var colDataFilScoreFilScore = colRangeFilScoreFilScore.getDisplayValues(); colRangeFilScoreFilScore.clearContent(); - colRangeFilScoreFilScore.setValues(colRangeFilScoreFilScore.getDisplayValues()); + colRangeFilScoreFilScore.setValues(colDataFilScoreFilScore); } function copyFilScoreToPublic() { diff --git a/gs/html-factory.gs b/gs/html-factory.gs index 3b70fb331..26a726795 100644 --- a/gs/html-factory.gs +++ b/gs/html-factory.gs @@ -64,8 +64,7 @@ function createHtmlArrayRelatedLists(related) { } else { var relatedArray = related.split(','); var relatedHtml = ""; diff --git a/gs/utilities.gs b/gs/utilities.gs index aefb5040f..789a1bec6 100644 --- a/gs/utilities.gs +++ b/gs/utilities.gs @@ -1,8 +1,6 @@ function fill2dJsonArrayWithNulls(array2d) { - for (var i = 0, - var array2dLength = array2d.length; i < array2dLength; i++) { - for (var j = 0, - var array2dLength2 = array2d[0].length; j < array2dLength2; j++) { + for (var i = 0, array2dLength = array2d.length; i < array2dLength; i++) { + for (var j = 0, array2dLength2 = array2d[0].length; j < array2dLength2; j++) { if (array2d[i][j] == null) { array2d[i][j] = ""; } @@ -13,8 +11,7 @@ function fill2dJsonArrayWithNulls(array2d) { function getColIndex(sheet, colHeader) { var headerData = sheet.getRange("A1:1").getValues(); - for (var i = 0, - var headerDataLength = headerData[0].length; i < headerDataLength; i++) { + for (var i = 0, headerDataLength = headerData[0].length; i < headerDataLength; i++) { if (headerData[0][i] == colHeader) { return String.fromCharCode(65 + i); } @@ -24,8 +21,7 @@ function getColIndex(sheet, colHeader) { function getColIndexNum(sheet, colHeader) { var headerData = sheet.getRange("A1:1").getValues(); - for (var i = 0, - var headerDataLength = headerData[0].length; i < headerDataLength; i++) { + for (var i = 0, headerDataLength = headerData[0].length; i < headerDataLength; i++) { if (headerData[0][i] == colHeader) { return i + 1; } @@ -57,8 +53,7 @@ function trimUrlSlugArray(slugArray) { } else { if (slugArray) { var trimCharacters = [" ", "\"", ":", "'", "+", "(", ")", "."]; - for (var i = 0, - var trimCharactersLength = trimCharacters.length; i < trimCharactersLength; i++) { + for (var i = 0, trimCharactersLength = trimCharacters.length; i < trimCharactersLength; i++) { slugArray = slugArray.split(trimCharacters[i]).join(""); } return slugArray; @@ -71,8 +66,7 @@ function trimUrlSlugArray(slugArray) { function getNumLists(sheetData) { var colIndexDataViewUrl = getColIndex(sData, "viewUrl"); var colRangeDataViewUrl = sheetData.getRange(colIndexDataViewUrl + "2:" + colIndexDataViewUrl); - for (var i = 1, - var colRangeDataViewUrlLength = colRangeDataViewUrl.getNumRows(); i <= colRangeDataViewUrlLength; i++) { + for (var i = 1, colRangeDataViewUrlLength = colRangeDataViewUrl.getNumRows(); i <= colRangeDataViewUrlLength; i++) { if (!colRangeDataViewUrl.getCell(i, 1).getValue()) { return i - 1; } @@ -94,8 +88,7 @@ function moveColumn(sheet, iniCol, finCol) { function arrayMoveColumn(data, from, to) { if (!(data instanceof Array && data[0] instanceof Array)) throw new TypeError('need 2d array'); if (from >= data[0].length || to >= data[0].length) throw new Error('index out of bounds'); - for (var row = 0, - var dataLength = data.length; row < dataLength; row++) { + for (var row = 0, dataLength = data.length; row < dataLength; row++) { var temp = data[row].splice(from, 1); data[row].splice(to, 0, temp[0]); }