Skip to content

Instantly share code, notes, and snippets.

@LupusArgentum
Forked from Sillium/telekom.js
Last active November 7, 2020 15:04
Show Gist options
  • Save LupusArgentum/27a12aeb2db42cf1a3658f6b10ad9079 to your computer and use it in GitHub Desktop.
Save LupusArgentum/27a12aeb2db42cf1a3658f6b10ad9079 to your computer and use it in GitHub Desktop.
iOS-Widget für Datenverbrauch im Telekom-Netz (Forked from Sillium/telekom.js)
@JoeGit42
Copy link

JoeGit42 commented Oct 31, 2020

const line2 = list.addText(100 - data.usedPercentage + "%")
line2.font = Font.boldSystemFont(36)
// rough calculate remainig percentage of this month
// adjust colors according to what's needed within rest of the month
let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100
let bufferPercentage = 5
line2.textColor = Color.green()
if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) {
line2.textColor = Color.orange()
} else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) {
line2.textColor = Color.red()
}

Aus dem else if muss ein if gemacht werden, dann klappt es besser.
So sieht es inzwischen bei mir aus:
IMG_0486
IMG_0489

Ich habe noch weitere Änderungen vorgenommen:

  • Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
  • Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
  • Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.

@JoeGit42
Copy link

Zeile34: if (!data || !data.usedPercentage)
Hier sollte nicht usedPercentage genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier auf initialVolume gewechselt.

Copy link

ghost commented Nov 1, 2020

const line2 = list.addText(100 - data.usedPercentage + "%")
line2.font = Font.boldSystemFont(36)
// rough calculate remainig percentage of this month
// adjust colors according to what's needed within rest of the month
let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100
let bufferPercentage = 5
line2.textColor = Color.green()
if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) {
line2.textColor = Color.orange()
} else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) {
line2.textColor = Color.red()
}

Aus dem else if muss ein if gemacht werden, dann klappt es besser.
So sieht es inzwischen bei mir aus:
IMG_0486
IMG_0489

Ich habe noch weitere Änderungen vorgenommen:

  • Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
  • Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
  • Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.

Kannst du die geänderten Passagen hier einstellen, damit ich die Restlaufzeit in Tagen sowie die Uhrzeit der letzten ERFOLGREICHEN Aktualisierung ebenfalls einstellen kann? Aber Anzeige des verbrauchten Datenvolumens möchte ich gerne beibehalten.
Und ist der Änderung von JoeGIT42 hilfreich? Muss ich dann zusätzlich das "else if" gegen "if" eintauschen?

Vielen Dank im Voraus! :)

@LupusArgentum
Copy link
Author

Ich habe noch weitere Änderungen vorgenommen:

  • Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
  • Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
  • Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.

Kannst du die geänderten Passagen hier einstellen, damit ich die Restlaufzeit in Tagen sowie die Uhrzeit der letzten ERFOLGREICHEN Aktualisierung ebenfalls einstellen kann? Aber Anzeige des verbrauchten Datenvolumens möchte ich gerne beibehalten.
Und ist der Änderung von JoeGIT42 hilfreich? Muss ich dann zusätzlich das "else if" gegen "if" eintauschen?

Vielen Dank im Voraus! :)

Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.

@LupusArgentum
Copy link
Author

Zeile34: if (!data || !data.usedPercentage)
Hier sollte nicht usedPercentage genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier auf initialVolume gewechselt.

Die Zeile ist noch aus dem Original-Skript, darüber hatte ich mir bislang keine Gedanken gemacht. Sollte
if (!data)
nicht eigentlich ausreichen?

@JoeGit42
Copy link

JoeGit42 commented Nov 1, 2020

Zeile34: if (!data || !data.usedPercentage)
Hier sollte nicht usedPercentage genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier auf initialVolume gewechselt.

Die Zeile ist noch aus dem Original-Skript, darüber hatte ich mir bislang keine Gedanken gemacht. Sollte
if (!data)
nicht eigentlich ausreichen?

Würde ich auch sagen, allerdings weiss ich nicht, was die Zeile darüber zurückgibt, wenn aus der iCloud keine Daten gelesen werden können. Ich würde false oder null erwarten. Aber wenn es das nicht, macht die zusätzliche Abfrage eines Wertes Sinn.

@JoeGit42
Copy link

JoeGit42 commented Nov 1, 2020

Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.

Den mache ich nachher nochmal etwas schöner.
Als Issue kann ich das hier nicht eintragen, oder? Dann wäre der potentielle merge leichter.

@LupusArgentum
Copy link
Author

Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.

Den mache ich nachher nochmal etwas schöner.
Als Issue kann ich das hier nicht eintragen, oder? Dann wäre der potentielle merge leichter.

Ich habe das ganze hier mal als Repo erstellt, da kannst du deinen Issue ggf. eintragen.
Ich habe mich eben selbst daran gewagt deine Änderungen zu programmieren und merke, dass das ganze komplizierter ist als gedacht, daher freue ich mich auf deinen Input :)

@LupusArgentum
Copy link
Author

LupusArgentum commented Nov 1, 2020

Anzeige der Uhrzeit der letzten erfolgreichen (letzter Abruf von datapass.de, nicht mehr letzter Widget-Refresh) Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.

Das ist mit dem aktuellen Update umgesetzt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment