kopia lustrzana https://github.com/manuelkasper/sotlas-api
Porównaj commity
3 Commity
1b2ac37d18
...
641b472cf9
Autor | SHA1 | Data |
---|---|---|
Manuel Kasper | 641b472cf9 | |
Manuel Kasper | 43abb02735 | |
Manuel Kasper | baa6ed46b8 |
|
@ -2,7 +2,7 @@ var config = {};
|
||||||
module.exports = config;
|
module.exports = config;
|
||||||
|
|
||||||
config.http = {
|
config.http = {
|
||||||
host: '127.0.0.1',
|
host: undefined,
|
||||||
port: 8081
|
port: 8081
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,10 +35,6 @@ config.rbn = {
|
||||||
maxSpotHistory: 1000
|
maxSpotHistory: 1000
|
||||||
};
|
};
|
||||||
|
|
||||||
config.geoip = {
|
|
||||||
path: 'GeoLite2-City.mmdb'
|
|
||||||
};
|
|
||||||
|
|
||||||
config.summitListUrl = 'https://www.sotadata.org.uk/summitslist.csv';
|
config.summitListUrl = 'https://www.sotadata.org.uk/summitslist.csv';
|
||||||
|
|
||||||
config.sotatrailsUrl = 'https://sotatrails.ch/api.php';
|
config.sotatrailsUrl = 'https://sotatrails.ch/api.php';
|
||||||
|
|
2
db.js
2
db.js
|
@ -5,7 +5,7 @@ const assert = require('assert');
|
||||||
let db = null
|
let db = null
|
||||||
let client
|
let client
|
||||||
const connectPromise = new Promise((resolve, reject) => {
|
const connectPromise = new Promise((resolve, reject) => {
|
||||||
client = new MongoClient(config.mongodb.url, {useUnifiedTopology: true})
|
client = new MongoClient(config.mongodb.url)
|
||||||
client.connect(function (err) {
|
client.connect(function (err) {
|
||||||
assert.equal(null, err)
|
assert.equal(null, err)
|
||||||
db = client.db(config.mongodb.dbName)
|
db = client.db(config.mongodb.dbName)
|
||||||
|
|
Plik diff jest za duży
Load Diff
|
@ -22,13 +22,14 @@
|
||||||
"express-jwt": "^5.3.1",
|
"express-jwt": "^5.3.1",
|
||||||
"express-validator": "^6.10.0",
|
"express-validator": "^6.10.0",
|
||||||
"express-ws": "^4.0.0",
|
"express-ws": "^4.0.0",
|
||||||
|
"geolite2-redist": "^3.0.2",
|
||||||
"hasha": "^5.1.0",
|
"hasha": "^5.1.0",
|
||||||
"htmlparser2": "^3.10.1",
|
"htmlparser2": "^3.10.1",
|
||||||
"jwks-rsa": "^1.6.0",
|
"jwks-rsa": "^1.6.0",
|
||||||
"maxmind": "^3.1.2",
|
"maxmind": "^4.3.6",
|
||||||
"minio": "^7.0.29",
|
"minio": "^7.0.29",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"mongodb": "^3.6.1",
|
"mongodb": "^4.8.1",
|
||||||
"multer": "^1.4.2",
|
"multer": "^1.4.2",
|
||||||
"nodemailer": "^6.4.6",
|
"nodemailer": "^6.4.6",
|
||||||
"reconnect-net": "^1.1.1",
|
"reconnect-net": "^1.1.1",
|
||||||
|
|
29
server.js
29
server.js
|
@ -14,11 +14,21 @@ const geoexport = require('./geoexport');
|
||||||
const users = require('./users');
|
const users = require('./users');
|
||||||
const activations = require('./activations');
|
const activations = require('./activations');
|
||||||
const utils = require('./utils');
|
const utils = require('./utils');
|
||||||
const photos_router = require('./photos_router')
|
const photos_router = require('./photos_router');
|
||||||
const tracks_router = require('./tracks_router')
|
const tracks_router = require('./tracks_router');
|
||||||
const solardata = require('./solardata')
|
const solardata = require('./solardata');
|
||||||
const maxmind = require('maxmind');
|
const maxmind = require('maxmind');
|
||||||
|
|
||||||
|
let geoLookup;
|
||||||
|
import('geolite2-redist').then((geolite2) => {
|
||||||
|
return geolite2.open(
|
||||||
|
'GeoLite2-City',
|
||||||
|
(dbPath) => maxmind.open(dbPath)
|
||||||
|
)
|
||||||
|
}).then((reader) => {
|
||||||
|
geoLookup = reader;
|
||||||
|
});
|
||||||
|
|
||||||
let dbChecker = (req, res, next) => {
|
let dbChecker = (req, res, next) => {
|
||||||
if (db.getDb() == null) {
|
if (db.getDb() == null) {
|
||||||
console.error('DB error');
|
console.error('DB error');
|
||||||
|
@ -43,9 +53,12 @@ app.use('/photos', photos_router);
|
||||||
app.use('/tracks', tracks_router);
|
app.use('/tracks', tracks_router);
|
||||||
app.use('/solardata', solardata);
|
app.use('/solardata', solardata);
|
||||||
|
|
||||||
let sotaSpotReceiver = new SotaSpotReceiver();
|
db.waitDb(() => {
|
||||||
let rbnReceiver = new RbnReceiver();
|
let sotaSpotReceiver = new SotaSpotReceiver();
|
||||||
rbnReceiver.start();
|
sotaSpotReceiver.start();
|
||||||
|
let rbnReceiver = new RbnReceiver();
|
||||||
|
rbnReceiver.start();
|
||||||
|
})
|
||||||
|
|
||||||
app.get('/summits/search', (req, res) => {
|
app.get('/summits/search', (req, res) => {
|
||||||
let limit = 100;
|
let limit = 100;
|
||||||
|
@ -277,10 +290,6 @@ app.get('/activators/:callsign', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
let geoLookup;
|
|
||||||
maxmind.open(config.geoip.path).then((lookup) => {
|
|
||||||
geoLookup = lookup;
|
|
||||||
});
|
|
||||||
app.get('/map_server', (req, res) => {
|
app.get('/map_server', (req, res) => {
|
||||||
let mapServer = 'us';
|
let mapServer = 'us';
|
||||||
let geo = geoLookup.get(req.ip);
|
let geo = geoLookup.get(req.ip);
|
||||||
|
|
|
@ -16,7 +16,9 @@ class SotaSpotReceiver {
|
||||||
});
|
});
|
||||||
wsManager.unicast({spots}, ws);
|
wsManager.unicast({spots}, ws);
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
this.loadSpots();
|
this.loadSpots();
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
this.loadSpots();
|
this.loadSpots();
|
||||||
|
|
Ładowanie…
Reference in New Issue