Пример #1
0
	app_cache_handler.clearCache(cache, function(err) {
		if (err) {
			console.log('Error removing module', e .red);
			return res.send('Error clearing cache', e);
		}
		// Init Database
		dblite.bin = "./bin/sqlite3/sqlite3";
		var db = dblite('./lib/database/mcjs.sqlite');

		db.query('DROP TABLE IF EXISTS ' + cache);

		db.on('info', function (text) { console.log(text) });
		db.on('error', function (err) { console.error('Database error: ' + err) });

		return res.send('done');
	});
Пример #2
0
exports.initMovieDb = function() {
	// Init Database
	if(config.platform === 'OSX'){
		dblite.bin = "./bin/sqlite3/osx/sqlite3";
	}else {
		dblite.bin = "./bin/sqlite3/sqlite3";
	}
	var db = dblite('./lib/database/mcjs.sqlite');
    
	db.query("CREATE TABLE IF NOT EXISTS movies (local_name TEXT PRIMARY KEY,original_name VARCHAR, poster_path VARCHAR, backdrop_path VARCHAR, imdb_id INTEGER, rating VARCHAR, certification VARCHAR, genre VARCHAR, runtime VARCHAR, overview TEXT, cd_number VARCHAR)");

	db.on('info', function (text) { console.log(text) });
	db.on('error', function (err) { console.error('Database error: ' + err) });

	return db;
};
Пример #3
0
                return function(callback) {
                    dblite('../visualizations/snp-snip/databases/'+filename).query(
                        'SELECT * FROM main WHERE rs = ?',
                        [rsNumber],
                        function(rows) {
                            if (rows && rows[0]) {

                                // remove the rs column
                                rows[0].shift();

                                callback(null, rows[0]); 
                            } else {
                                callback(null, null);
                            }
                        }
                    );
                };
Пример #4
0
exports.getInfo = function(req, res, infoRequest) {
	var metadata_fetcher = require('./metadata-fetcher');
	var dblite = require('dblite');

    // Init Database
    var dblite = require('dblite')
    if(os.platform() === 'win32'){
        dblite.bin = "./bin/sqlite3/sqlite3";
    }
    var db = dblite('./lib/database/mcjs.sqlite');
	db.on('info', function (text) { console.log(text) });
	db.on('error', function (err) { console.error('Database error: ' + err) });
    
	db.query("CREATE TABLE IF NOT EXISTS music (filename TEXT PRIMARY KEY,title VARCHAR, cover VARCHAR, year VARCHAR, genre VARCHAR , tracks VARCHAR)");

	metadata_fetcher.fetchMetadataForAlbum(infoRequest, function(result) {
		res.json(result);
	});
};
Пример #5
0
exports.initMovieDb = function() {
    // Init Database
    var dblite = require('dblite')
    if(config.binaries === 'packaged'){
        if(config.platform === 'OSX'){
            dblite.bin = "./bin/sqlite3/osx/sqlite3";
        }else {
            dblite.bin = "./bin/sqlite3/sqlite3";
        }
    }
    var db = dblite('./lib/database/mcjs.sqlite');
    db.on('info', function (text) { console.log(text) });
    db.on('error', function (err) {
        if(config.binaries !== 'packaged'){
            console.log('You choose to use locally installed binaries instead of the binaries included. /n Please install them. Eg type "apt-get install sqlite3"');
        }
        console.error('Database error: ' + err)
    });

    db.query("CREATE TABLE IF NOT EXISTS movies (local_name TEXT PRIMARY KEY,original_name VARCHAR, poster_path VARCHAR, backdrop_path VARCHAR, imdb_id INTEGER, rating VARCHAR, certification VARCHAR, genre VARCHAR, runtime VARCHAR, overview TEXT, cd_number VARCHAR)");
    return db;
}; 
Пример #6
0
  a.ask(function(response) {
    // set the new config file
    config.port = response.port;
    config.musicpath = response.musicpath;
    config.useSSL =
      response.ssl.toLowerCase() === "yes" ||
      response.ssl.toLowerCase() === "true" ||
      response.ssl === 1
        ? true
        : false;
    const envArray = JSONToEnvArray(config);
    setEnv(envArray);
    fs.writeFileSync("./.env", envArray.join(""));

    // setup the Database
    var db = dblite("./users.db");
    db.query(
      "CREATE TABLE IF NOT EXISTS users (username TEXT, password TEXT)",
      function(err, res) {
        db.query(
          "INSERT OR REPLACE INTO users VALUES(?, ?)",
          [response.username, response.password],
          function(err, res) {
            console.log(
              "Config and user database has been set-up. Restart the app to start streaming."
            );
            if (config.useSSL)
              console.info(
                "Please update the paths of the SSL cert and key. Most likely you have to restart the app as root"
              );
            db.close();
            a.close();
          }
        );
      }
    );
  });
Пример #7
0
// Examples for game server:
// http://rawkes.com/articles/creating-a-real-time-multiplayer-game-with-websockets-and-node

//======================================================
// Configuration
//======================================================
var version = "0.1";
var port = 8080;

//======================================================
// Initialization
//======================================================
var server = require("http");
var dblite = require('dblite');
var db = dblite('database.db');

// Create database
//db.query('CREATE TABLE players (id INTEGER PRIMARY KEY, name VARCHAR(13), score INT, hits INT, date_played VARCHAR(25))');

server = server.createServer(Handler);
var io = require("socket.io").listen(server).set('log level',1);
io = io.sockets.on("connection", SocketHandler);
var fs = require("fs");
var path = require("path");
var logger = require('util');
var sys = require('sys');
server.listen(port);

console.log("===================================");
console.log("Server for ParrotHunt");
Пример #8
0
/* Global Imports */
var moviedb = require('moviedb')('7983694ec277523c31ff1212e35e5fa3'),
	fs = require('fs'),
	os = require('os'),
	app_cache_handler = require('../../lib/handlers/app-cache-handler'),
	config = require('../../lib/handlers/configuration-handler').getConfiguration(),
	movie_title_cleaner = require('../../lib/utils/title-cleaner');

/* Variables */
// Init Database
var dblite = require('dblite')
if(os.platform() === 'win32'){
	dblite.bin = "./bin/sqlite3/sqlite3";
}
var db = dblite('./lib/database/mcjs.sqlite');
db.on('info', function (text) { console.log(text) });
db.on('error', function (err) { console.error('Database error: ' + err) });

/* Public Methods */

/**
 * Fetches the Metadata for the specified Movie from themoviedb.org.
 * @param movieTitle         The Title of the Movie
 * @param callback           The Callback
 */
exports.fetchMetadataForMovie = function(movieTitle, callback) {
	var originalTitle = movieTitle;
	var movieInfos = movie_title_cleaner.cleanupTitle(movieTitle);
	movieTitle = movieInfos.title;

	app_cache_handler.ensureCacheDirExists('movies', movieTitle);
var dblite = require('dblite');
var db = dblite('./geonames-sqlite/geonames.sqlite3');
var Promise = require('bluebird');

function dbAsync(sql, strLocation) {
  return new Promise(function(resolve,reject){
    db.query(sql,[strLocation],function(err,data){
      if (err) {console.log(err)};
      resolve(data);
    });
  });
}

var geocoder = function(strLocation,cb){
  // regex out any non alpha characters, but leave in , (it needs to stay in for this step)
  var strLocation1 = strLocation.replace(/[^a-zA-z\s,]|_|\[|\]|\\|\//gi,"");
  // regex out any leading, double and end spaces, and ', CA'
  var strLocation2 = strLocation1.replace(/^\s+|\s+$|\s+(?=\s)|,.+/gi,"");
  // regex out any non alpha or space character
  var finalStrLocation = strLocation2.replace(/[^\w\s]/,"");

  if (!finalStrLocation) {
    // nothing to search the database with
    return cb(null,null);
  } else {
    sql = "SELECT * FROM geoname_fulltext WHERE longname MATCH ? AND country = 'United States' ORDER BY population DESC LIMIT 1";
    return dbAsync(sql, finalStrLocation).then(function(data){
      if (data.length !== undefined){
        data = {
          id: data[0][0],
          fullAddress: data[0][1],
Пример #10
0
var path = require('path'),
	config = require(path.join(__dirname, '..', 'config')).db,
	dblite = require('dblite'),
	db;

dblite.bin = config.sqlite;
db = dblite(config.file);

// generate url-safe id from title
exports.id = function (title) {
	var id = title.trim().toLowerCase();
	id = id.replace(/\s+/g, '-');
	id = id.replace(/\-{2,}/g, '-');
	id = id.replace(/[^a-zA-Z0-9\-]/g, '');
	return id;
};

// setup database if it doesn't exist
exports.setup = function () {
	db.query('CREATE TABLE IF NOT EXISTS articles (id VARCHAR PRIMARY KEY, title TEXT, content TEXT, created NUMERIC)');
};

// get article from database
exports.read = function (id, callback) {
	id = exports.id(id);

	db.query('SELECT * FROM articles WHERE id = ?', [ id ], {
		id: String,
		title: String,
		content: String,
		created: Date
Пример #11
0
var express = require('express');
var router = express.Router();
var http = require('http');
var moment = require('moment');
var fs = require('fs');
var glob = require('glob');
var util = require('util');
var later = require('later');
var dblite = require('dblite');
var db = dblite('temperatures.sqlite')

// Find all 1wire temperature devices.
var pattern = '/sys/bus/w1/devices/*/w1_slave';
var paths = glob.sync(pattern);
var last = [];

function db_create_if_not_exists(id) {
	db.query(util.format('CREATE TABLE IF NOT EXISTS `temp%d` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, '
			+ '`time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `value` REAL)', id), function(error, rows) {
		if (error) {
			console.log(error);
		}
	});
}

function db_insert(id, value) {
	db.query(util.format('INSERT INTO `temp%d` (`value`) VALUES (?)', id), [value], function(error, rows) {
		if (error) {
			console.log(error);
		}
	});
Пример #12
0
module.exports.connect = function (connectString, cb) {
	var db = dblite(connectString);
	var sql = [
		"CREATE TABLE IF NOT EXISTS blocks (id VARCHAR(20) PRIMARY KEY, version INT NOT NULL, timestamp INT NOT NULL, height INT NOT NULL, previousBlock VARCHAR(20), numberOfTransactions INT NOT NULL, totalAmount BIGINT NOT NULL, totalFee BIGINT NOT NULL, reward BIGINT NOT NULL, payloadLength INT NOT NULL, payloadHash BINARY(32) NOT NULL, generatorPublicKey BINARY(32) NOT NULL, blockSignature BINARY(64) NOT NULL, FOREIGN KEY ( previousBlock ) REFERENCES blocks ( id ) ON DELETE SET NULL)",
		"CREATE TABLE IF NOT EXISTS trs (id VARCHAR(20) PRIMARY KEY, blockId VARCHAR(20) NOT NULL, type TINYINT NOT NULL, timestamp INT NOT NULL, senderPublicKey BINARY(32) NOT NULL, senderId VARCHAR(21) NOT NULL, recipientId VARCHAR(21), senderUsername VARCHAR(20), recipientUsername VARCHAR(20), amount BIGINT NOT NULL, fee BIGINT NOT NULL, signature BINARY(64) NOT NULL, signSignature BINARY(64), requesterPublicKey BINARY(32), signatures TEXT, FOREIGN KEY(blockId) REFERENCES blocks(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS signatures (transactionId VARCHAR(20) NOT NULL PRIMARY KEY, publicKey BINARY(32) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS delegates(username VARCHAR(20) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS votes(votes TEXT, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS usernames(username VARCHAR(20) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS contacts(address VARCHAR(21) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS forks_stat(delegatePublicKey BINARY(32) NOT NULL, blockTimestamp INT NOT NULL, blockId VARCHAR(20) NOT NULL, blockHeight INT NOT NULL, previousBlock VARCHAR(20) NOT NULL, cause INT NOT NULL)",
		"CREATE TABLE IF NOT EXISTS multisignatures(min INT NOT NULL, lifetime INT NOT NULL, keysgroup TEXT NOT NULL, transactionId  VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATe TABLE IF NOT EXISTS dapps(transactionId VARCHAR(20) NOT NULL, name VARCHAR(32) NOT NULL, description VARCHARH(160), tags VARCHARH(160), siaAscii TEXT, siaIcon TEXT, git TEXT, type INTEGER NOT NULL, category INTEGER NOT NULL, icon TEXT, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS intransfer(dappId VARCHAR(20) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS sia_peers(ip INTEGER NOT NULL PRIMARY KEY, port TINYINT NOT NULL)",
		"CREATe TABLE IF NOT EXISTS outtransfer(transactionId VARCHAR(20) NOT NULL, dappId VARCHAR(20) NOT NULL, outTransactionId VARCHAR(20) NOT NULL UNIQUE, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS peers (id INTEGER NOT NULL PRIMARY KEY, ip INTEGER NOT NULL, port TINYINT NOT NULL, state TINYINT NOT NULL, os VARCHAR(64), sharePort TINYINT NOT NULL, version VARCHAR(11), clock INT)",
		"CREATE TABLE IF NOT EXISTS peers_dapp (peerId INT NOT NULL, dappid VARCHAR(20) NOT NULL, FOREIGN KEY(peerId) REFERENCES peers(id) ON DELETE CASCADE)",
		// Indexes
		"CREATE UNIQUE INDEX IF NOT EXISTS blocks_height ON blocks(height)",
		"CREATE UNIQUE INDEX IF NOT EXISTS blocks_previousBlock ON blocks(previousBlock)",
		"CREATE UNIQUE INDEX IF Not EXISTS out_transaction_id ON outtransfer(outTransactionId)",
		"CREATE UNIQUE INDEX IF NOT EXISTS peers_unique ON peers(ip, port)",
		"CREATE UNIQUE INDEX IF NOT EXISTS peers_dapp_unique ON peers_dapp(peerId, dappid)",
		"CREATE INDEX IF NOT EXISTS blocks_generator_public_key ON blocks(generatorPublicKey)",
		"CREATE INDEX IF NOT EXISTS blocks_reward ON blocks(reward)",
		"CREATE INDEX IF NOT EXISTS blocks_totalFee ON blocks(totalFee)",
		"CREATE INDEX IF NOT EXISTS blocks_totalAmount ON blocks(totalAmount)",
		"CREATE INDEX IF NOT EXISTS blocks_numberOfTransactions ON blocks(numberOfTransactions)",
		"CREATE INDEX IF NOT EXISTS blocks_timestamp ON blocks(timestamp)",
		"CREATE INDEX IF NOT EXISTS trs_block_id ON trs(blockId)",
		"CREATE INDEX IF NOT EXISTS trs_sender_id ON trs(senderId)",
		"CREATE INDEX IF NOT EXISTS trs_recipient_id ON trs(recipientId)",
		"CREATE INDEX IF NOT EXISTS trs_senderPublicKey on trs(senderPublicKey)",
		"CREATE INDEX IF NOT EXISTS trs_senderUsername on trs(senderUsername)",
		"CREATE INDEX IF NOT EXISTS trs_recipientUsername on trs(recipientUsername)",
		"CREATE INDEX IF NOT EXISTS trs_type on trs(type)",
		"CREATE INDEX IF NOT EXISTS trs_timestamp on trs(timestamp)",
		"CREATE INDEX IF NOT EXISTS signatures_trs_id ON signatures(transactionId)",
		"CREATE INDEX IF NOT EXISTS usernames_trs_id ON usernames(transactionId)",
		"CREATE INDEX IF NOT EXISTS votes_trs_id ON votes(transactionId)",
		"CREATE INDEX IF NOT EXISTS delegates_trs_id ON delegates(transactionId)",
		"CREATE INDEX IF NOT EXISTS contacts_trs_id ON contacts(transactionId)",
		"CREATE INDEX IF NOT EXISTS multisignatures_trs_id ON multisignatures(transactionId)",
		"CREATE INDEX IF NOT EXISTS dapps_trs_id ON dapps(transactionId)",
		"CREATE INDEX IF NOT EXISTS dapps_name ON dapps(name)",
		"CREATE INDEX IF NOT EXISTS sia_peers_unique ON sia_peers(ip, port)",
		"PRAGMA foreign_keys = ON",
		"PRAGMA synchronous=OFF",
		"PRAGMA journal_mode=MEMORY",
		"PRAGMA default_cache_size=10000",
		"PRAGMA locking_mode=EXCLUSIVE"
	];

	var post = [
		"UPDATE peers SET state = 1, clock = null where state != 0"
	];

	async.eachSeries(sql, function (command, cb) {
		db.query(command, function (err, data) {
			cb(err, data);
		});
	}, function (err) {
		if (err) {
			return cb(err);
		}

		var migration = {};

		db.query("PRAGMA user_version", function (err, rows) {
			if (err) {
				return cb(err);
			}

			var currentVersion = rows[0] || 0;

			var nextVersions = Object.keys(migration).sort().filter(function (ver) {
				return ver > currentVersion;
			});

			async.eachSeries(nextVersions, function (ver, cb) {
				async.eachSeries(migration[ver], function (command, cb) {
					db.query(command, function (err, data) {
						cb(err, data);
					});
				}, function (err) {
					if (err) {
						return cb(err);
					}

					db.query("PRAGMA user_version = " + ver, function (err, data) {
						cb(err, data);
					});
				});
			}, function (err) {
				if (err) {
					return cb(err);
				}

				async.eachSeries(post, function (command, cb) {
					db.query(command, function (err, data) {
						cb(err, data);
					});
				}, function (err) {
					cb(err, db);
				});
			});
		});
	});
}
Пример #13
0
module.exports.connect = function (connectString, cb) {
	var db = dblite(connectString);
	var sql = [
		"CREATE TABLE IF NOT EXISTS blocks (id VARCHAR(20) PRIMARY KEY, version INT NOT NULL, timestamp INT NOT NULL, height INT NOT NULL, previousBlock VARCHAR(20), numberOfTransactions INT NOT NULL, totalAmount BIGINT NOT NULL, totalFee BIGINT NOT NULL, payloadLength INT NOT NULL, payloadHash BINARY(32) NOT NULL, generatorPublicKey BINARY(32) NOT NULL, blockSignature BINARY(64) NOT NULL, FOREIGN KEY ( previousBlock ) REFERENCES blocks ( id ) ON DELETE SET NULL)",
		"CREATE TABLE IF NOT EXISTS trs (id VARCHAR(20) PRIMARY KEY, blockId VARCHAR(20) NOT NULL, type TINYINT NOT NULL, timestamp INT NOT NULL, senderPublicKey BINARY(32) NOT NULL, senderId VARCHAR(21) NOT NULL, recipientId VARCHAR(21), amount BIGINT NOT NULL, fee BIGINT NOT NULL, signature BINARY(64) NOT NULL, signSignature BINARY(64), FOREIGN KEY(blockId) REFERENCES blocks(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS signatures (transactionId VARCHAR(20) NOT NULL PRIMARY KEY, publicKey BINARY(32) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS peers (ip INTEGER NOT NULL, port TINYINT NOT NULL, state TINYINT NOT NULL, os VARCHAR(64), sharePort TINYINT NOT NULL, version VARCHAR(11), clock INT)",
		"CREATE TABLE IF NOT EXISTS delegates(username VARCHAR(20) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS votes(votes TEXT, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS usernames(username VARCHAR(20) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS contacts(address VARCHAR(21) NOT NULL, transactionId VARCHAR(20) NOT NULL, FOREIGN KEY(transactionId) REFERENCES trs(id) ON DELETE CASCADE)",
		"CREATE TABLE IF NOT EXISTS forks_stat(delegatePublicKey BINARY(32) NOT NULL, blockTimestamp INT NOT NULL, blockId VARCHAR(20) NOT NULL, blockHeight INT NOT NULL, previousBlock VARCHAR(20) NOT NULL, cause INT NOT NULL)",
		// Indexes
		"CREATE UNIQUE INDEX IF NOT EXISTS peers_unique ON peers(ip, port)",
		"CREATE UNIQUE INDEX IF NOT EXISTS blocks_height ON blocks(height)",
		"CREATE INDEX IF NOT EXISTS blocks_generator_public_key ON blocks(generatorPublicKey)",
		"CREATE INDEX IF NOT EXISTS trs_block_id ON trs (blockId)",
		"CREATE INDEX IF NOT EXISTS trs_sender_id ON trs(senderId)",
		"CREATE INDEX IF NOT EXISTS trs_recipient_id ON trs(recipientId)",
		"CREATE INDEX IF NOT EXISTS signatures_trs_id ON signatures(transactionId)",
		"CREATE INDEX IF NOT EXISTS usernames_trs_id ON usernames(transactionId)",
		"CREATE INDEX IF NOT EXISTS votes_trs_id ON votes(transactionId)",
		"CREATE INDEX IF NOT EXISTS delegates_trs_id ON delegates(transactionId)",
		"CREATE INDEX IF NOT EXISTS contacts_trs_id ON contacts(transactionId)",
		"PRAGMA foreign_keys = ON",
		"UPDATE peers SET state = 1, clock = null where state != 0",
		"PRAGMA main.page_size = 4096",
		"PRAGMA main.cache_size=10000",
		"PRAGMA main.locking_mode=EXCLUSIVE",
		"PRAGMA main.synchronous=NORMAL",
		"PRAGMA main.journal_mode=WAL",
		"PRAGMA main.cache_size=5000"
	];

	async.eachSeries(sql, function (command, cb) {
		db.query(command, function(err, data){
			cb(err, data);
		});
	}, function (err) {
		if (err) {
			return cb(err, db);
		}

		var migration = [
			"ALTER TABLE trs ADD COLUMN senderUsername VARCHAR(20)",
			"ALTER TABLE trs ADD COLUMN recipientUsername VARCHAR(20)",
			"PRAGMA user_version = 1"
		];

		db.query("PRAGMA user_version", function (err, rows) {
			if (err) {
				return cb(err, db);
			}

			var version = rows[0];

			if (version == 0) {
				async.eachSeries(migration, function (command, cb) {
					db.query(command, function (err, data) {
						cb(err, data);
					});
				}, function (err) {
					return cb(err, db);
				});
			} else {
				return cb(null, db);
			}
		});
	});
}
Пример #14
0
function generate() {
  var db = dblite(dbName.replace('.csv', '.sqlite'));
  var ipv4JS = [];
  var ipv6JS = [];
  var ipv4JSIndex = [];
  var ipv6JSIndex = [];
  db
    .query('DROP TABLE IF EXISTS europe')
    .query('DROP TABLE IF EXISTS ipv4')
    .query('DROP TABLE IF EXISTS ipv6')
    .query('.import "' + dbName + '" country_tmp')
    .query([
      'CREATE TABLE europe (',
        'country_code CHAR(2) NOT NULL',
      ')'
    ].join('\n'))
    .query('INSERT INTO europe VALUES ("' + Object.keys(EUCountries).join('"), ("') + '")')
    .query([
      'CREATE TABLE ipv4 (',
        'country_code CHAR(2) NOT NULL,',
        'lower_bound UNSIGNED INTEGER NOT NULL,',
        'upper_bound UNSIGNED INTEGER NOT NULL',
      ')'
    ].join('\n'))
    .query([
      'CREATE TABLE ipv6 (',
        'country_code CHAR(2) NOT NULL,',
        'lower_bound CHAR(39) NOT NULL,',
        'upper_bound CHAR(39) NOT NULL',
      ')'
    ].join('\n'))
    .query('SELECT * FROM country_tmp', function (rows) {
      db.query('BEGIN TRANSACTION');
      rows.forEach(function (row) {
        var
          lowerBound = row[0],
          upperBound = row[1],
          countryCode = fixedISO2CountryCore(row[2]),
          ipv4 = isIPv4(lowerBound),
          ipvJS = ipv4 ? ipv4JS : ipv6JS,
          ipvJSIndex = ipv4 ? ipv4JSIndex : ipv6JSIndex,
          table = ipv4 ? 'ipv4' : 'ipv6',
          transform = ipv4 ? ip2long : extendedIPv6,
          lb = transform(lowerBound),
          ub = transform(upperBound)
        ;
        ipvJS.push(lb, ub);
        ipvJSIndex.push(countryCode);
        db.query('INSERT INTO ' + table + ' VALUES (?, ?, ?)', [
          countryCode, lb, ub
        ]);
      });
      db.query('COMMIT');
      db.query('DROP TABLE country_tmp');
      db.query('SELECT "Geo database successfully imported"', function (rows) {
        console.log(rows[0][0]);
        db.close();
        fs.writeFileSync(
          './build/ipcc',
          fs.readFileSync('./src/template.js')
            .toString()
            .replace('//:LICENSE.txt', fs.readFileSync('./LICENSE.txt'))
            .replace('//:utils.js', fs.readFileSync('./src/utils.js'))
            .replace('//:eu-countries.js', fs.readFileSync('./src/eu-countries.js'))
            .replace('//:ipv4', 'var ipv4 = new Int32ArrayMaybe(' + JSON.stringify(ipv4JS) + ');')
            .replace('//:ipv4-length', 'var ipv4Length = ' + ipv4JS.length + ';')
            .replace('//:ipv4-countries', 'var ipv4Countries = ' + JSON.stringify(ipv4JSIndex) + ';')
            .replace('//:ipv6', 'var ipv6 = ' + JSON.stringify(ipv6JS) + ';')
            .replace('//:ipv6-length', 'var ipv6Length = ' + ipv6JS.length + ';')
            .replace('//:ipv6-countries', 'var ipv6Countries = ' + JSON.stringify(ipv6JSIndex) + ';')
        );
        var ipcc = require('./build/ipcc');
        var ip = '109.200.4.149';
        console.assert(ipcc.resolve(ip) === 'UK', 'recognizes a UK ipv4 address');
        console.assert(ipcc.isEU(ip), 'UK is recognized as EU');
        ip = 'fe80::200:f8ff:fe21:67cf';
        console.assert(ipcc.resolve(ip) === 'US', 'recognizes a US ipv6 address');
        console.assert(!ipcc.isEU(ip), 'US is recognized as non EU');
      });
    })
  ;
}
Пример #15
0
//Dylan Thomas 2015
//GNUPLV2

var dblite = require('dblite');
var db = dblite('localdata');
var http = require('http');
var url = require('url');
var fs = require('fs');
var xml2js = require('xml2js');
var exec = require('child_process').exec;
var schedule = require('node-schedule');
var parser = new xml2js.Parser();

var data={};
var dir=__dirname+'/drivers/config'; 

exports.load = function(callback){

	fs.readdir(dir,function(err,files){
    		if (err) throw err;
    	var c=0;
    	files.forEach(function(file){
		if(file.indexOf(".json") < 0) return;
        	c++;
		//console.log(file);
        	fs.readFile(dir+'/'+file,'utf-8',function(err,html){
            	if (err) throw err;
		data[file.replace(".json","")]=JSON.parse(html);
		console.log(data);
        });
    });