38 lines
991 B
JavaScript
38 lines
991 B
JavaScript
// This is an exmaple GenieACS extension to get the current latitude/longitude
|
|
// of the International Space Station. Why, you ask? Because why not.
|
|
// To install, copy this file to config/ext/iss.js.
|
|
|
|
"use strict";
|
|
|
|
const http = require("http");
|
|
|
|
let cache = null;
|
|
let cacheExpire = 0;
|
|
|
|
function latlong(args, callback) {
|
|
if (Date.now() < cacheExpire) return callback(null, cache);
|
|
|
|
http
|
|
.get("http://api.open-notify.org/iss-now.json", (res) => {
|
|
if (res.statusCode !== 200)
|
|
return callback(
|
|
new Error(`Request failed (status code: ${res.statusCode})`)
|
|
);
|
|
|
|
let rawData = "";
|
|
res.on("data", (chunk) => (rawData += chunk));
|
|
|
|
res.on("end", () => {
|
|
let pos = JSON.parse(rawData)["iss_position"];
|
|
cache = [+pos["latitude"], +pos["longitude"]];
|
|
cacheExpire = Date.now() + 10000;
|
|
callback(null, cache);
|
|
});
|
|
})
|
|
.on("error", (err) => {
|
|
callback(err);
|
|
});
|
|
}
|
|
|
|
exports.latlong = latlong;
|