Last active
September 22, 2024 21:46
-
-
Save spencerwooo/7955aefc4ffa5bc8ae7c83d85d05e7a4 to your computer and use it in GitHub Desktop.
π TermiWidget - Terminal-like Widget for iOS 14, made with Scriptable.
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
// Variables used by Scriptable. | |
// These must be at the very top of the file. Do not edit. | |
// icon-color: orange; icon-glyph: quote-right; | |
// Change these to your usernames! | |
const user = "spencer" | |
const jike = "4DDA0425-FB41-4188-89E4-952CA15E3C5E" | |
const telegram = "realSpencerWoo" | |
const github = "spencerwooo" | |
const sspai = "spencerwoo" | |
const data = await fetchData() | |
const widget = createWidget(data) | |
Script.setWidget(widget) | |
Script.complete() | |
function createWidget(data) { | |
console.log(data) | |
const w = new ListWidget() | |
const bgColor = new LinearGradient() | |
bgColor.colors = [new Color("#29323c"), new Color("#1c1c1c")] | |
bgColor.locations = [0.0, 1.0] | |
w.backgroundGradient = bgColor | |
w.setPadding(12, 15, 15, 12) | |
w.spacing = 6 | |
const time = new Date() | |
const dfTime = new DateFormatter() | |
dfTime.locale = "en" | |
dfTime.useMediumDateStyle() | |
dfTime.useNoTimeStyle() | |
const firstLine = w.addText(`[] ${user} ~$ now`) | |
firstLine.textColor = Color.white() | |
firstLine.textOpacity = 0.7 | |
firstLine.font = new Font("Menlo", 11) | |
const timeLine = w.addText(`[π] ${dfTime.string(time)}`) | |
timeLine.textColor = Color.white() | |
timeLine.font = new Font("Menlo", 11) | |
const batteryLine = w.addText(`[π] ${renderBattery()}`) | |
batteryLine.textColor = new Color("#6ef2ae") | |
batteryLine.font = new Font("Menlo", 11) | |
const jikeLine = w.addText(`[π] Jike: ${data.jikeFollower}`) | |
jikeLine.textColor = new Color("#ffcc66") | |
jikeLine.font = new Font("Menlo", 11) | |
const telegramLine = w.addText(`[οΈοΈ] Telegram: ${data.telegram}`) | |
telegramLine.textColor = new Color("#7dbbae") | |
telegramLine.font = new Font("Menlo", 11) | |
const githubLine = w.addText(`[π] GitHub: ${data.github}`) | |
githubLine.textColor = new Color("#ff9468") | |
githubLine.font = new Font("Menlo", 11) | |
const sspaiLine = w.addText(`[] SSPAI: ${data.sspai}`) | |
sspaiLine.textColor = new Color("#ffa7d3") | |
sspaiLine.font = new Font("Menlo", 11) | |
return w | |
} | |
async function fetchData() { | |
const url = `https://api.spencerwoo.com/substats/?source=jikeFollower&queryKey=${jike}` | |
+ `&source=telegram&queryKey=${telegram}` | |
+ `&source=github&queryKey=${github}` | |
+ `&source=sspai&queryKey=${sspai}` | |
const request = new Request(url) | |
const res = await request.loadJSON() | |
return res.data.subsInEachSource | |
} | |
function renderBattery() { | |
const batteryLevel = Device.batteryLevel() | |
const juice = "#".repeat(Math.floor(batteryLevel * 8)) | |
const used = ".".repeat(8 - juice.length) | |
const batteryAscii = `[${juice}${used}] ${Math.round(batteryLevel * 100)}%` | |
return batteryAscii | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I have done quite changes and configured it to work with substats api v2 at here https://gist.github.com/amirsaam/e531b5f1662fa8bdd8a024eefa06a728