-
-
Save Sillium/313164aec3d835c076ebfcd330f1be14 to your computer and use it in GitHub Desktop.
// Variables used by Scriptable. | |
// These must be at the very top of the file. Do not edit. | |
// icon-color: pink; icon-glyph: exchange-alt; | |
const DEBUG = false | |
const log = DEBUG ? console.log.bind(console) : function () { }; | |
// configure the library | |
const libraryInfo = { | |
name: 'TelekomDataUsageLibrary', | |
version: '1.0.3', | |
gitlabProject: 'https://gitlab.com/sillium-scriptable-projects/universal-scriptable-widget-libraries', | |
forceDownload: DEBUG | |
} | |
// download and import library | |
let library = importModule(await downloadLibrary(libraryInfo)) | |
// create the widget | |
const params = { | |
widgetParameter: args.widgetParameter, | |
debug: DEBUG | |
} | |
const widget = await library.createWidget(params) | |
// preview the widget | |
if (!config.runsInWidget) { | |
await widget.presentSmall() | |
} | |
Script.setWidget(widget) | |
Script.complete() | |
/** | |
* - creates directory for library if not existing | |
* - downloads library file if not existing or forced | |
* - returns relative path to library module | |
* @param {{name: string, version: string, gitlabProject: string, forceDownload: bool}} library | |
*/ | |
async function downloadLibrary(library) { | |
let fm = FileManager.local() | |
let scriptPath = module.filename | |
let libraryDir = scriptPath.replace(fm.fileName(scriptPath, true), fm.fileName(scriptPath, false)) | |
if (fm.fileExists(libraryDir) && !fm.isDirectory(libraryDir)) { | |
fm.remove(libraryDir) | |
} | |
if (!fm.fileExists(libraryDir)) { | |
fm.createDirectory(libraryDir) | |
} | |
let libraryFilename = library.name + '_' + library.version + '.js' | |
let path = fm.joinPath(libraryDir, libraryFilename) | |
let forceDownload = (library.forceDownload) ? library.forceDownload : false | |
if (fm.fileExists(path) && !forceDownload) { | |
log("Not downloading library file") | |
} else { | |
let r = Math.random().toString(36).substring(7); | |
let libraryUrl = library.gitlabProject + '/-/raw/' + library.version + '/' + library.name + '.js?random=' + r | |
log("Downloading library file '" + libraryUrl + "' to '" + path + "'") | |
const req = new Request(libraryUrl) | |
let libraryFile = await req.load() | |
fm.write(path, libraryFile) | |
} | |
return fm.fileName(scriptPath, false) + '/' + libraryFilename | |
} |
Sorry- aber jetzt habe ich es auch kapiert... Vielen vielen Dank für die Mühen...
Sorry- aber jetzt habe ich es auch kapiert... Vielen vielen Dank für die Mühen...
👍
Am besten in Zeile 7 (jetzt tatsächlich im Code) mal die Version ändern von 1.0.2
auf 1.0.3
.
Was ändert sich durch die Änderung der Version wenn ich das editiere?
In 1.0.2 war evtl. ein Fehler drin, der dafür sorgt, dass immer 0,94 GB angezeigt wird bei "verfügbar"/"verbraucht". Wenn bei Dir alle Zahlen stimmen, brauchst Du nichts ändern.
Bei mir steht jetzt API offline? Ist das schlimm? Und wenn der Monat vorbei ist. Geht es dann wieder im Dezember oder ist da ein Fehler?
Wenn du dich im WLAN befindest ist das Normal. Da im WLAN nicht der Datenverbrauch der SIM-Karte abgerufen werden kann. Solange du dich im WLAN befindest, werden die Werte aus dem Cache gezeigt.
Viele Grüße
Was noch cool wäre: Wenn das Widget mit unlimited Daten umgehen könnte. Im Inland hab ich ne Datenflat, so dass das Widget eigentlich nicht interessant ist, aber im Ausland (54GB) schon. Es wäre schön, wenn dann im Inland anstelle von NaN etwas sinnvolles stehen würde
Vielen Dank dafür!
Machst du es Design- und Logo-Technisch noch für Klarmobil.de? 🤩
Gucke ich mir bei Gelegenheit an, ja
Erstmal vielen Dank für die tolle Arbeit. Leider aktualisiert sich das Widget nicht selbstständig im Mobilfunknetz. Hab für 15 min WLAN abgeschaltet aber das Widget bleibt ausgegraut. Hast du eine Idee voran es liegen könnte?
Wenn du dich im WLAN befindest ist das Normal. Da im WLAN nicht der Datenverbrauch der SIM-Karte abgerufen werden kann. Solange du dich im WLAN befindest, werden die Werte aus dem Cache gezeigt.
Viele Grüße
Aber das Congstar eigene Widget zeigt den aktuellen Verbrauch auch im WLAN an. Kann man da nicht irgendwo die Daten abgreifen?
Hallo zusammen
Erstmal Danke für das tolle widget Beschreibungen und Erklärungen. Kann jemand vielleicht das gleiche widget für Minuten statt datenvolumen einrichten zB für auslands telefonate
Vieleb dank im Voraus
Hallo,
vielen Dank für das geniale Widget.
Woher bzw. wie wird das Telekom-Logo erzeugt?
Gruß
Erhalte Fehlermeldung
Diese Fehlermeldung hatte ich seit gestern auch. Ich habe dann den Ordner "TelekomDataUsage" im iCloud Drive gelöscht und das Widget in Scriptable noch mal neu ausgeführt. Seitdem ist alles wieder in Ordnung.
Erhalte Fehlermeldung
Diese Fehlermeldung hatte ich seit gestern auch. Ich habe dann den Ordner "TelekomDataUsage" im iCloud Drive gelöscht und das Widget in Scriptable noch mal neu ausgeführt. Seitdem ist alles wieder in Ordnung.
Danke, das hat geholfen.
Erhalte Fehlermeldung
Diese Fehlermeldung hatte ich seit gestern auch. Ich habe dann den Ordner "TelekomDataUsage" im iCloud Drive gelöscht und das Widget in Scriptable noch mal neu ausgeführt. Seitdem ist alles wieder in Ordnung.
Danke, das hat geholfen.
Hilft bei mir leider nur kurzfristig…
Scheint irgendwas anderes fehlerhaft zu sein :-/
Seit ein paar Tagen bekomme ich folgende Meldung:
2022-06-23 09:05:39: Error on line 16:27: No file to import at Telekom/TelekomDataUsageLibrary_1.0.3.
Was kann ich tun?
Ich habe nicht wirklich Zeit, mich drum zu kümmern, aber beim Fehler "Error on line 16:27: No file to import at Telekom/TelekomDataUsageLibrary_1.0.3." probiert mal bitte, die Zeile 12 zu ändern von forceDownload: DEBUG
nach forceDownload: true
.
das klappt leider auch nicht
2022-06-26 16:18:05: telekom.png is stored in iCloud but the file have not been downloaded. Use downloadFileFromiCloud(filePath) on a FileManager to download the file before accessing it.
2022-06-26 16:18:05: Error on line 191:44: Expected value of type Image but got value of type null.
Ich habe nicht wirklich Zeit, aber hier ist eine neue Version, die ein paar Fehler beheben sollte: https://gist.github.com/Sillium/235dc9fd873b25e321b3299da64c9c38
Bitte unbedingt einmal den Folder iCloud Drive --> Scriptable --> löschen, oder wie auch immer ihr das Script bei euch genannt habt.
Ich weiss nicht wo dieses:
Enter parameter in this format: language;whatToShow;look
language: de or en
whatToShow: used or available
look: telekom, congstar, fraenk, black, gray or white
Examples: de;used;telekom or en;available;gray
Hier eingesetzt werden kann:
**_// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: pink; icon-glyph: exchange-alt;
const DEBUG = false
const log = DEBUG ? console.log.bind(console) : function () { };
// configure the library
const libraryInfo = {
name: 'TelekomDataUsageLibrary',
version: '1.0.2',
gitlabProject: 'https://gitlab.com/sillium-scriptable-projects/universal-scriptable-widget-libraries',
forceDownload: DEBUG
}
// download and import library
let library = importModule(await downloadLibrary(libraryInfo))
// create the widget
const params = {
widgetParameter: args.widgetParameter,
debug: DEBUG
}
const widget = await library.createWidget(params)
// preview the widget
if (!config.runsInWidget) {
await widget.presentSmall()
}
Script.setWidget(widget)
Script.complete()
/**
@param {{name: string, version: string, gitlabProject: string, forceDownload: bool}} library
*/
async function downloadLibrary(library) {
let fm = FileManager.local()
let scriptPath = module.filename
let libraryDir = scriptPath.replace(fm.fileName(scriptPath, true), fm.fileName(scriptPath, false))
if (fm.fileExists(libraryDir) && !fm.isDirectory(libraryDir)) {
fm.remove(libraryDir)
}
if (!fm.fileExists(libraryDir)) {
fm.createDirectory(libraryDir)
}
let libraryFilename = library.name + '_' + library.version + '.js'
let path = fm.joinPath(libraryDir, libraryFilename)
let forceDownload = (library.forceDownload) ? library.forceDownload : false
if (fm.fileExists(path) && !forceDownload) {
log("Not downloading library file")
} else {
let r = Math.random().toString(36).substring(7);
let libraryUrl = library.gitlabProject + '/-/raw/' + library.version + '/' + library.name + '.js?random=' + r
log("Downloading library file '" + libraryUrl + "' to '" + path + "'")
const req = new Request(libraryUrl)
let libraryFile = await req.load()
fm.write(path, libraryFile)
}
return fm.fileName(scriptPath, false) + '/' + libraryFilename
}_**