From: Nick Downing Date: Tue, 9 Oct 2018 02:13:59 +0000 (+1100) Subject: Move analytics stuff into the html page template in businessdataflow.git X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=2a4504688a3d89a2d51c4b25edb91cf5997b2df3;p=jst_server.git Move analytics stuff into the html page template in businessdataflow.git --- diff --git a/site.js b/site.js index 1e6f47e..482b1bf 100644 --- a/site.js +++ b/site.js @@ -7,7 +7,6 @@ let resources = require('./resources') let server = require('./server') let util = require('util') let url = require('url') -let XDate = require('xdate') let fs_readFile = util.promisify(fs.readFile) let fs_stat = util.promisify(fs.stat) @@ -81,56 +80,6 @@ let app = async (site, site_root, req, res, protocol) => { config.mime_types[file_type] : config.mime_type_default - if (file_type == 'html') { - let path_analytics = site_root + '/analytics' - let path_sessions = path_analytics + '/sessions.json' - let path_pageviews = path_analytics + '/pageviews.json' - - await resources.try_mkdir(path_analytics) - let sessions = await resources.json_cache.get(path_sessions, {}) - let pageviews = await resources.json_cache.get(path_pageviews, {}) - - let cookies = cookie.parse(req.headers.cookie || ''), session_key - if ( - !cookies.hasOwnProperty('session_key') || - !sessions.hasOwnProperty(session_key = cookies.session_key) - ) { - session_key = crypto.randomBytes(16).toString('hex') - console.log('new session', session_key) - sessions[session_key] = {pageviews: {}} - } - let session = sessions[session_key] - - let expires = new XDate() - expires.addMonths(1) - expires = expires.toUTCString() - res.setHeader( - 'Set-Cookie', - 'session_key=' + session_key + '; expires=' + expires + '; path=/;' - ) - session.expires = expires - - if (!pageviews.hasOwnProperty(page)) { - console.log('new pageview', page) - pageviews[page] = {} - } - let pageview = pageviews[page] - ++pageview.visits; - - //if (!session.hasOwnProperty('pageviews')) - // session.pageviews = {} - let session_pageviews = session.pageviews - if (!session_pageviews.hasOwnProperty(page)) { - console.log('new session_pageview', page) - session_pageviews[page] = 0 - ++pageview.unique_visits - } - ++session_pageviews[page] - - await resources.json_cache.set(path_sessions) - await resources.json_cache.set(path_pageviews) - } - if (dir_name_is_pub) { temp = site_root + dir_name + '/' + file_name try { @@ -179,9 +128,24 @@ let app = async (site, site_root, req, res, protocol) => { try { let buffers = [] let env = { + cookies: cookie.parse(req.headers.cookie || ''), lang: 'en', page: page, query: parsed_url.query, + resources: resources, + set_cookie: (key, value, expires, path) => { + res.setHeader( + 'Set-Cookie', + key + + '=' + + value + + '; expires=' + + expires + + '; path=' + + path + + ';' + ) + }, site: site, site_root: site_root }