Skip to content

Instantly share code, notes, and snippets.

@mikepayne02
mikepayne02 / Grafana.scriptable
Last active April 1, 2025 08:43
iOS Grafana widgets using Scriptable and grafana-image-renderer
{
"always_run_in_app" : false,
"icon" : {
"color" : "orange",
"glyph" : "chart-area"
},
"name" : "Grafana",
"script" : "\/\/ Configuration\nconst url=\"http:\/\/grafana.example.com\",\ntoken=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\norgId=1,\ndashboardName=\"widgets\",\ndashboardId=\"xxxxxxxxxxxxxx\",\ntz=\"America\/Chicago\",\ndarkMode=true,\ndeviceSize=\"393x852\";\n\nif(config.runsInWidget)return;\nconst e=config.runsInAccessoryWidget,n={small:\"s\",medium:\"m\",large:\"l\",extraLarge:\"x\",accessoryRectangular:\"r\",accessoryCircular:\"c\"}[config.widgetFamily]||\"m\",i=args.widgetParameter?.split(\",\")||[],w=i[0]||\"1\",S=i[1]||\"now-30m\",z=i[2]||\"now\",x=i[3]||\"Grafana\",t=i[4]||\"c\",c=Font.mediumSystemFont(12),r={s:new Size(474,474),m:new Size(500,210),l:new Size(500,500),x:new Size(500,500),r:new Size(480,216),c:new Size(216,216)},a={\"430x932\":{s:new Size(170,170),m:new Size(364,170),l:new Size(364,382),r:new Size(172,76),c:new Size(76,76)},\"428x926\":{s:new Size(1
@mikepayne02
mikepayne02 / Countdown.tsx
Created April 27, 2024 02:17
SolidJS countdown component
import { createSignal } from "solid-js";
const Countdown = (props) => {
function update() {
setRemaining(props.targetDate.getTime() - new Date().getTime());
}
const [remaining, setRemaining] = createSignal(0);
setRemaining(props.targetDate.getTime() - new Date().getTime());