-
-
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 | |
| } |
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.
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?