diff --git a/gs/data.gs b/gs/data.gs index a4dfd0f05..41f1ad6c7 100644 --- a/gs/data.gs +++ b/gs/data.gs @@ -11,9 +11,9 @@ function refreshData() { function concatenateNamelessComboLists() { var numLists = getNumLists(sData); - var listColumnIndex = getColumnIndexNumber(sData, "list"); + var listColumnIndex = getColIndexNum(sData, "list"); var listData = sData.getRange(2, listColumnIndex, numLists, 1).getValues(); - var relatedColumnIndex = getColumnIndexNumber(sData, "related"); + var relatedColumnIndex = getColIndexNum(sData, "related"); var relatedData = sData.getRange(2, relatedColumnIndex, numLists, 1).getValues(); for (var i = 0; i < numLists; i++) { if (!listData[i][0]) { @@ -26,7 +26,7 @@ function concatenateNamelessComboLists() { function refreshParsed() { var urlTypes = ["viewUrl", "addUrl", "homeUrl", "forumUrl", "issuesUrl", "email", "donateUrl"]; for (var i = 0, urlTypesLength = urlTypes.length; i < urlTypesLength; i++) { - var columnIndex = getColumnIndex(sParsed, urlTypes[i]); + var columnIndex = getColIndex(sParsed, urlTypes[i]); var columnDataRange = sParsed.getRange(columnIndex + "2:" + columnIndex); columnDataRange.clearContent(); var columnDataTopCell = sParsed.getRange(columnIndex + "2"); @@ -35,7 +35,7 @@ function refreshParsed() { columnDataTopCell.setValue("=createHtmlViewLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + columnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)"); break; case "addUrl": - var viewUrlColumnIndex = getColumnIndex(sData, "viewUrl"); + var viewUrlColumnIndex = getColIndex(sData, "viewUrl"); columnDataTopCell.setValue("=createHtmlAddLinkArray(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(Data!" + viewUrlColumnIndex + "1,Data!A1:1,0),4),\"1\",\"\")),Data!A2:A)"); break; case "homeUrl": @@ -64,7 +64,7 @@ function refreshParsed() { function refreshPublic() { var publicFields = ["list", "tags", "description", "links", "related"]; for (var i = 0, publicFieldsLength = publicFields.length; i < publicFieldsLength; i++) { - var columnIndex = getColumnIndex(sPublic, publicFields[i]); + var columnIndex = getColIndex(sPublic, publicFields[i]); var columnDataRange = sPublic.getRange(columnIndex + "2:" + columnIndex); columnDataRange.clearContent(); var columnDataTopCell = sPublic.getRange(columnIndex + "2"); @@ -76,7 +76,7 @@ function refreshPublic() { columnDataTopCell.setValue("=ARRAYFORMULA(\"\"&INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"tagLang\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"tagLang\",Data!A1:1,0),4),\"1\",\"\"))&\"\")"); break; case "description": - if (getColumnIndex(sData, "descrSourceUrl")) { + if (getColIndex(sData, "descrSourceUrl")) { columnDataTopCell.setValue("=ARRAYFORMULA(IF(ISBLANK(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descrSourceUrl\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descrSourceUrl\",Data!A1:1,0),4),\"1\",\"\"))),,\"
\")&INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descr\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descr\",Data!A1:1,0),4),\"1\",\"\"))&IF(ISBLANK(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descrSourceUrl\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descrSourceUrl\",Data!A1:1,0),4),\"1\",\"\"))),,\"
\"))"); } else { columnDataTopCell.setValue("=ARRAYFORMULA(INDIRECT(\"Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descr\",Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"descr\",Data!A1:1,0),4),\"1\",\"\")))"); diff --git a/gs/filscore.gs b/gs/filscore.gs index 2b9357b61..579a28f5c 100644 --- a/gs/filscore.gs +++ b/gs/filscore.gs @@ -3,21 +3,33 @@ var filScoreWeight = [ ]; function refreshFilScores() { - var colIndexDataList = getColumnIndex(sData, "list"); - var colIndexFilScoreList = getColumnIndex(sFilScore, "list"); - copyRange(sData, colIndexDataList + "2:" + colIndexDataList, sFilScore, colIndexFilScoreList + "2:" + colIndexFilScoreList); - var colIndexDataViewUrl = getColumnIndex(sData, "viewUrl"); - var colIndexFilScoreViewUrl = getColumnIndex(sFilScore, "viewUrl"); - copyRange(sData, colIndexDataViewUrl + "2:" + colIndexDataViewUrl, sFilScore, colIndexFilScoreViewUrl + "2:" + colIndexFilScoreViewUrl); + copyListToFilScore(); + copyViewUrlToFilScore(); getSumUniqueDailyVisitorsLast30(); calculateSumUniqueDailyVisitorsLast30Score(); calculateFilScore(); - var colIndexFilScoreFilScore = getColumnIndex(sFilScore, "filScore"); - var colIndexFilScorePublic = getColumnIndex(sPublic, "filScore"); - copyRange(sFilScore, colIndexFilScoreFilScore + "2:" + colIndexFilScoreFilScore, sPublic, colIndexFilScorePublic + "2:" + colIndexFilScorePublic); + copyFilScoreToPublic(); +} + +function copyListToFilScore() { + var colIndexDataList = getColIndex(sData, "list"); + var colIndexFilScoreList = getColIndex(sFilScore, "list"); + copyRange(sData, colIndexDataList + "2:" + colIndexDataList, sFilScore, colIndexFilScoreList + "2:" + colIndexFilScoreList); +} + +function copyViewUrlToFilScore() { + var colIndexDataViewUrl = getColIndex(sData, "viewUrl"); + var colIndexFilScoreViewUrl = getColIndex(sFilScore, "viewUrl"); + copyRange(sData, colIndexDataViewUrl + "2:" + colIndexDataViewUrl, sFilScore, colIndexFilScoreViewUrl + "2:" + colIndexFilScoreViewUrl); } function getSumUniqueDailyVisitorsLast30() { + getDownloadsFromPiwikApi(); + moveColumn(sPiwikApiTemp, 1, 2); + copyPiwikDownloadsToFilScore(); +} + +function getDownloadsFromPiwikApi() { var colRangePiwikApiTemp = sPiwikApiTemp.getRange("A2:B"); colRangePiwikApiTemp.clearContent(); var colTopPiwikApiTempSudv = sPiwikApiTemp.getRange("A2"); @@ -25,8 +37,10 @@ function getSumUniqueDailyVisitorsLast30() { var colDataPiwikApiTemp = colRangePiwikApiTemp.getDisplayValues(); colRangePiwikApiTemp.clearContent(); colRangePiwikApiTemp.setValues(colDataPiwikApiTemp); - moveColumn(sPiwikApiTemp, 1, 2); - var colIndexFilScoreSudv = getColumnIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); +} + +function copyPiwikDownloadsToFilScore() { + var colIndexFilScoreSudv = getColIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); var colTopFilScoreSudv = sFilScore.getRange(colIndexFilScoreSudv + "2"); var colRangeFilScoreSudv = sFilScore.getRange(colIndexFilScoreSudv + "2:" + colIndexFilScoreSudv); colRangeFilScoreSudv.clearContent(); @@ -37,11 +51,11 @@ function getSumUniqueDailyVisitorsLast30() { } function calculateSumUniqueDailyVisitorsLast30Score() { - var colIndexFilScoreSudvScore = getColumnIndex(sFilScore, "sumUniqueDailyVisitorsLast30Score"); + var colIndexFilScoreSudvScore = getColIndex(sFilScore, "sumUniqueDailyVisitorsLast30Score"); var colRangeFilScoreSudvScore = sFilScore.getRange(colIndexFilScoreSudvScore + "2:" + colIndexFilScoreSudvScore); colRangeFilScoreSudvScore.clearContent(); var colTopFilScoreSudvScore = sFilScore.getRange(colIndexFilScoreSudvScore + "2"); - var colIndexFilScoreSudv = getColumnIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); + var colIndexFilScoreSudv = getColIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); colTopFilScoreSudvScore.setValue("=ARRAYFORMULA(IF(ISBLANK($" + colIndexFilScoreSudv + "2:" + colIndexFilScoreSudv + "),\"\",PERCENTRANK($" + colIndexFilScoreSudv + "$2:$" + colIndexFilScoreSudv + ",$" + colIndexFilScoreSudv + "2:$" + colIndexFilScoreSudv + ")))"); var colDataFilScoreSudvScore = colRangeFilScoreSudvScore.getDisplayValues(); colRangeFilScoreSudvScore.clearContent(); @@ -49,21 +63,31 @@ function calculateSumUniqueDailyVisitorsLast30Score() { } function calculateFilScore() { - var filScoreFormula = "=ARRAYFORMULA("; + var filScoreArrayFormula = "=ARRAYFORMULA("; for (var i = 0, filScoreWeightLength = filScoreWeight.length; i < filScoreWeightLength; i++) { - var colIndex = getColumnIndex(sFilScore, filScoreWeight[i][0] + "Score"); + var colIndex = getColIndex(sFilScore, filScoreWeight[i][0] + "Score"); if (i > 0) { - filScoreFormula += "*"; + filScoreArrayFormula += "*"; } - filScoreFormula += "(IF(ISBLANK($" + colIndex + "2:$" + colIndex + "),\"\"," + filScoreWeight[i][1] + "*$" + colIndex + "2:$" + colIndex + "))"; + filScoreArrayFormula += "(IF(ISBLANK($" + colIndex + "2:$" + colIndex + "),\"\"," + filScoreWeight[i][1] + "*$" + colIndex + "2:$" + colIndex + "))"; } - filScoreFormula += ")"; - var colIndexFilScoreFilScore = getColumnIndex(sFilScore, "filScore"); + filScoreArrayFormula += ")"; + updateFilScoreArrayFormula(filScoreArrayFormula) +} + +function updateFilScoreArrayFormula(filScoreArrayFormula) { + var colIndexFilScoreFilScore = getColIndex(sFilScore, "filScore"); var colRangeFilScoreFilScore = sFilScore.getRange(colIndexFilScoreFilScore + "2:" + colIndexFilScoreFilScore); colRangeFilScoreFilScore.clearContent(); var colTopFilScoreFilScore = sFilScore.getRange(colIndexFilScoreFilScore + "2"); - colTopFilScoreFilScore.setValue(filScoreFormula); + colTopFilScoreFilScore.setValue(filScoreArrayFormula); var colDataFilScoreFilScore = colRangeFilScoreFilScore.getDisplayValues(); colRangeFilScoreFilScore.clearContent(); colRangeFilScoreFilScore.setValues(colDataFilScoreFilScore); +} + +function copyFilScoreToPublic() { + var colIndexFilScoreFilScore = getColIndex(sFilScore, "filScore"); + var colIndexFilScorePublic = getColIndex(sPublic, "filScore"); + copyRange(sFilScore, colIndexFilScoreFilScore + "2:" + colIndexFilScoreFilScore, sPublic, colIndexFilScorePublic + "2:" + colIndexFilScorePublic); } \ No newline at end of file diff --git a/gs/utilities.gs b/gs/utilities.gs index 55ce954a0..f8da45a42 100644 --- a/gs/utilities.gs +++ b/gs/utilities.gs @@ -9,7 +9,7 @@ function fill2dJsonArrayWithNulls(array2d) { return array2d; } -function getColumnIndex(sheet, columnHeader) { +function getColIndex(sheet, columnHeader) { var headerRange = sheet.getRange("A1:1"); var headerData = headerRange.getValues(); for (i = 0; i < headerData[0].length; i++) { @@ -20,7 +20,7 @@ function getColumnIndex(sheet, columnHeader) { return null; } -function getColumnIndexNumber(sheet, columnHeader) { +function getColIndexNum(sheet, columnHeader) { var headerRange = sheet.getRange("A1:1"); var headerData = headerRange.getValues(); for (i = 0; i < headerData[0].length; i++) { @@ -31,7 +31,7 @@ function getColumnIndexNumber(sheet, columnHeader) { return null; } -function getColumnIndicesWithHeaderSubstring(sheet, columnHeaderSubstring) { +function getColIndicesWithHeaderSubstring(sheet, columnHeaderSubstring) { var headerRange = sheet.getRange("A1:1"); var headerData = headerRange.getValues(); var columnIndices = new Array(); @@ -78,7 +78,7 @@ function trimUrlSlugArray(slugArray) { } function getNumLists(sheetData) { - var listHeaderData = getColumnIndex(sData, "viewUrl"); + var listHeaderData = getColIndex(sData, "viewUrl"); var listData = sheetData.getRange(listHeaderData + "2:" + listHeaderData); for (i = 1; i <= listData.getNumRows(); i++) { if (!(listData.getCell(i, 1).getValue())) {