<commit_before>var http = require("http");
var qs = require('querystring');
var fs = require("fs");
var pg = require("pg");
var sha3 = require("js-sha3").sha3_512;
var mustache = require("mustache");
var url = require('url');

var config = require("./config");

var auth = fs.readFileSync("./tpl/auth.tpl", "utf-8");
var footer = fs.readFileSync("./tpl/footer.tpl", "utf-8");

var worker = function(request, response){
    
    //проверим action
    //если newuser - пришли данные на регистрацию
    console.log(request.post);
    switch(request.url){
        case "/":
            //если нет никаких данных - просто выводим форму авторизации
            var headers = {};

            headers['Content-Type'] = 'text/html';
            headers['Expires'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; //Дата в прошлом 
            headers['Cache-Control'] = ' no-cache, must-revalidate'; // HTTP/1.1 
            headers['Pragma'] = ' no-cache'; // HTTP/1.1 
            //headers['Last-Modified'] = ".gmdate("D, d M Y H:i:s")."GMT");

            response.writeHead(200, "Ok", headers);
            //TODO  тут вообще то если пользователь уже авторизован - надо бы ему сообщать об этом
            var data = {};
            if("user" in request) data.user = request.user;
            var output = mustache.render(auth, data, {footer: footer});
            response.write(output);
            //response.write(JSON.stringify(result.rows));
            response.end();
            break;
        case "/login/":
            pg.connect(config.common.postgres, function (err, pgClient, done) {
	        if(err){
                    console.log(err);
                    response.end();
    	            return;
	        }
                var sql = "select * from auth($1, $2, $3);"
                pgClient.query({
                    text: sql
	           ,values: [request.post.nickname, sha3(request.post.sword), rndHex(128)]
	        }, function(err, result){
                    done();
                    consle.log(result.rows);
                });
            });
            break;
        case "/logout/":
            var headers = {};

            headers["Set-Cookie"] = 'id=; path=/; HttpOnly;';
            //console.log(request.headers);
            if("referer" in request.headers){
                var parsed = url.parse(request.headers.referer);
                headers["Location"] = parsed.hostname == "openhabr.net" ? request.headers.referer : "/"<commit_msg>start<commit_after>var http = require("http");
var qs = require('querystring');
var fs = require("fs");
var pg = require("pg");
var sha3 = require("js-sha3").sha3_512;
var mustache = require("mustache");
var url = require('url');

var config = require("./config");

var auth = fs.readFileSync("./tpl/auth.tpl", "utf-8");
var footer = fs.readFileSync("./tpl/footer.tpl", "utf-8");

var worker = function(request, response){
    
    //проверим action
    //если newuser - пришли данные на регистрацию
    console.log(request.post);
    switch(request.url){
        case "/":
            //если нет никаких данных - просто выводим форму авторизации
            var headers = {};

            headers['Content-Type'] = 'text/html';
            headers['Expires'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; //Дата в прошлом 
            headers['Cache-Control'] = ' no-cache, must-revalidate'; // HTTP/1.1 
            headers['Pragma'] = ' no-cache'; // HTTP/1.1 
            //headers['Last-Modified'] = ".gmdate("D, d M Y H:i:s")."GMT");

            response.writeHead(200, "Ok", headers);
            //TODO  тут вообще то если пользователь уже авторизован - надо бы ему сообщать об этом
            var data = {};
            if("user" in request) data.user = request.user;
            var output = mustache.render(auth, data, {footer: footer});
            response.write(output);
            //response.write(JSON.stringify(result.rows));
            response.end();
            break;
        case "/login/":
            console.log("/login/");
            pg.connect(config.common.postgres, function (err, pgClient, done) {
	        if(err){
                    console.log(err);
                    response.end();
    	            return;
	        }
                var sql = "select * from auth($1, $2, $3);"
                pgClient.query({
                    text: sql
	           ,values: [request.post.nickname, sha3(request.post.sword), rndHex(128)]
	        }, function(err, result){
                    done();
                    console.log(result.rows);
                });
            });
            break;
        case "/logout/":
            var headers = {};

            headers["Set-Cookie"] = 'id=; path=/; HttpOnly;';
            //console.log(request.headers);
            if("referer" in request.headers){
                var parsed = url.parse(request.headers.referer);
                headers["Location"] = parsed.hostname == "openhabr.net" ? request.headers.referer : "/"
{'fraction_non_alphanumeric': 0.15548841893252768, 'fraction_numerical': 0.013695871097683786, 'mean_word_length': 1.823194997157476, 'pattern_counts': {'":': 6, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '62044', 'n_tokens_mistral': 1527, 'n_tokens_neox': 1494, 'n_words': 331}