Last active
June 2, 2021 04:09
-
-
Save timwillsie/32db56505cbbf49f01e1dd11b095c1c8 to your computer and use it in GitHub Desktop.
Anzeige der verbleibenden Tage bis zum WOA in einem Widget
This file contains hidden or 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
| const endDate = '08/04/2022 05:00:00 PM'; | |
| const fontColor = new Color("#918A8A") | |
| const daysTillText = 'Tage bis Wacken' | |
| const logoUrl = 'https://www.wacken.com/fileadmin/user_upload/_ts2-2_/logo_1x-min.png' | |
| const widgetUrl = "https://www.wacken.com" | |
| const daysFont = Font.ultraLightSystemFont(70) | |
| const dummyFont = Font.lightSystemFont(14) | |
| const widget = await createWidget() | |
| widget.backgroundColor = new Color("#000000") | |
| if (!config.runsInWidget) { | |
| await widget.presentSmall() | |
| } | |
| Script.setWidget(widget) | |
| Script.complete() | |
| async function createWidget() { | |
| let daysText, dummyText, row, row2 | |
| const widget = new ListWidget() | |
| widget.url = widgetUrl | |
| const logoReq = new Request(logoUrl) | |
| const logoImg = await logoReq.loadImage() | |
| const wimg = widget.addImage(logoImg) | |
| wimg.imageSize = new Size(175,44) | |
| wimg.centerAlignImage() | |
| widget.addSpacer(10) | |
| row = widget.addStack() | |
| row.layoutHorizontally() | |
| row.centerAlignContent() | |
| row.size = new Size(190, 60) | |
| row.addSpacer() | |
| daysText = row.addText(calculateDays(endDate) + '') | |
| daysText.textColor = fontColor | |
| daysText.font = daysFont | |
| row.addSpacer() | |
| row2 = widget.addStack() | |
| row2.layoutHorizontally() | |
| row2.centerAlignContent() | |
| row2.size = new Size(190, 18) | |
| row2.addSpacer() | |
| dummyText = row2.addText(daysTillText) | |
| dummyText.textColor = fontColor | |
| dummyText.font = dummyFont | |
| row2.addSpacer() | |
| return widget | |
| } | |
| function calculateDays(targetDate) { | |
| let days, startDate, timeRemaining; | |
| targetDate = new Date(targetDate); | |
| startDate = new Date(); | |
| timeRemaining = parseInt((targetDate.getTime() - startDate.getTime()) / 1000); | |
| if (timeRemaining >= 0) { | |
| days = parseInt(timeRemaining / 86400); | |
| timeRemaining = (timeRemaining % 86400); | |
| return parseInt(days, 10); | |
| } else { | |
| return '???'; | |
| } | |
| } |
Author
Code für 2022 aktualisiert :(
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Alles gut. Ich nutze auch gern vordefinierte Scripts und passe mir diese an ... nur dann finde ich es fair, wenn die Person auch erwähnt wird, der die meiste Arbeit damit hatte 👍