From dbd2e78843e25b65a84fe154b7e265f08286fd22 Mon Sep 17 00:00:00 2001 From: mattpiwik <matthieu.aubry@gmail.com> Date: Wed, 31 Mar 2010 13:53:29 +0000 Subject: [PATCH] Fixes #1227 the archive script now loops over all websites and triggers a different request for each archive, helping out with the archive memory exhausted issue (refs #766) git-svn-id: http://dev.piwik.org/svn/trunk@2025 59fd770c-687e-43c8-a1e3-f5a4ff64c105 --- core/API/ResponseBuilder.php | 4 ++++ core/DataTable/Renderer/Csv.php | 5 +++++ misc/cron/archive.sh | 25 +++++++++++++++++++++---- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/core/API/ResponseBuilder.php b/core/API/ResponseBuilder.php index e629e44d1d..4e586f19d7 100644 --- a/core/API/ResponseBuilder.php +++ b/core/API/ResponseBuilder.php @@ -202,6 +202,10 @@ class Piwik_API_ResponseBuilder { $renderer->setTableId($this->request['method']); } + else if($format == 'csv') + { + $renderer->setConvertToUnicode( Piwik_Common::getRequestVar('convertToUnicode', true, 'int') ); + } return $renderer->render(); } diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php index e756b518e6..8cc72d4b08 100644 --- a/core/DataTable/Renderer/Csv.php +++ b/core/DataTable/Renderer/Csv.php @@ -61,6 +61,11 @@ class Piwik_DataTable_Renderer_Csv extends Piwik_DataTable_Renderer */ public $exportIdSubtable = true; + function setConvertToUnicode($bool) + { + $this->convertToUnicode = $bool; + } + function render() { return $this->output($this->renderTable($this->table)); diff --git a/misc/cron/archive.sh b/misc/cron/archive.sh index bfd43fd3e4..2871bf4c42 100644 --- a/misc/cron/archive.sh +++ b/misc/cron/archive.sh @@ -48,8 +48,25 @@ PIWIK_SUPERUSER_MD5_PASSWORD=`sed '/^\[superuser\]/,$!d;/^password[ \t]*=[ \t]*" CMD_TOKEN_AUTH="$PHP_BIN $PIWIK_PATH -- module=API&method=UsersManager.getTokenAuth&userLogin=$PIWIK_SUPERUSER&md5Password=$PIWIK_SUPERUSER_MD5_PASSWORD&format=php&serialize=0" TOKEN_AUTH=`$CMD_TOKEN_AUTH` -for period in day week year; do - CMD="$PHP_BIN $PIWIK_PATH -- module=API&method=VisitsSummary.getVisits&idSite=all&period=$period&date=last52&format=xml&token_auth=$TOKEN_AUTH"; - $CMD - echo "" +CMD_GET_ID_SITES="$PHP_BIN $PIWIK_PATH -- module=API&method=SitesManager.getAllSitesId&token_auth=$TOKEN_AUTH&format=csv&convertToUnicode=0" +ID_SITES=`$CMD_GET_ID_SITES` +echo "Starting Piwik archiving..." +echo "" +for idsite in $ID_SITES; do + TEST_IS_NUMERIC=`echo $idsite | egrep '^[0-9]+$'` + if [ "$TEST_IS_NUMERIC" ] + then + for period in day week year; do + echo "" + echo "Archiving period = $period for idsite = $idsite..." + CMD="$PHP_BIN $PIWIK_PATH -- module=API&method=VisitsSummary.getVisits&idSite=$idsite&period=$period&date=last52&format=xml&token_auth=$TOKEN_AUTH"; + $CMD + done + + echo "" + echo "Archiving for idsite = $idsite done!" + fi done + +echo "Piwik archiving finished." + -- GitLab