35 lines
937 B
JavaScript
35 lines
937 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;
|