diff --git a/gs/filscore.gs b/gs/filscore.gs index 05bae2863..602c0fc3d 100644 --- a/gs/filscore.gs +++ b/gs/filscore.gs @@ -1,41 +1,36 @@ +var filScoreWeight = [ + ["sumUniqueDailyVisitorsLast30", "1"] +]; + function refreshFilScores() { - var sheetNameData = typeSheetPrefix[ss.getName()] + "Data"; - var sheetData = ss.getSheetByName(sheetNameData); - var sheetNameScores = typeSheetPrefix[ss.getName()] + "Scores"; - var sheetScores = ss.getSheetByName(sheetNameScores); - var sheetNamePublic = typeSheetPrefix[ss.getName()] + "Public"; - var sheetPublic = ss.getSheetByName(sheetNamePublic); - copyListNamesAndViewUrlsToScore(sheetData, sheetScores); - var colHeader = findColumnHeader(sheetScores, "sumUniqueDailyVisitorsLast30"); - if (colHeader) { - var rangeFull = sheetScores.getRange(colHeader + "2:" + colHeader); - rangeFull.clearContent(); - var numLists = getNumLists(sheetScores); - for (i = 2; i <= numLists + 1; i++) { - var cellCur = sheetScores.getRange(colHeader + i); - cellCur.setValue("=ImportJson(CONCATENATE(\"" + piwikUrl + "?module=API&method=Actions.getDownload&downloadUrl=\",EncodeUrl(B" + i + "),\"&idSite=3&date=last30&period=range&format=json&token_auth=" + piwikApiToken + "\"), \"/sum_daily_nb_uniq_visitors\", \"noHeaders\")"); - } - var data = rangeFull.getDisplayValues(); - rangeFull.clearContent(); - rangeFull.setValues(data); - for (i = 2; i <= numLists + 1; i++) { - var sumUniqueDailyVisitorsLast30 = sheetScores.getRange(colHeader + i).getValue(); - if (sumUniqueDailyVisitorsLast30 == "#REF!") { - var cellCur = sheetScores.getRange(colHeader + i); - cellCur.setValue("=ImportJson(CONCATENATE(\"" + piwikUrl + "?module=API&method=Actions.getOutlink&outlinkUrl=\",EncodeUrl(B" + i + "),\"&idSite=3&date=last30&period=range&format=json&token_auth=" + piwikApiToken + "\"), \"/sum_daily_nb_uniq_visitors\", \"noHeaders\")"); - } - } - var data = rangeFull.getDisplayValues(); - rangeFull.clearContent(); - rangeFull.setValues(data); - for (i = 2; i <= numLists + 1; i++) { - var sumUniqueDailyVisitorsLast30 = sheetScores.getRange(colHeader + i).getValue(); - if (sumUniqueDailyVisitorsLast30 == "#REF!") { - var cellCur = sheetScores.getRange(colHeader + i); - cellCur.setValue(0); - } - } - } + var columnIndexListData = getColumnIndex(sData, "list"); + var columnIndexListFilScore = getColumnIndex(sFilScore, "list"); + copyRange(sData, columnIndexListData + "2:" + columnIndexListData, sFilScore, columnIndexListFilScore + "2:" + columnIndexListFilScore); + var columnIndexViewUrlData = getColumnIndex(sData, "viewUrl"); + var columnIndexViewUrlFilScore = getColumnIndex(sFilScore, "viewUrl"); + copyRange(sData, columnIndexViewUrlData + "2:" + columnIndexViewUrlData, sFilScore, columnIndexViewUrlFilScore + "2:" + columnIndexViewUrlFilScore); + getSumUniqueDailyVisitorsLast30(); + /*calculateFilScore(); + var columnIndexFilScoreFilScore = getColumnIndex(sFilScore, "filScore"); + var columnIndexFilScorePublic = getColumnIndex(sPublic, "filScore"); + copyRange(sFilScore, columnIndexFilScoreFilScore + "2:" + columnIndexFilScoreFilScore, sPublic, columnIndexFilScorePublic + "2:" + columnIndexFilScorePublic);*/ +} + +function getSumUniqueDailyVisitorsLast30() { + var columnDataSudvPiwikApiTempRange = sPiwikApiTemp.getRange("A2:A"); + var columnDataSudvPiwikApiTempTopCell = sPiwikApiTemp.getRange("A2"); + columnDataSudvPiwikApiTempRange.clearContent(); + columnDataSudvPiwikApiTempTopCell.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\")"); + var columnData = columnDataSudvPiwikApiTempRange.getDisplayValues(); + columnDataSudvPiwikApiTempRange.clearContent(); + columnDataSudvPiwikApiTempRange.setValues(columnData); + moveColumn(sPiwikApiTemp, 1, 2); + //var columnIndexSudvFilScore = getColumnIndex(sFilScore, "sumUniqueDailyVisitorsLast30"); + //var columnDataSudvFilScoreTopCell = sFilScore.getRange(columnIndexSudvFilScore + "2"); + //columnDataSudvFilScoreTopCell.setValue(); +} + +function calculateFilScore() { var colHeader = findColumnHeader(sheetScores, "score"); var colHeaderVisitors = findColumnHeader(sheetScores, "sumUniqueDailyVisitorsLast30"); if (colHeader) { @@ -50,26 +45,4 @@ function refreshFilScores() { rangeFull.clearContent(); rangeFull.setValues(data); } - copyScoresToPublic(sheetScores, sheetPublic); -} - -function copyListNamesAndViewUrlsToScore(sheetData, sheetScores) { - var sourceRangeListNames = sheetData.getRange("A1:A"); - var targetRangeListNames = sheetScores.getRange("A1:A"); - targetRangeListNames.clearContent(); - sourceRangeListNames.copyTo(targetRangeListNames); - var viewUrlColumn = findColumnHeader(sheetData, "viewUrl"); - var sourceRangeScores = sheetData.getRange(viewUrlColumn + "1:" + viewUrlColumn); - var targetRangeScores = sheetScores.getRange("B1:B"); - targetRangeScores.clearContent(); - sourceRangeScores.copyTo(targetRangeScores); -} - -function copyScoresToPublic(sheetScores, sheetPublic) { - var colHeaderSource = findColumnHeader(sheetScores, "score"); - var colHeaderTarget = findColumnHeader(sheetPublic, "FilScore"); - var sourceRangeListNames = sheetScores.getRange(colHeaderSource + "2:" + colHeaderSource); - var targetRangeListNames = sheetPublic.getRange(colHeaderTarget + "2:" + colHeaderTarget); - targetRangeListNames.clearContent(); - sourceRangeListNames.copyTo(targetRangeListNames); } \ No newline at end of file diff --git a/gs/http-response.gs b/gs/link-checker.gs similarity index 98% rename from gs/http-response.gs rename to gs/link-checker.gs index 61b6c5d13..8bcf6a774 100644 --- a/gs/http-response.gs +++ b/gs/link-checker.gs @@ -36,7 +36,7 @@ function refreshHttpResponses(triggerNum) { var sheetData = ss.getSheetByName(sheetNameData); var sheetNameStatuses = typeSheetPrefix[ss.getName()] + "UrlStatuses"; var sheetStatuses = ss.getSheetByName(sheetNameStatuses); - copyListNamesToStatuses(sheetData, sheetStatuses); + copyRange(sData, "A2:A", sHttpResponse, "A2:A"); var listDataMax = getNumLists(sheetData) var urlHeaders = findUrlColumnHeaders(sheetData); if (urlHeaders.length >= triggerNum) { diff --git a/gs/html-links.gs b/gs/link-factory.gs similarity index 100% rename from gs/html-links.gs rename to gs/link-factory.gs diff --git a/gs/ui.gs b/gs/ui.gs index ae087e9a5..d4a13ea9d 100644 --- a/gs/ui.gs +++ b/gs/ui.gs @@ -1,5 +1,6 @@ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sData = ss.getSheetByName("Data"); +var sPiwikApiTemp = ss.getSheetByName("PiwikApiTemp"); var sFilScore = ss.getSheetByName("FilScore"); var sHttpResponse = ss.getSheetByName("HttpResponse"); var sParsed = ss.getSheetByName("Parsed"); @@ -7,7 +8,7 @@ var sPublic = ss.getSheetByName("Public"); function onOpen() { var ui = SpreadsheetApp.getUi(); - ui.createMenu('Refresh').addItem('Refresh All', 'refreshAll').addSeparator().addItem('Refresh Data', 'refreshData').addItem('Refresh FilScores', 'refreshFilScores').addToUi(); + ui.createMenu('Refresh').addItem('Refresh All', 'refreshAll').addSeparator().addItem('Refresh Data', 'refreshData').addItem('Refresh FilScore', 'refreshFilScores').addToUi(); } function refreshAll() { diff --git a/gs/utilities.gs b/gs/utilities.gs index a8d50e3d0..55ce954a0 100644 --- a/gs/utilities.gs +++ b/gs/utilities.gs @@ -85,4 +85,27 @@ function getNumLists(sheetData) { return i - 1; } } +} + +function copyRange(sheetSource, rangeSource, sheetTarget, rangeTarget) { + var sourceRangeListNames = sheetSource.getRange(rangeSource); + var targetRangeListNames = sheetTarget.getRange(rangeTarget); + targetRangeListNames.clearContent(); + sourceRangeListNames.copyTo(targetRangeListNames); +} +// https://stackoverflow.com/questions/21145080/moving-a-column-in-google-spreadsheet/21152273#21152273 +function moveColumn(sheet, iniCol, finCol) { + var dataRange = sheet.getDataRange(); + var data = arrayMoveColumn(dataRange.getValues(), iniCol - 1, finCol - 1); + dataRange.setValues(data); +} + +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; row < data.length; row++) { + var temp = data[row].splice(from, 1); + data[row].splice(to, 0, temp[0]); + } + return data; } \ No newline at end of file