Last active
March 19, 2023 00:16
-
-
Save dkordik/d4c9b253274cf3e5589df5be4874b6d3 to your computer and use it in GitHub Desktop.
xbar/BitBar plugin to show currently connected ISP logo. Just added T-Mobile and Verizon, for starters. But you can see how you could easily add others.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env /usr/local/bin/node | |
// <xbar.title>Current ISP name</xbar.title> | |
// <xbar.version>v2.1.7-beta</xbar.version> | |
// <xbar.author>Dan Kordik</xbar.author> | |
// <xbar.author.github>dkordik</xbar.author.github> | |
// <xbar.desc>Displays current ISP name</xbar.desc> | |
// <xbar.dependencies></xbar.dependencies> | |
const http = require("http"); | |
const url = "http://ip-api.com/json"; | |
// find a good logo image online | |
// resize to 144dpi, 40x40 pixels - I used the built-in Preview app on macOS | |
// convert to base64 - I used https://codebeautify.org/image-to-base64-converter | |
const ISP_LOGOS = { | |
TMOBILE: | |
"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", | |
VERIZON: | |
"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", | |
}; | |
const renderIsp = (ispString) => { | |
if (ispString.includes("T-Mobile")) return `| image=${ISP_LOGOS.TMOBILE}`; | |
if (ispString.includes("Verizon")) return `| image=${ISP_LOGOS.VERIZON}`; | |
return ispString; | |
}; | |
http | |
.get(url, (res) => { | |
let data = ""; | |
res.on("data", (chunk) => { | |
data += chunk; | |
}); | |
res.on("end", () => { | |
try { | |
const cc = JSON.parse(data); | |
console.log(renderIsp(cc.isp)); | |
console.log("---"); | |
console.log(cc.isp); | |
// console.log(data.toString()); | |
} catch (err) { | |
console.log("🚩"); | |
console.log("---"); | |
console.log(err.toString()); | |
} | |
}); | |
}) | |
.on("error", (err) => { | |
console.log("🚩"); | |
console.log("---"); | |
console.log(err.toString()); | |
}); |
Author
dkordik
commented
Mar 19, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment