Ecosia Widget

Signed-off-by: Benny Samir Hierl <bennysamir@posteo.de>
This commit is contained in:
Benny Samir Hierl 2020-10-30 20:08:36 +01:00
parent a1f4d70eab
commit 6f5bff8165
No known key found for this signature in database
GPG key ID: 69DE3C3C097DB7F7
6 changed files with 93 additions and 0 deletions

77
Ecosia/Ecosia.js Normal file
View file

@ -0,0 +1,77 @@
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: brown; icon-glyph: magic;
// Version 1.0.0
let widgetInputRAW = args.widgetParameter;
let token;
if (widgetInputRAW !== null) {
token = widgetInputRAW.toString();
} else {
throw new Error('No token set via widget parameter! You can request a token here: https://www.ecosia.org/account/login')
}
////////////////////////////////////////////////////////////////////////////////
async function getTreeCounter(token) {
let req = new Request("https://api.ecosia.org/v1/accounts/personalcounter?token=" + token)
let res = await req.loadJSON()
return parseInt(res.counterValue)
}
async function getLogo() {
let fm = FileManager.local()
const pathLogo = fm.joinPath(fm.temporaryDirectory(), 'ecosiaLogo')
if (fm.fileExists(pathLogo)) {
return fm.readImage(pathLogo)
} else {
try {
let req = new Request('https://uc948e7ad6c396973f81d540ee4f.dl.dropboxusercontent.com/cd/0/get/BCSgEaIvDEkR-T7KEmiGl3_qHREwC9xuXRJpUM61i27BB3_qczSDa8yH6wlK5CoRtSKikI6G-iGN7AdM-xRpFO9g5ahznpU7kfJVEy7SGvR2Gw/file?_download_id=9234590427327855751170888564094591338853848773569417305635998585&_notify_domain=www.dropbox.com&dl=1')
let logo = await req.loadImage()
fm.writeImage(pathLogo, logo)
return logo
} catch (e) {
console.error(e)
return null
}
}
}
let treeCounter = await getTreeCounter(token);
let ecosiaLogo = await getLogo()
// Create Widget
let widget = new ListWidget();
widget.url = 'https://ecosia.org/'
widget.setPadding(10, 10, 10, 10)
if (ecosiaLogo !== null) {
let titleLogo = widget.addImage(ecosiaLogo)
titleLogo.imageSize = new Size(50, 50)
titleLogo.rightAlignImage()
if (config.widgetFamily === 'large') {
widget.addSpacer()
} else {
widget.addSpacer(5)
}
} else {
let title = widget.addText("Ecosia")
title.font = Font.mediumSystemFont(12)
widget.addSpacer()
}
let counterText = widget.addText(`${treeCounter.toLocaleString(Device.locale().replace('_', '-'))} 🌳`)
counterText.font = Font.regularSystemFont(36)
counterText.minimumScaleFactor = 0.7;
counterText.lineLimit = 1
counterText.centerAlignText()
widget.addSpacer()
if (!config.runsInWidget) {
await widget.presentSmall()
} else {
// Tell the system to show the widget.
Script.setWidget(widget)
Script.complete()
}

16
Ecosia/README.md Normal file
View file

@ -0,0 +1,16 @@
# Ecosia Tree Counter
![Ecosia Widget Preview light](https://raw.githubusercontent.com/ThisIsBenny/iOS-Widgets/main/Ecosia/previewLight.jpeg)
![Ecosia Widget Preview dark](https://raw.githubusercontent.com/ThisIsBenny/iOS-Widgets/main/Ecosia/previewDark.jpeg)
This widget allows you to save the location of your car, which will then displayed in the widget as a map. So you know exactly where you parked.
If you don't know the way to the car anymore, you can start the navigation to the car's location with one click and let Apple Maps or Google Maps navigate you.
[[Download]](https://raw.githubusercontent.com/ThisIsBenny/iOS-Widgets/main/Ecosia/Ecosia.js)
## Setup
For this widget is a ecosia account required. Go to https://www.ecosia.org/account/login and enter your E-Mail address. You will recieve a E-Mail with a link.
Use this Link on all your devices where you use Ecosia to connect all Devices to one counter (you can request the Mail multiple time, import is that the E-Mail address is always the same).
After this, you have to copy the token from the Link in the E-Mail and paste the token to the widget parameter
![Get Token](https://raw.githubusercontent.com/ThisIsBenny/iOS-Widgets/main/Ecosia/token.jpeg)
![Setup](https://raw.githubusercontent.com/ThisIsBenny/iOS-Widgets/main/Ecosia/setup.jpeg)

BIN
Ecosia/previewDark.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
Ecosia/previewLight.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
Ecosia/setup.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
Ecosia/token.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB