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)
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 {
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
}