Skip to content

Instantly share code, notes, and snippets.

@mickeydarrenlau
Last active February 23, 2024 08:18
Show Gist options
  • Save mickeydarrenlau/77689d0bfe71410e27e364b6f595faf9 to your computer and use it in GitHub Desktop.
Save mickeydarrenlau/77689d0bfe71410e27e364b6f595faf9 to your computer and use it in GitHub Desktop.
My Device Info Widget

^deviceinfo

Device Info

try {
const {DeviceInfo} = customJS
await DeviceInfo.display({dv})
} catch(error) {
 dv.span("We are working hard to prepare your device info for you ⏳")
 //dv.span(error.message)
}

^d900a3

class DeviceInfo {
async display(args) {
const {dv} = args
const date = await app.plugins.getPlugin('templater-obsidian').templater.functions_generator.internal_functions.modules_array.find(x => x.name === "date").static_object
let th = Number(date.now("HH"))
let tm = Number(date.now("mm"))
if(tm<10){
tm = "0" + tm
}
let timem = ''
if(th>12) {
th = th -12
timem = th + ":" + tm + " in the afternoon."
} else {
timem = th + ":" + tm + " in the morning."
}
dv.span("Today is " + date.now("YYYY-MM-DD") + ". The time is " + timem)
dv.span("<br></br>")
if(Capacitor.getPlatform() == "web") {
var os = require('os')
function secondsToDhms(seconds) {
seconds = Number(seconds);
var d = Math.floor(seconds / (3600*24));
var h = Math.floor(seconds % (3600*24) / 3600);
var m = Math.floor(seconds % 3600 / 60);
var s = Math.floor(seconds % 60);
var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "";
var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
return {dDisplay, hDisplay, mDisplay, sDisplay}
}
const {dDisplay, hDisplay, mDisplay, sDisplay } = secondsToDhms(os.uptime())
dv.span("This pc 💻 is running " + os.platform() + ", " + os.version())
dv.span("<br></br>")
dv.span("This pc 💻 have been on for " + dDisplay + hDisplay + mDisplay + sDisplay + ".")
dv.span("<br></br>")
const data = await navigator.getBattery()
let chargestatus = 'not charging'
let chargetime = ", discharging time is " + data["dischargingTime"]
if(data["charging"]) {
chargestatus = "charging"
chargetime = ", charging time is " + data["chargingTime"]
}
dv.span("The pc 💻 is currently " + chargestatus + chargetime)
} else {
const deviceinfo = await Capacitor.Plugins.Device.getInfo()
const devicebattery = await Capacitor.Plugins.Device.getBatteryInfo()
let currentbattlevel = devicebattery["batteryLevel"].toFixed(2).replace("0.",'')
if(currentbattlevel == 1) {
currentbattlevel = 100
}
dv.span("This device 📱 is running " + deviceinfo["operatingSystem"] + ", version " + deviceinfo["osVersion"])
dv.span("<br></br>")
dv.span("This device 📱 is made by " + deviceinfo["manufacturer"] + ", model is " + deviceinfo["model"])
dv.span("<br></br>")
dv.span("The battery 🔋 level is " + currentbattlevel + "% out of 100%")
dv.span("<br></br>")
dv.span("<progress id='file' max=" + "100" + " value=" + currentbattlevel + "></progress>")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment