// ################################################
// Formel1 Rennergebnisse v1.02
// by stenmic
// ################################################
var Farbe_fuer_Ausgefallen, Fahrer, Farbe_fuer_Fahrer, Team, Farbe_fuer_Team, Farbe_Fast_Lap, Farbe_Pfeil_UP, Farbe_Pfeil_Down, Blocker_api, X, Anzahl_Fahrer, Rennen, Position, Aenderung, Start, Zeit, spanINFahrer, spanOUTFahrer, spanINTeam, spanOUTTeam, Aenderung2, spanINFastLap, spanOUTFastLap, Punkte, VIS;
// ################################################
Farbe_fuer_Ausgefallen = '#e55a52';
Fahrer = 'Nico Hülkenberg';
Farbe_fuer_Fahrer = '#3bb273';
Team = 'Haas F1 Team';
Farbe_fuer_Team = '#26b1e6';
Farbe_Fast_Lap = '#DA5EBA';
Farbe_Pfeil_UP = '#3bb273';
Farbe_Pfeil_Down = '#e55a52';
// ################################################
on({ id: '0_userdata.0.Formel1.Rennergebnisse.Rennen_zurueck' /* Rennen_zurueck */, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (1 < getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val - 1), true);
}
});
on({ id: '0_userdata.0.Formel1.Rennergebnisse.Rennen_vor' /* Rennen_vor */, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val + 1), true);
});
on({ id: '0_userdata.0.Formel1.Rennergebnisse.Rennen_aktuell' /* Rennen_aktuell */, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val == 0) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, 30, true);
} else {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_gefahren').val, true);
}
});
schedule('{"time":{"exactTime":true,"start":"00:31"},"period":{"days":1}}', async () => {
httpGet((['https://api.jolpi.ca/ergast/f1/',formatDate(new Date(), 'JJJJ'),'/1/results/'].join('')), { timeout: 10000, responseType: 'text' }, async (err, response) => {
if ((getAttr(response.data, 'MRData.RaceTable.Races.0.season') != null) && (response.statusCode == 200)) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Jahr' /* Rennen_Jahr */, parseFloat(formatDate(new Date(), 'JJJJ')), true);
}
});
});
Blocker_api = false;
on({ id: '0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
if (Blocker_api == false) {
Blocker_api = true;
httpGet((['https://api.jolpi.ca/ergast/f1/',getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Jahr').val,'/',(obj.state ? obj.state.val : ''),'/results/'].join('')), { timeout: 10000, responseType: 'text' }, async (err, response) => {
if ((getAttr(response.data, 'MRData.RaceTable.Races.0.season') != null) && (response.statusCode == 200)) {
setState('0_userdata.0.Formel1.Rennergebnisse.json' /* json */, response.data, true);
if ((obj.state ? obj.state.val : '') > getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_gefahren').val) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_gefahren' /* Rennen_gefahren */, (obj.state ? obj.state.val : ''), true);
}
await wait(500);
Blocker_api = false;
} else {
await wait(500);
if (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val > 1) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr' /* Rennen_Nr */, (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val - 1), true);
}
Blocker_api = false;
}
});
}
});
schedule("2,17,32,47 4-23 * * 0,6", async () => {
httpGet((['https://api.jolpi.ca/ergast/f1/',getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Jahr').val,'/driverstandings/'].join('')), { timeout: 10000, responseType: 'text' }, async (err, response) => {
if (response.statusCode == 200) {
setState('0_userdata.0.Formel1.Rennergebnisse.Rennen_gefahren' /* Rennen_gefahren */, parseFloat(getAttr(response.data, 'MRData.StandingsTable.round')), true);
}
});
});
on({ id: '0_userdata.0.Formel1.Rennergebnisse.json' /* json */, change: 'any' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
X = 0;
if (getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val == getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_gefahren').val) {
setState('0_userdata.0.Formel1.Rennergebnisse.Ueberschrift_VIS' /* Ueberschrift_VIS */, (['••• Rennen ',getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val,' von ',getState('0_userdata.0.Formel1.Kalender.Anzahl_Rennen_Aktuelles_Jahr').val,' • ',getAttr((obj.state ? obj.state.val : ''), 'MRData.RaceTable.Races.0.raceName'),' • ',formatDate(getDateObject(getAttr((obj.state ? obj.state.val : ''), 'MRData.RaceTable.Races.0.date')), 'T.M.JJ'),' •••'].join('')), true);
} else {
setState('0_userdata.0.Formel1.Rennergebnisse.Ueberschrift_VIS' /* Ueberschrift_VIS */, (['Rennen ',getState('0_userdata.0.Formel1.Rennergebnisse.Rennen_Nr').val,' von ',getState('0_userdata.0.Formel1.Kalender.Anzahl_Rennen_Aktuelles_Jahr').val,' • ',getAttr((obj.state ? obj.state.val : ''), 'MRData.RaceTable.Races.0.raceName'),' • ',formatDate(getDateObject(getAttr((obj.state ? obj.state.val : ''), 'MRData.RaceTable.Races.0.date')), 'T.M.JJ')].join('')), true);
}
while (!(getAttr((obj.state ? obj.state.val : ''), ('MRData.RaceTable.Races.0.Results.' + String(X))) == null)) {
Anzahl_Fahrer = X + 1;
X = (typeof X === 'number' ? X : 0) + 1;
}
X = 0;
Rennen = [];
while (!(getAttr((obj.state ? obj.state.val : ''), ('MRData.RaceTable.Races.0.Results.' + String(X))) == null)) {
Position = getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.position'].join('')));
Aenderung = getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.grid'].join(''))) - getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.position'].join('')));
if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.grid'].join(''))) != 0) {
Start = getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.grid'].join('')));
} else {
Start = 'Box';
Aenderung = Anzahl_Fahrer - getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.position'].join('')));
}
if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == 'Finished') {
Zeit = getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Time.time'].join('')));
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+1 Lap') {
Zeit = '+1 Runde';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+2 Laps') {
Zeit = '+2 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+3 Laps') {
Zeit = '+3 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+4 Laps') {
Zeit = '+4 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+5 Laps') {
Zeit = '+5 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+6 Laps') {
Zeit = '+6 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+7 Laps') {
Zeit = '+7 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+8 Laps') {
Zeit = '+8 Runden';
} else if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.status'].join(''))) == '+9 Laps') {
Zeit = '+9 Runden';
} else {
Zeit = ['<span style="color:',Farbe_fuer_Ausgefallen,';">Ausfall</span>'].join('');
Position = '';
Aenderung = 'Ausfall';
}
if ([getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Driver.givenName'].join(''))),' ',getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Driver.familyName'].join('')))].join('') == Fahrer) {
spanINFahrer = ['<span style="color:',Farbe_fuer_Fahrer,';">'].join('');
spanOUTFahrer = '</span>';
} else {
spanINFahrer = '';
spanOUTFahrer = '';
}
if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Constructor.name'].join(''))) == Team) {
spanINTeam = ['<span style="color:',Farbe_fuer_Team,';">'].join('');
spanOUTTeam = '</span>';
} else {
spanINTeam = '';
spanOUTTeam = '';
}
if (Aenderung == 'Ausfall') {
Aenderung2 = '';
} else if (Aenderung == 0) {
Aenderung2 = '=';
} else if (Aenderung > 0) {
Aenderung2 = [Aenderung,'<span style="color:',Farbe_Pfeil_UP,';"> ↑</span>'].join('');
} else if (Aenderung < 0) {
Aenderung2 = [Aenderung,'<span style="color:',Farbe_Pfeil_Down,';"> ↓</span>'].join('');
}
if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.FastestLap.rank'].join(''))) == 1) {
spanINFastLap = ['<span style="color:',Farbe_Fast_Lap,';">'].join('');
spanOUTFastLap = '</span>';
} else {
spanINFastLap = '';
spanOUTFastLap = '';
}
if (getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.points'].join(''))) != 0) {
Punkte = getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.points'].join('')));
} else {
Punkte = '';
}
VIS = { 'Position': Position, 'Change': Aenderung2, 'Fahrer': [spanINFahrer,getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Driver.givenName'].join(''))),' ',getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Driver.familyName'].join(''))),spanOUTFahrer].join(''), 'Team': [spanINTeam,getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.Constructor.name'].join(''))),spanOUTTeam].join(''), 'Grid': Start, 'Runden': getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.laps'].join(''))), 'Zeit': Zeit, 'Punkte': Punkte, 'Fast Lap': [spanINFastLap,getAttr((obj.state ? obj.state.val : ''), (['MRData.RaceTable.Races.0.Results.',X,'.FastestLap.Time.time'].join(''))),spanOUTFastLap].join('') };
Rennen.push(VIS);
X = (typeof X === 'number' ? X : 0) + 1;
}
setState('0_userdata.0.Formel1.Rennergebnisse.VIS_json' /* VIS_json */, JSON.stringify(Rennen), true);
});