Revert "Update VodafoneDE.js"

This reverts commit d982b0c970.
This commit is contained in:
Chaos53925 2023-09-19 12:58:02 +02:00
parent d982b0c970
commit 8f52a70ce6

View file

@ -7,7 +7,7 @@ Version 2.3.0
Changelog:
v2.3.0:
- added Support for flat tariff like "GigaMobil M mit unbegrenzten GB", "GigaMobil XL mit unbegrenzten GB" or other flat tariffs
- Support for lockscreen widgets added
v2.2.2:
- fix const variable issue
v2.2.1:
@ -104,9 +104,11 @@ let widgetInput = null;
let user, pass, number, json, cacheUUID
if (widgetInputRAW !== null) {
const parameter = widgetInputRAW.toString().split("|")
if(parameter.length > 1) {
[user, pass, number, json] = parameter;
if (!user || !pass || !number) {
throw new Error("Invalid Widget parameter. Expected format: username|password|phonenumber")
}
@ -144,7 +146,7 @@ if (widgetInputRAW !== null) {
// Text sizes
const fontSizeData = 11
const lineNumberData = 1
const minimumScaleFactor = 0.8 //value between 1.0 and 0.1
const minimumScaleFactor = 0.8 // Value between 1.0 and 0.1
// Number of data by Size
const numberOfDisplayedDataBySize = {
@ -250,7 +252,7 @@ async function setupAssistant() {
let res, data
try {
res = await req.loadJSON()
if (!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0] || !res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']) {
if(!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0] || !res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']) {
throw new Error('invalid response: ' + JSON.stringify(res))
}
data = res['serviceUsageVBO']['usageAccounts'][0]['usageGroup']
@ -372,7 +374,7 @@ function creatProgress(total, havegone) {
return context.getImage()
}
function getDiagram(percentage, isFlat) {
function getDiagram(percentage) {
function drawArc(ctr, rad, w, deg) {
bgx = ctr.x - rad
bgy = ctr.y - rad
@ -424,15 +426,9 @@ function getDiagram(percentage, isFlat) {
)
canvas.setTextAlignedCenter()
canvas.setTextColor(textColor)
canvas.setFont(Font.boldSystemFont(108))
if (isFlat === true) {
const infinitySize = canvSize / 2;
canvas.setFont(Font.boldSystemFont(infinitySize));
const textRect = new Rect(0, infinitySize / 3, canvSize, canvSize);
canvas.drawTextInRect(``, textRect);
} else {
canvas.drawTextInRect(`${percentage}%`, canvTextRect);
}
canvas.setFont(Font.boldSystemFont(canvTextSize))
canvas.drawTextInRect(`${percentage}%`, canvTextRect)
return canvas.getImage()
}
@ -452,6 +448,20 @@ function getTimeRemaining(endtime) {
}
}
function getTotalValues(v) {
let totalValues;
if (v.unitOfMeasure !== 'MB') {
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure} von ${v.total} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure}`
} else if (parseInt(v.total) < 1000) {
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} MB von ${v.total} MB`
} else {
let GB = ((showRemainingContingent ? v.remaining : v.used) / 1024).toFixed(2)
let totalGB = (v.total / 1024).toFixed(2)
totalValues = `${GB} GB von ${totalGB} GB`
}
return totalValues
}
async function getSessionCookiesViaNetworkLogin() {
let req;
req = new Request("https://www.vodafone.de/mint/rest/session/start")
@ -526,11 +536,11 @@ async function getUsage(user, pass, number) {
}
try {
let res = await req.loadJSON()
if (!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0]) {
if(!res['serviceUsageVBO'] || !res['serviceUsageVBO']['usageAccounts'] || !res['serviceUsageVBO']['usageAccounts'][0]) {
if (debug) {
console.log(JSON.stringify(res, null, 2))
}
throw new Error("Invalid Response")
}
console.log("unbilled-usage loaded")
if (debug) {
@ -645,15 +655,38 @@ try {
}
}
const lockscreenWidget = config.widgetFamily.includes('accessory')
// Create Widget
let widget = new ListWidget();
if(!lockscreenWidget) {
widget.setPadding(10, 10, 10, 10)
}
if (data !== undefined) {
if(debug) {
console.log(JSON.stringify(data, null, 2))
}
if(lockscreenWidget) {
let stack = widget.addStack()
stack.layoutHorizontally()
let v = data.usage[0]
if(config.widgetFamily !== "accessoryInline") {
const percentage = (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
stack.addImage(getDiagram(percentage));
}
if(config.widgetFamily === "accessoryRectangular"){
stack.addSpacer(5)
}
if(config.widgetFamily !== "accessoryCircular"){
const totalValues = getTotalValues(v)
stack.centerAlignContent()
stack.addText(totalValues)
}
} else {
const gradient = new LinearGradient()
gradient.locations = [0, 1]
gradient.colors = [
@ -699,37 +732,17 @@ if (data !== undefined) {
column = row.addStack()
column.layoutVertically()
column.centerAlignContent()
const percentage = v.total > 100000000 ? 100 : (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
const isFlat = v.total >= 100000000
const percentage = (100 / v.total * (showRemainingContingent ? v.remaining : v.used)).toFixed(0);
const imageStack = column.addStack()
imageStack.layoutHorizontally()
imageStack.addSpacer()
imageStack.addImage(getDiagram(percentage, isFlat));
imageStack.addImage(getDiagram(percentage));
imageStack.addSpacer()
column.addSpacer(2)
// Total Values
let totalValues;
if (v.unitOfMeasure !== 'MB') {
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure} von ${v.total} ${descriptionMapping[v.unitOfMeasure] !== undefined ? descriptionMapping[v.unitOfMeasure] : v.unitOfMeasure}`
} else if (parseInt(v.total) < 1000) {
totalValues = `${(showRemainingContingent ? v.remaining : v.used)} MB von ${v.total} MB`
} else if (parseInt(v.total) >= 100000000) {
if (showRemainingContingent === true) {
totalValues = `Flat`
} else {
if (v.used <= 1024) {
totalValues = `${v.used} MB verbraucht.`
} else {
let usedGB = (v.used / 1024).toFixed(2)
totalValues = `${usedGB} GB verbraucht.`
}
}
} else {
let GB = ((showRemainingContingent ? v.remaining : v.used) / 1024).toFixed(2)
let totalGB = (v.total / 1024).toFixed(2)
totalValues = `${GB} GB von ${totalGB} GB`
}
let totalValues = getTotalValues(v)
textStack = column.addStack()
textStack.layoutHorizontally()
textStack.addSpacer()
@ -779,7 +792,7 @@ if (data !== undefined) {
remainingDaysText.centerAlignText()
remainingDaysText.textColor = textColor
}
}
} else {
let fallbackText = widget.addText("Es ist ein Fehler aufgetreten! Bitte prüfen Sie die Logs direkt in der App.")
fallbackText.font = Font.mediumSystemFont(12)
@ -791,6 +804,9 @@ if (!config.runsInWidget) {
case 'small': await widget.presentSmall(); break;
case 'medium': await widget.presentMedium(); break;
case 'large': await widget.presentLarge(); break;
case 'accessoryRectangular': await widget.presentAccessoryRectangular(); break;
case 'accessoryCircular': await widget.presentAccessoryCircular(); break;
case 'accessoryInline': await widget.presentAccessoryInline(); break;
}
} else {