diff --git a/data/schema.sql b/data/schema.sql index 67a8465..bd4f58c 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,12 +1,25 @@ CREATE TABLE IF NOT EXISTS an_statslog ( ClientID varchar(256) NOT NULL, - Version varchar(256) DEFAULT NULL, - ProviderStr varchar(256) DEFAULT NULL, - ProviderID varchar(256) DEFAULT NULL, - NoteCount int(11) DEFAULT NULL, + + Version varchar(256) DEFAULT NULL, + ProviderStr varchar(256) DEFAULT NULL, + ProviderID varchar(256) DEFAULT NULL, + NoteCount int(11) DEFAULT NULL, + RawFolderRepo varchar(2048) DEFAULT NULL, + RawFolderRepoMode varchar(2048) DEFAULT NULL, + GitMirror varchar(2048) DEFAULT NULL, + GitMirrorPush varchar(2048) DEFAULT NULL, + Theme varchar(2048) DEFAULT NULL, + LaunchOnBoot varchar(2048) DEFAULT NULL, + EmulateHierarchicalStructure varchar(2048) DEFAULT NULL, + HasEditedAdvancedSettings varchar(2048) DEFAULT NULL, + AdvancedSettingsDiff varchar(2048) DEFAULT NULL, + + LastChanged datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, CreatedAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + Comment varchar(1024) DEFAULT NULL, PRIMARY KEY (ClientID) diff --git a/www/commands/alephnote_statsping.php b/www/commands/alephnote_statsping.php index 98e3f99..d5e4e94 100644 --- a/www/commands/alephnote_statsping.php +++ b/www/commands/alephnote_statsping.php @@ -15,27 +15,35 @@ if (!isset($API_OPTIONS['notecount'])) { $FRAME_OPTIONS->forceResult(400, "Wro $nam = $API_OPTIONS['name']; $cid = $API_OPTIONS['clientid']; -$ver = $API_OPTIONS['version']; -$prv = $API_OPTIONS['providerstr']; -$pid = $API_OPTIONS['providerid']; -$tnc = $API_OPTIONS['notecount']; + +$values = []; + +$values['Version'] = $API_OPTIONS['version']; +$values['ProviderStr'] = $API_OPTIONS['providerstr']; +$values['ProviderID'] = $API_OPTIONS['providerid']; +$values['NoteCount'] = $API_OPTIONS['notecount']; + +$values['RawFolderRepo'] = isset($_GET['RawFolderRepo']) ? $_GET['RawFolderRepo'] : null; +$values['RawFolderRepoMode'] = isset($_GET['RawFolderRepoMode']) ? $_GET['RawFolderRepoMode'] : null; +$values['GitMirror'] = isset($_GET['GitMirror']) ? $_GET['GitMirror'] : null; +$values['GitMirrorPush'] = isset($_GET['GitMirrorPush']) ? $_GET['GitMirrorPush'] : null; +$values['Theme'] = isset($_GET['Theme']) ? $_GET['Theme'] : null; +$values['LaunchOnBoot'] = isset($_GET['LaunchOnBoot']) ? $_GET['LaunchOnBoot'] : null; +$values['EmulateHierarchicalStructure'] = isset($_GET['EmulateHierarchicalStructure']) ? $_GET['EmulateHierarchicalStructure'] : null; +$values['HasEditedAdvancedSettings'] = isset($_GET['HasEditedAdvancedSettings']) ? $_GET['HasEditedAdvancedSettings'] : null; +$values['AdvancedSettingsDiff'] = isset($_GET['AdvancedSettingsDiff']) ? $_GET['AdvancedSettingsDiff'] : null; if ($nam !== 'AlephNote') print('{"success":false, "message":"Unknown AppName"}'); +/** @noinspection SqlInsertValues */ +$sql = 'INSERT INTO an_statslog (ClientID, '.join(', ', array_keys($values)).') VALUES (:cid, '.join(', ', array_map(function($v) {return ':'.$v.'_1';}, array_keys($values))).') ON DUPLICATE KEY UPDATE '.join(', ', array_map(function($v) {return $v.'=:'.$v.'_2';}, array_keys($values))); -$SITE->modules->Database()->sql_exec_prep('INSERT INTO an_statslog (ClientID, Version, ProviderStr, ProviderID, NoteCount) VALUES (:cid1, :ver1, :prv1, :pid1, :tnc1) ON DUPLICATE KEY UPDATE Version=:ver2,ProviderStr=:prv2,ProviderID=:pid2,NoteCount=:tnc2', -[ - [':cid1', $cid, PDO::PARAM_STR], - [':ver1', $ver, PDO::PARAM_STR], - [':prv1', $prv, PDO::PARAM_STR], - [':pid1', $pid, PDO::PARAM_STR], - [':tnc1', $tnc, PDO::PARAM_INT], +$params = []; +$params []= [':cid', $cid, PDO::PARAM_STR]; +foreach ($values as $k => $v) $params []= [':'.$k.'_1', $v, ($k=='NoteCount') ? PDO::PARAM_INT : PDO::PARAM_STR]; +foreach ($values as $k => $v) $params []= [':'.$k.'_2', $v, ($k=='NoteCount') ? PDO::PARAM_INT : PDO::PARAM_STR]; - [':ver2', $ver, PDO::PARAM_STR], - [':prv2', $prv, PDO::PARAM_STR], - [':pid2', $pid, PDO::PARAM_STR], - [':tnc2', $tnc, PDO::PARAM_INT], -]); +$SITE->modules->Database()->sql_exec_prep($sql, $params); print('{"success":true}');