Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 58d405396e | |||
| f7523ae5e2 | |||
| 024a43e20b |
@@ -1,5 +1,9 @@
|
|||||||
### Changelog
|
### Changelog
|
||||||
|
|
||||||
|
#### [v2.0.1](https://git.w33ble.com/w33ble/adsb-index/compare/v2.0.0...v2.0.1) (2 November 2018)
|
||||||
|
- fix: format undefined fields [`024a43e`](https://git.w33ble.com/w33ble/adsb-index/commit/024a43e20b7ebcf79ef5625df2021a41fa9b2ce9)
|
||||||
|
- fix: exit on errors [`f7523ae`](https://git.w33ble.com/w33ble/adsb-index/commit/f7523ae5e20414dfec597050051566adbba9a310)
|
||||||
|
|
||||||
### [v2.0.0](https://git.w33ble.com/w33ble/adsb-index/compare/v1.0.1...v2.0.0) (2 November 2018)
|
### [v2.0.0](https://git.w33ble.com/w33ble/adsb-index/compare/v1.0.1...v2.0.0) (2 November 2018)
|
||||||
- feat: add ads-b exchange source [`9f0da54`](https://git.w33ble.com/w33ble/adsb-index/commit/9f0da54ccfc639ec6367ea85ec39bea117fd3108)
|
- feat: add ads-b exchange source [`9f0da54`](https://git.w33ble.com/w33ble/adsb-index/commit/9f0da54ccfc639ec6367ea85ec39bea117fd3108)
|
||||||
- feat: use ads-b exchange data [`89261d0`](https://git.w33ble.com/w33ble/adsb-index/commit/89261d0010315ad248dcfdcf25916d952de648d8)
|
- feat: use ads-b exchange data [`89261d0`](https://git.w33ble.com/w33ble/adsb-index/commit/89261d0010315ad248dcfdcf25916d952de648d8)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ async function run() {
|
|||||||
// scheduled running
|
// scheduled running
|
||||||
if (interval === 0) return;
|
if (interval === 0) return;
|
||||||
logger.debug(`Starting interval (${interval}s)...`);
|
logger.debug(`Starting interval (${interval}s)...`);
|
||||||
runInterval(fetchAndIndex, interval * 1000);
|
runInterval(() => fetchAndIndex().catch(handleError), interval * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
run().catch(handleError);
|
run().catch(handleError);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "adsb-index",
|
"name": "adsb-index",
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "ADS-B indexing script",
|
"description": "ADS-B indexing script",
|
||||||
"bin": "bin/index.js",
|
"bin": "bin/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
import fetch from './fetch.mjs';
|
import fetch from './fetch.mjs';
|
||||||
|
|
||||||
|
const formatNumber = str => str && Number(`${str}`.replace(/[^0-9.-]/, ''));
|
||||||
|
const formatString = str => {
|
||||||
|
if (str == null) return 'N/A';
|
||||||
|
if (typeof str !== 'string') return str;
|
||||||
|
return str && str.length && str !== 'undefined' ? str.trim() : 'N/A';
|
||||||
|
};
|
||||||
|
|
||||||
export async function getOpenskyData() {
|
export async function getOpenskyData() {
|
||||||
const positionSourceMap = ['ADS-B', 'ASTERIX', 'MLAT'];
|
const positionSourceMap = ['ADS-B', 'ASTERIX', 'MLAT'];
|
||||||
const res = await fetch.get(`https://opensky-network.org/api/states/all`);
|
const res = await fetch.get(`https://opensky-network.org/api/states/all`);
|
||||||
@@ -25,15 +32,14 @@ export async function getOpenskyData() {
|
|||||||
|
|
||||||
export async function getAdbsExchangeData({ lat, lon, radius }) {
|
export async function getAdbsExchangeData({ lat, lon, radius }) {
|
||||||
const positionSourceMap = ['Unknown', 'Mode-S', 'ADS-B', 'ADS-B', 'ADS-B', 'ADS-B'];
|
const positionSourceMap = ['Unknown', 'Mode-S', 'ADS-B', 'ADS-B', 'ADS-B', 'ADS-B'];
|
||||||
const formatNumber = str => str && Number(`${str}`.replace(/[^0-9.-]/, ''));
|
|
||||||
|
|
||||||
const res = await fetch.get(
|
const res = await fetch.get(
|
||||||
`http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=${lat}&lng=${lon}&fDstL=0&fDstU=${radius}`
|
`http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=${lat}&lng=${lon}&fDstL=0&fDstU=${radius}`
|
||||||
);
|
);
|
||||||
|
|
||||||
return res.data.acList.map(rec => ({
|
return res.data.acList.map(rec => ({
|
||||||
transponder: `${rec.Icao}`.toLowerCase(),
|
transponder: formatString(`${rec.Icao}`.toLowerCase()),
|
||||||
callsign: `${rec.Call}`.trim(),
|
callsign: formatString(rec.Call),
|
||||||
origin_country: rec.Cou,
|
origin_country: rec.Cou,
|
||||||
time_position: new Date(rec.PosTime),
|
time_position: new Date(rec.PosTime),
|
||||||
last_contact: new Date(rec.PosTime),
|
last_contact: new Date(rec.PosTime),
|
||||||
@@ -48,10 +54,10 @@ export async function getAdbsExchangeData({ lat, lon, radius }) {
|
|||||||
squawk: rec.Sqk,
|
squawk: rec.Sqk,
|
||||||
spi: false,
|
spi: false,
|
||||||
position_source: positionSourceMap[rec.Trt],
|
position_source: positionSourceMap[rec.Trt],
|
||||||
operator: rec.Op,
|
operator: formatString(rec.Op),
|
||||||
aircraft: rec.Mdl,
|
aircraft: formatString(rec.Mdl),
|
||||||
aircraft_manufacturer: rec.Man,
|
aircraft_manufacturer: formatString(rec.Man),
|
||||||
from: rec.From,
|
from: formatString(rec.From),
|
||||||
to: rec.To,
|
to: formatString(rec.To),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user