Esempio n. 1
0
File: app.js Progetto: leapntu/edx
 db.serialize(function(){
   count += 1
   db.run(incCount, count)
 })
 }).then(() => {
   db.close()
 })
Esempio n. 3
0
 app.get('/api/v0/posts', function(req, res) {
     var id = parseInt(req.params.id, 10);
     db.all('SELECT id, title, body FROM Posts', function (err, posts) {
         res.json(posts);
     });
 });
Esempio n. 4
0
'use strict';

const sqlite3 = require('sqlite3');
const db = new sqlite3.Database('./db/chinook.sqlite');

console.log('# of invoices per country');

db.all(`
  SELECT   COUNT(*) AS count,
           BillingCountry AS country
  FROM     Invoice
  GROUP BY BillingCountry
  ORDER BY count DESC`,
    (err, res) => {
      if (err) throw err;

      console.log(res);
    }
);
const readline = require('readline')
const fs = require('fs')
const Promise = require('bluebird')
const sqlite3 = require("sqlite3")

const deltaParser = require('../delta_parser')

const inputFile = process.argv[2] || (console.log('Input file needed!'), process.exit(5))
const databaseFile = process.argv[3]

const db = new sqlite3.Database(databaseFile || 'test_db_'+new Date().getTime()+'.sqlite');
Promise.promisifyAll(db)
let initQuery = 'PRAGMA journal_mode=WAL;'
initQuery += 'PRAGMA foreign_keys = ON;'
if (!databaseFile) {
  initQuery += 'CREATE TABLE vessels (id INTEGER PRIMARY KEY, vessel TEXT UNIQUE);'
  initQuery += 'CREATE TABLE paths (id INTEGER PRIMARY KEY, path TEXT UNIQUE);'
  initQuery += 'CREATE TABLE entries (time INTEGER, vessel_id INTEGER NOT NULL, path_id INTEGER NOT NULL, value TEXT, ' +
    'FOREIGN KEY(vessel_id) REFERENCES vessels(id), FOREIGN KEY(path_id) REFERENCES paths(id));'
  initQuery += 'CREATE INDEX vessel_path_time ON entries (vessel_id, path_id, time);'
}
initQuery += "BEGIN;"

db.execAsync(initQuery).then(() => {
  console.log('Opening', inputFile)

  return new Promise(resolve => {
    const rl = readline.createInterface({
      input: fs.createReadStream(inputFile)
    })
Esempio n. 6
0
function insert_to_db(user_info, callback) {
    // compute the blob and an input string for each field
    var strings = 'INSERT INTO people (';
    var values_str = ') VALUES (';
    var values = []
    var blob = '';
    var first = true;
    var field_count = 0;

    fields.forEach(function(f) {
        var field = f[0];

        if (!(field in user_info)) {
            return;
        }

        var value = user_info[field];
        field_count += 1;

        if (field == 'twitter' && value && value[0] != '@') {
            value = '@' + value;
        }
        if (field == 'notes') {
            // Convert notes from markdown to html.
            value = marked(value);
        } else if (f[1] && value.length > 0) {
            blob += value + "\n"
        }

        if (first) {
            first = false;
        } else {
            strings += ', ';
            values_str += ', ';
        }
        strings += field;
        values_str += "?";
        values.push(value);
    });

    strings += ', blob';
    values_str += ", ?";
    values.push(blob);
    strings += values_str + ');';

    // Write everything to the DB
    var db = new sqlite.Database("rustaceans.db");
    db.serialize(function() {
        db.run('DELETE FROM people WHERE username=?;', user_info['username'], err_handler);
        db.run('DELETE FROM people_channels WHERE person=?;', user_info['username'], err_handler);

        if (field_count <= 1) {
            return;
        }

        db.run(strings, values, err_handler);
    
        // irc channels go into a separate table
        var irc_string = 'INSERT INTO people_channels (person, channel) VALUES (?, ?);'
        var channels = user_info['irc_channels'];
        channels.forEach(function(ch) {
            db.run(irc_string, user_info['username'], ch, err_handler);
        });
        callback();
    });
    db.close();
}
Esempio n. 7
0
var _ = require('underscore')._ ;
var sq3 = require('sqlite3') ;

var db= new sq3.Database('data/test.sqlite3') ;
var setup= 0 ;

function	create_done()
{
	++ setup ;
	console.log("step " + setup) ;

	if ( 2 == setup ) {
		db.run("INSERT INTO log (time, msg) VALUES (datetime('now'), ?)", [ 'test startup' ]) ;
	}
}

	db.run("CREATE TABLE IF NOT EXISTS list ( id PRIMARY KEY, val )", create_done) ;
	db.run("CREATE TABLE IF NOT EXISTS log ( id INTEGER PRIMARY KEY AUTOINCREMENT, time, msg )", create_done) ;

// _.each(['ab', 'cd', 'ef'], function(x) { console.log("output _ " + x) ; }) ;

Esempio n. 8
0
			},function(){
				db.run("INSERT INTO auth VALUES ($user, $session)",{
					$user:req.payload.user,
					$session:id
				});
			});
Esempio n. 9
0
var express = require('express');
var router = express.Router();
var sqlite3 = require('sqlite3');
var db = new sqlite3.Database('databases/words.sqlite');
db.run("PRAGMA case_sensitive_like = true");
router.get('/', function(req, res, next) {
var count = 0;
db.get("SELECT COUNT(*) AS tot FROM words", function(err,row){
var respText = "Words API: " + row.tot + " words online.";
res.send(respText);
});
 });
// We'll implement our API here...
router.get('/count/:abbrev', function(req, res, next) { var abbrev = req.params.abbrev;
var alen = abbrev.length;
var dataArray = [];
var sql = "SELECT substr(word,1," + alen + "+1) AS abbr, "
+" count(*) AS wordcount FROM words " +" WHERE word LIKE '" + abbrev + "%'"
+" GROUP BY substr(word,1," + alen + "+1)"
db.all(sql, function(err,rows){
for (var i=0;i<rows.length;i++) {
dataArray[i] = { abbrev: rows[i].abbr, count: rows[i].wordcount } }
res.send(dataArray); //Express will stringify data, set Content-type
});
// var data = {};
// var sql = "SELECT COUNT(*) AS wordcount FROM words WHERE word LIKE '" + abbrev + "%'" ;
// db.get(sql, function(err,row){
// data.abbrev = abbrev; data.count = row.wordcount; res.send(data);
// });
});
router.get('/search/:abbrev', function(req, res, next) {
Esempio n. 10
0
app.put('/upvote/topics/:topic_id', function(req, res){
  var id = req.params.topic_id;
  db.run("UPDATE topics SET votes=votes+1 WHERE id=" + id + ";");
  res.redirect('/');
});
Esempio n. 11
0
 db.all("SELECT * FROM topics WHERE topic='" + req.body.threadName + "';", {}, function(err, innerData){
 var topicID = innerData[0].id;
 db.run("INSERT INTO comments (topic_ID, user_ID, comment, location) VALUES (" + topicID + ", " + userID + ", '" + marked(req.body.postBody) + "', '" + userLocation + "');");
   });
Esempio n. 12
0
app.delete('/topics/:topic_id/comments/:comment_id', function(req, res){
  var id = req.params.comment_id;
  db.run("DELETE FROM comments WHERE id=" + id + ";");
  res.redirect('/topics/' + req.params.topic_id);
});
Esempio n. 13
0
 db.all("SELECT * FROM users WHERE name='" + username + "';", {}, function(err, data){
   var userID = data[0].id;
   db.run("INSERT INTO comments (topic_ID, user_ID, comment, location) VALUES (" + topicID + ", " + userID + ", '" + marked(newComment) + "', '" + userLocation + "');");
   });
Esempio n. 14
0
function shutdown() {
  logger.info('Shutdown detected. Closing db and sending LOW signal to IO_PIN');
  rpio.write(IO_PIN, rpio.LOW);
  db.close();
  process.exit();
}
// See comments on gender model!
function computeAgeModel(modelReadyCallback){
    var pollingData = [];
    var censusData = [];
    var keys = ["18-29","30-39","40-49","50-64","65 or older"]
    
    function go() {
        if(pollingData.length == 0 || censusData.length == 0){
            console.log("still waiting on data");
            return;
        }
        
        console.log("ready to go")
        // first decide for the undecided
        var popIndex = decideForUndecided(pollingData);
        
        // now apply how we think people will vote to each district
        var voteResults = []
        for(var i = 0; i < demVoters.length; i++) {
            var numberOfVoters = demVoters[i]; // for this district
            var cenDatum = censusData[i];
            var totalPeople = 0
            for(n in cenDatum) {    // total people in this district
                totalPeople += cenDatum[n]
            }
            
            var r18To29 = (cenDatum.range1519*.4+cenDatum.range2024+cenDatum.range2534*.5)/totalPeople;
            var r30To39 = (cenDatum.range2534*.5+cenDatum.range3544*.5)/totalPeople;
            var r40To49 = (cenDatum.range3544*.5+cenDatum.range4554*.5)/totalPeople;
            var r50To64 = (cenDatum.range4554*.5+cenDatum.range5559+cenDatum.range6064)/totalPeople;
            var r65Plus = (cenDatum.range6574+cenDatum.range7584+cenDatum.range85plus)/totalPeople;
            
            var agePercents = [r18To29,r30To39,r40To49,r50To64,r65Plus]
            var bernieVotes = 0;
            for(var j = 0; j < agePercents.length; j++) {
                var pollDatum = popIndex[keys[j]];
                bernieVotes+=numberOfVoters*agePercents[j]*pollDatum.bernie;
            }
            bernieVotes = Math.round(bernieVotes);
            
            var hillaryVotes = numberOfVoters - bernieVotes;
            
            voteResults.push({hVotes:hillaryVotes, bVotes:bernieVotes});
        }
        
        modelReadyCallback(voteResults);
    }
    
    var columns = "population='"+keys.join("' OR population='")+"'";
    pollsDB.all("SELECT * FROM Polls WHERE "+columns, 
            function(error, thing) {
                if(error) console.log(error);
                
                pollingData = thing;
                go();
            })

    censusDB.all("SELECT range1519,range2024,range2534, range3544,range4554,range5559,range6064,range6574,range7584,range85plus FROM Census", 
                function(error, thing){
                    if(error) console.log(error);
                
                    censusData = thing;
                    go();
               })
}
 }, function(err, resultCount) {
   stream.end();
   client.close();
 });
Esempio n. 17
0
var sqlite3 = require('sqlite3')
  //set db equal to my db file
var db = new sqlite3.Database('./wikidata.db', function(err, data) {
  console.log("DB linked!!");
})
db.run("INSERT INTO authors (author, email) VALUES ('Anna', '*****@*****.**');")
db.run("INSERT INTO authors (author, email) VALUES ('Banana', '*****@*****.**');")
db.run("INSERT INTO authors (author, email) VALUES ('Fofanna', '*****@*****.**');")

db.run("INSERT INTO articles (author_id, title, timestamp, content) VALUES (1, 'THINGS', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")
db.run("INSERT INTO articles (author_id, title, timestamp, content) VALUES (2, 'STUFF', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")
db.run("INSERT INTO articles (author_id, title, timestamp, content) VALUES (1, 'UGH', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")

db.run("INSERT INTO categories (category) VALUES ('apples');")
db.run("INSERT INTO categories (category) VALUES ('oranges');")
db.run("INSERT INTO categories (category) VALUES ('bananas');")

db.run("INSERT INTO tags (article_id, category_id) VALUES (1,3);")
db.run("INSERT INTO tags (article_id, category_id) VALUES (1,2);")
db.run("INSERT INTO tags (article_id, category_id) VALUES (2,1);")
db.run("INSERT INTO tags (article_id, category_id) VALUES (2,2);")
db.run("INSERT INTO tags (article_id, category_id) VALUES (3,3);")

db.run("INSERT INTO changelog (article_id, author, title, timestamp, content) VALUES (1, 'ME', 'THINGS', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")
db.run("INSERT INTO changelog (article_id, author, title, timestamp, content) VALUES (2, 'ME', 'STUFF', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")
db.run("INSERT INTO changelog (article_id, author, title, timestamp, content) VALUES (2, 'ME', 'UGH', '2014-05-09', 'LDGLFLJDHFDJLSFGDLSFGLSJDFGLDKFGLDSFGLDSFGLISUDFGLSIDFGLIDKSJGFLKJDSBFLKSDJFSDGKG');")
 db.run("drop table if exists " + TABLE_NAME, function () {
   db.run("create table " + TABLE_NAME +
     " (id integer primary key autoincrement, title text, text text)",
     function () { db.close(); });
 });
Esempio n. 19
0
var db = new sqlite3.Database(dbPath, function(err) {
    if (err) {
        throw err;
    }

    var createTablesSql = 'create table if not exists Tasks (title text, done int);';
    db.run(createTablesSql, function() {

        //create an express application
        var app = express();

        //use the JSON parser from bodyParser
        app.use(bodyParser.json());

        //serve static files from the /static sub-directory
        app.use(express.static(__dirname + '/static'));

        //create routes for our REST API
        //GET /api/tasks - returns all tasks
        app.get('/api/tasks', function(req, res, next) {
            db.all('select rowid, title, done from Tasks where done=0', function(err, rows) {
                if(err) {
                    return next(err);
                }

                res.json(rows);
            });
        });

        //POST /api/tasks - inserts a new task
        app.post('/api/tasks', function(req, res, next) {
            db.run('insert into Tasks (title, done) values(?,0)', req.body.title, function(err) {
                if (!req.body.title || req.body.title.trim().length == 0) {
                    turn.next({statusCode: 400, message: 'You must supply a Title!'});
                }
                if (err) {
                    return next(err);
                }
                res.json({rowid: this.lastID});
            });
        });
        //GET /api/tasks/:id - gets a particular task
        app.get('api/tasks/:id', function(req, res, next) {
            db.get('select rowid, title, done from Tasks where rowid=?', req.params.id, function(err, row) {
                if (err) {
                    return next(err);
                }
                if (row) {
                    res.json(row);
                } else {
                    next({statusCode: 404, message: 'Invalid task id!'})
                }

                res.json(row);
            });
        })
        //PUT /api/tasks/:id - updates a particular task
        app.put('/api/tasks/:id', function(req, res) {
            db.run('update Tasks set done=? where rowid=?', req.body.done, req.params.id, function(err) {
                if (err) {
                    return next(err);
                }
                res.json({rowsAffected: this.changes});
            });
        });



        //finally, add an error handler that sends back the error info as JSON
        app.use(function(err, req, res, next) {
            if (undefined == err.statusCode || 500 == err.statusCode) {
                console.error(err);
            }

            res.status(err.statusCode || 500).json({message: err.message || err.toString()});
        });

        //start the web server
        var server = app.listen(8080, function() {
            console.log('listening for requests sent to http://localhost:%s', server.address().port);
        });

        //listen for the SIGINT signal (Ctrl+C) and shut down the database gracefully
        process.on('SIGINT', function() {
            console.log('closing database...');
            db.close(function(err) {
                if (err) {
                    console.log('error closing database! ' + err);
                    process.exit(1);
                }
                else {
                    console.log('database is safely closed.');
                    process.exit(0);
                }
            }); //db.close()
        }); //on SIGINT
    }); //create tables
}); //open database
 function () { db.close(); });
Esempio n. 21
0
process.on('exit', function() {
	db.close();
});
Esempio n. 22
0
File: tbd.js Progetto: Paretzky/tbd
var http = require("http");
var sqlite = require("sqlite3");
var db = new sqlite.Database("tbd.sqlite3");
var fs = require("fs");
var index  = fs.readFileSync("./index.html").toString()

db.get("SELECT name FROM sqlite_master WHERE name='tbd'", function(err,row) {
	if(row == undefined) {
		console.log("Missing database table 'tbd', attempting to create");
		db.run("CREATE TABLE tbd (tbd_id char(128), ts timestamp, blob text)",function(e) {
			if(e == null) {
				console.log("Created new database table 'tbd'");
				db.run("CREATE INDEX tbd_index ON tbd(tbd_id,ts);",function(e2) {
					if(e2 == null) {
						console.log("Created new database index on 'tbd(tbd_id,ts)'");
					} else {
						console.log("Unable to create database index on 'tbd(tbd_id,ts)', exiting plugin");
					}
				});
			} else {
				console.log("Unable to create database table 'tbd', exiting plugin");
			}
		});
	}
});

var server = http.createServer();
server.on("request",function(req,res){
	if(req.method.match(/get/i)) {
		var id = req.url.replace(/^\/(\d+)\/?$/,"$1");
		if(!id.match(/^\d+$/)) {
Esempio n. 23
0
exports.openKeyDatabase = function (db_params, options) {
    if (options.debug) {
        sqlite3.verbose();
    }
    var db = new sqlite3.Database(db_params);

    db.createKey = function(key, callback) {
        params = {
            $kid:        key.kid,
            $ek:         key.ek,
            $kekId:      key.kekId,
            $info:       key.info,
            $contentId:  key.contentId,
            $expiration: null
        }
        if (key.expiration) {
            if (typeof key.expiration == 'string') {
                try {
                    var date = new Date(key.expiration).getTime()/1000;
                    if (!isNaN(date)) {
                        params.$expiration = date;
                    }
                } catch (err) {
                    
                }
            }
        }
        this.run('INSERT INTO Keys (kid, ek, kekId, info, contentId, expiration, lastUpdate) VALUES ($kid, $ek, $kekId, $info, $contentId, $expiration, strftime("%s", "now"))', params, function(err, result) {
            if (err) {
                err = mapError(err);
            }
            callback(err, result);
        });
    }

    db.getKeys = function (kids, progressCallback, completionCallback) {
        var localProgressCallback = function(err, result) {
            if (err) {
                err = mapError(err);
            } else {
                if (Array.isArray(result)) {
                    for (var i=0; i<result.length; i++) {
                        normalizeKey(result[i]);
                    }
                } else {
                    normalizeKey(result);
                }
                if (kids && kids.length > 1) {
                    // reorder the result to match the KID order
                    var indexed = {};
                    for (var i=0; i<result.length; i++) {
                        indexed[result[i].kid] = result[i];
                    }
                    var reordered = [];
                    for (var i=0; i<kids.length; i++) {
                        reordered[i] = indexed[kids[i]];
                    }
                    result = reordered;
                }
            }
            progressCallback(err, result);
        }
        var localCompletionCallback = function(err, result) {
            if (err) {
                err = mapError(err);
            }
            completionCallback(err, result);
        }
        if (kids) {
            this.all('SELECT * FROM Keys WHERE '+kidPlaceholders(kids.length), kids, localProgressCallback);
        } else {
            // get all keys
            this.each('SELECT * FROM Keys', localProgressCallback, localCompletionCallback);
        }
    }

    db.putKey = function (kid, key, callback) {
        sql = [];
        params = [];
        if (key.ek) {
            sql.push('ek = ?');
            params.push(key.ek);
        }
        if (key.kekId !== undefined) {
            sql.push(' kekId = ?');
            params.push(key.kekId);
        }
        if (key.info !== undefined) {
            sql.push(' info = ?');
            params.push(key.info);
        }
        if (key.contentId !== undefined) {
            sql.push(' contentId = ?');
            params.push(key.contentId);
        }
        if (sql.length == 0) {
            console.log("nothing to update");
            httpErrorResponse(response, 400, ERR_INVALID_PARAMETERS, 'invalid parameters');
            return;
        }
        params.push(kid);
        db.run('UPDATE Keys SET ' + sql.join(',') + ' WHERE kid = ?', params, function(err, result) {
            if (err) {
                err = mapError(err);
            } else {
                if (this.changes == 0) {
                    err = results.NOT_FOUND;
                }
            }
            callback(err, result);
        });
    }

    db.deleteKeys = function (kids, callback) {
        this.run('DELETE FROM Keys WHERE '+kidPlaceholders(kids.length), kids, function(err, result) {
            if (err) {
                err = mapError(err);
            }
            callback(err, result);
        });
    }

    return db;
};
Esempio n. 24
0
var subsets = require('random-subsets')
var fs = require('fs')
var sqlite  = require('sqlite3')

var path = './app/db/sample.sqlite'
try {
  if (fs.readFileSync(path)) fs.unlink(path)
} catch (err) {}

var db = new sqlite.Database(path)

var titles = ['biology', 'awesome', 'science', 'discovery', 'brain', 'genome', 'dna', 'virus', 'code', 'bacteria']
var authors = ['hubel', 'wiesel', 'watson', 'franklin', 'lovelace', 'turing']

db.serialize(function() {
  db.run("CREATE VIRTUAL TABLE Papers USING fts4(id INT, author TEXT, title TEXT)")
  var stmt = db.prepare("INSERT INTO Papers (id, author, title) VALUES (:id, :author, :title)");
  
  for (var i = 0; i < 500; i++) {
    stmt.run(
      i,
      subsets(authors, parseInt(Math.random() * 5) + 1)[0].join(' '), 
      subsets(titles, parseInt(Math.random() * 2) + 2)[0].join(' ')
    )
  }
  
  stmt.finalize()
})
 }, {concurrency: 1}).then(() => {
   console.log("Saving to sqlite took", new Date() - start, "ms")
   return db.execAsync("COMMIT;")
 }).then(() => {
Esempio n. 26
0
var sqlite3 = require("sqlite3");

var db_name = "feedback.db";
var dbpath = "databases/"+db_name;

var db = new sqlite3.Database(dbpath, function(err){
	if (err) console.log("DB error: ",err);        
});
 
db.run("CREATE TABLE IF NOT EXISTS feedback (id INTEGER PRIMARY KEY AUTOINCREMENT, body TEXT NOT NULL, staff TEXT, customer TEXT)");
 
module.exports = db;
Esempio n. 27
0
 app.get('/api/v0/posts/:id', function(req, res) {
     var id = parseInt(req.params.id, 10);
     db.get('SELECT title, body FROM Posts WHERE id = ?', id, function (err, post) {
         res.json(post);
     });
 });
Esempio n. 28
0
 db.serialize(function() {
   db.run("CREATE TABLE testa (id INTEGER PRIMARY KEY AUTOINCREMENT, a TEXT, b TEXT, c INTEGER, e DATE)");
 });
Esempio n. 29
0
	function(){
        db.close();
		callback(null, solarData);
	});
Esempio n. 30
0
exports.getPostTime = function(id, cb){
  db.all('select time from contributions as c where c.cid = ?',
    [id],
    cb);
};