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;
|
||||
|
||||
config.http = {
|
||||
host: '127.0.0.1',
|
||||
host: undefined,
|
||||
port: 8081
|
||||
};
|
||||
|
||||
|
@ -35,10 +35,6 @@ config.rbn = {
|
|||
maxSpotHistory: 1000
|
||||
};
|
||||
|
||||
config.geoip = {
|
||||
path: 'GeoLite2-City.mmdb'
|
||||
};
|
||||
|
||||
config.summitListUrl = 'https://www.sotadata.org.uk/summitslist.csv';
|
||||
|
||||
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 client
|
||||
const connectPromise = new Promise((resolve, reject) => {
|
||||
client = new MongoClient(config.mongodb.url, {useUnifiedTopology: true})
|
||||
client = new MongoClient(config.mongodb.url)
|
||||
client.connect(function (err) {
|
||||
assert.equal(null, err)
|
||||
db = client.db(config.mongodb.dbName)
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -22,13 +22,14 @@
|
|||
"express-jwt": "^5.3.1",
|
||||
"express-validator": "^6.10.0",
|
||||
"express-ws": "^4.0.0",
|
||||
"geolite2-redist": "^3.0.2",
|
||||
"hasha": "^5.1.0",
|
||||
"htmlparser2": "^3.10.1",
|
||||
"jwks-rsa": "^1.6.0",
|
||||
"maxmind": "^3.1.2",
|
||||
"maxmind": "^4.3.6",
|
||||
"minio": "^7.0.29",
|
||||
"moment": "^2.24.0",
|
||||
"mongodb": "^3.6.1",
|
||||
"mongodb": "^4.8.1",
|
||||
"multer": "^1.4.2",
|
||||
"nodemailer": "^6.4.6",
|
||||
"reconnect-net": "^1.1.1",
|
||||
|
|
23
server.js
23
server.js
|
@ -14,11 +14,21 @@ const geoexport = require('./geoexport');
|
|||
const users = require('./users');
|
||||
const activations = require('./activations');
|
||||
const utils = require('./utils');
|
||||
const photos_router = require('./photos_router')
|
||||
const tracks_router = require('./tracks_router')
|
||||
const solardata = require('./solardata')
|
||||
const photos_router = require('./photos_router');
|
||||
const tracks_router = require('./tracks_router');
|
||||
const solardata = require('./solardata');
|
||||
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) => {
|
||||
if (db.getDb() == null) {
|
||||
console.error('DB error');
|
||||
|
@ -43,9 +53,12 @@ app.use('/photos', photos_router);
|
|||
app.use('/tracks', tracks_router);
|
||||
app.use('/solardata', solardata);
|
||||
|
||||
db.waitDb(() => {
|
||||
let sotaSpotReceiver = new SotaSpotReceiver();
|
||||
sotaSpotReceiver.start();
|
||||
let rbnReceiver = new RbnReceiver();
|
||||
rbnReceiver.start();
|
||||
})
|
||||
|
||||
app.get('/summits/search', (req, res) => {
|
||||
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) => {
|
||||
let mapServer = 'us';
|
||||
let geo = geoLookup.get(req.ip);
|
||||
|
|
|
@ -16,7 +16,9 @@ class SotaSpotReceiver {
|
|||
});
|
||||
wsManager.unicast({spots}, ws);
|
||||
})
|
||||
}
|
||||
|
||||
start() {
|
||||
this.loadSpots();
|
||||
setInterval(() => {
|
||||
this.loadSpots();
|
||||
|
|
Ładowanie…
Reference in New Issue