NEWS
Js-Funktion in Blockly erweitern
-
Kann ich das aus dem Skript direkt in eine Datei schreiben? Arbeite das We über nur vom Smartphone, das kackt mir da ab
-
@david-g warte mal
-
@liv-in-sky
Bei der Hilfe warte ich gerneDie Daten kommen von https://epg.best
Sind wirklich sehr umfangreich, wäre einen Adapter wert. Die meisten sind vermutlich aber nicht bereit 99ct im Monat auszugeben. -
-
-
@david-g sagte in Js-Funktion in Blockly erweitern:
@liv-in-sky
Bei der Hilfe warte ich gerneDie Daten kommen von https://epg.best
Sind wirklich sehr umfangreich, wäre einen Adapter wert. Die meisten sind vermutlich aber nicht bereit 99ct im Monat auszugeben.würde da schon darüber nachdenken, die 12€ pro jahr - mache aber keine adapter
wenn ich zeit habe, muss ich mir das mal näher ansehen - seit hoerzu die seite geändert hat, habe ich keine tv anzeige mehr
-
Manchen Usern schon. Hatte da bei dem WhatsApp Ding mal was mitbekommen. Oder jedes Jahr bei iobroker.pro.....
Die Beschreibung klappt.
Das Bild möchte aber nicht...javascript.0 2023-04-30 10:54:12.055 error at script.js.Eigene_Scripte.Tvtest:72:12 javascript.0 2023-04-30 10:54:12.055 error at processTicksAndRejections (node:internal/process/task_queues:95:5) javascript.0 2023-04-30 10:54:12.055 error at parser (script.js.Eigene_Scripte.Tvtest:32:23) javascript.0 2023-04-30 10:54:12.054 error at Array.forEach (<anonymous>) javascript.0 2023-04-30 10:54:12.054 error at script.js.Eigene_Scripte.Tvtest:42:27 javascript.0 2023-04-30 10:54:12.054 error script.js.Eigene_Scripte.Tvtest: TypeError: Cannot read properties of undefined (reading '0')
-
@david-g hast du beide varianten getestet ?
-
Jepp, grade im Moment. Hatte nur die erste gesehen.
Beide nichtGanz am Anfang des epg werden die Senderlogos definiert. Die nennen sich auch icon. Kann das daran liegen?
-
seltsam:
das ist der input
"icon": [ { "$": { "src": "https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/g187_h10_aa.jpg" } } ]
das sollte klappen
p.icon[0]['$']['src'] p.icon[0]['$'].src
ist der fehler schon in der richtigen zeile
@david-g sagte in Js-Funktion in Blockly erweitern:
Ganz am Anfang des epg werden die Senderlogos definiert. Die nennen sich auch icon. Kann das daran liegen?
glaub ich nicht - man gibt ja den pfad an
-
Möchte auch nicht klappen.
Hier mal mein komplettes Blockly (Noch 1,2 deaktivierte Sachen drinnen) und die XML mit den Daten:
-
bin dem fehler auf der spur
-
füge das mal in die function ein:
start = new Date(start[1] + '-' + start[2] + '-' + start[3] + ' ' + start[4] + ':' + start[5] + ':' + start[6] + ' UTC' + start[7]) stop = new Date(stop[1] + '-' + stop[2] + '-' + stop[3] + ' ' + stop[4] + ':' + stop[5] + ':' + stop[6] + ' UTC' + stop[7]) let myIcon; !p.hasOwnProperty("icon") ? myIcon="" : myIcon=p.icon[0]['$']['src'] uebersicht.push({ "Sender": p['$'].channel.replace('.de',''), "Start": start, "Ende": stop, "Beschreibung": p.desc[0]['_'], "Bild": myIcon, "Titel": p.title[0]['_'] }) })
zeile 3
zeile4
und zeile 10 muss bei dir rein -
Jo, das klappt.
Dank dir.Weiß noch nicht, wie die Tabelle aussehen wird.
Deshalb man zur Vorsicht ^^.
Bekommt man das Senderlogo auch raus?
Das seht ja in einem anderen "Block" (ka wie man das nennt). -
ja - da müßte man mit einer anderen schleife draufkommen und das dann speichern in einem array- dann könnte man das gaze zusammensortieren - hängt davon ab, wie man das ganze dann als tabelle rausgibt
-
Das weiß ich noch nicht
Bei der Tabelle nach Sender vermutlich nur einmal in der Überschrift. Da kann man es auch händisch einpflegen ^^.
Bei der Tabelle nach Zeit vor jeder Sendung anstatt den Sendernamen. -
so hat man ein json array für die sender und deren icons - nur so als beispiel
ab zeile 21
const uebersicht = []; let json = await parseAsync(); //fs.writeFile('/opt/iobroker/Downloads/tv.json', JSON.stringify(json), e => { }) json.tv.programme.forEach(p => { //log(JSON.stringify(p)); log(JSON.stringify(p.icon[0]['$']['src'])); let start = p['$'].start.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s(\+\d{2})/); let stop = p['$'].stop.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s(\+\d{2})/); start = new Date(start[1] + '-' + start[2] + '-' + start[3] + ' ' + start[4] + ':' + start[5] + ':' + start[6] + ' UTC' + start[7]) stop = new Date(stop[1] + '-' + stop[2] + '-' + stop[3] + ' ' + stop[4] + ':' + stop[5] + ':' + stop[6] + ' UTC' + stop[7]) let myIcon; !p.hasOwnProperty("icon") ? myIcon="" : myIcon=p.icon[0]['$']['src'] uebersicht.push({ "Sender": p['$'].channel.replace('.de',''), "Start": start, "Ende": stop, "Beschreibung": p.desc[0]['_'], "Bild": myIcon, "Titel": p.title[0]['_'] }) }) const senderIcons=[]; json.tv.channel.forEach(p => { //log(p) senderIcons.push({ "Sender": p['$'].id.replace('.de',''), "Bild": p['icon'][0]['$'].src }) log(JSON.stringify(senderIcons)) })
log:
[{"Sender":"123TV","Bild":"https://static.epg.best/de/123TV.de.png"},{"Sender":"3sat","Bild":"https://static.epg.best/de/3sat.de.png"},{"Sender":"ARD","Bild":"https://static.epg.best/de/ARD.de.png"},{"Sender":"CNN.uk","Bild":"https://static.epg.best/gb/CNN.uk.png"},{"Sender":"DisneyChannel","Bild":"https://static.epg.best/de/DisneyChannel.de.png"},{"Sender":"DMax","Bild":"https://static.epg.best/de/DMax.de.png"},{"Sender":"Euronews","Bild":"https://static.epg.best/de/Euronews.de.png"},{"Sender":"HR","Bild":"https://static.epg.best/de/HR.de.png"},{"Sender":"HSE24","Bild":"https://static.epg.best/de/HSE24.de.png"},{"Sender":"Kabel1","Bild":"https://static.epg.best/de/Kabel1.de.png"},{"Sender":"KabelEinsDoku","Bild":"https://static.epg.best/de/KabelEinsDoku.de.png"},{"Sender":"Kika","Bild":"https://static.epg.best/de/Kika.de.png"},{"Sender":"MDRSachsen","Bild":"https://static.epg.best/de/MDRSachsen.de.png"},{"Sender":"Nickelodeon","Bild":"https://static.epg.best/de/Nickelodeon.de.png"},{"Sender":"Phoenix","Bild":"https://static.epg.best/de/Phoenix.de.png"},{"Sender":"Pro7","Bild":"https://static.epg.best/de/Pro7.de.png"},{"Sender":"ProSiebenMaxx","Bild":"https://static.epg.best/de/ProSiebenMaxx.de.png"},{"Sender":"QVC","Bild":"https://static.epg.best/de/QVC.de.png"},{"Sender":"RTL","Bild":"https://static.epg.best/de/RTL.de.png"},{"Sender":"RTL2","Bild":"https://static.epg.best/de/RTL2.de.png"},{"Sender":"RTLNitro","Bild":"https://static.epg.best/de/RTLNitro.de.png"},{"Sender":"Sat1","Bild":"https://static.epg.best/de/Sat1.de.png"},{"Sender":"Sat1Gold","Bild":"https://static.epg.best/de/Sat1Gold.de.png"},{"Sender":"SuperRTL","Bild":"https://static.epg.best/de/SuperRTL.de.png"},{"Sender":"Tagesschau24","Bild":"https://static.epg.best/de/Tagesschau24.de.png"},{"Sender":"Vox","Bild":"https://static.epg.best/de/Vox.de.png"},{"Sender":"WDR","Bild":"https://static.epg.best/de/WDR.de.png"},{"Sender":"ZDF","Bild":"https://static.epg.best/de/ZDF.de.png"},{"Sender":"ZDFneo","Bild":"https://static.epg.best/de/ZDFneo.de.png"}]
-
Da kann man dann gut drauf zurückgreifen, wenn man sich das in eine Variable schreibt.
Komfortabler wäre es natürlich, wenn man es bei Beschreibung Bild etc mit reinbekommt. Aber das stelle ich mir auch schwierig vor.
-
mit dem channel bild im json
const uebersicht = []; let json = await parseAsync(); //fs.writeFile('/opt/iobroker/Downloads/tv.json', JSON.stringify(json), e => { }) json.tv.programme.forEach(p => { //log(JSON.stringify(p)); log(JSON.stringify(p.icon[0]['$']['src'])); let start = p['$'].start.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s(\+\d{2})/); let stop = p['$'].stop.match(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s(\+\d{2})/); start = new Date(start[1] + '-' + start[2] + '-' + start[3] + ' ' + start[4] + ':' + start[5] + ':' + start[6] + ' UTC' + start[7]) stop = new Date(stop[1] + '-' + stop[2] + '-' + stop[3] + ' ' + stop[4] + ':' + stop[5] + ':' + stop[6] + ' UTC' + stop[7]) let myIcon; !p.hasOwnProperty("icon") ? myIcon="" : myIcon=p.icon[0]['$']['src'] uebersicht.push({ "Sender": p['$'].channel.replace('.de',''), "Start": start, "Ende": stop, "Beschreibung": p.desc[0]['_'], "Bild": myIcon, "Titel": p.title[0]['_'], "ChannelIcon": "" }) }) const senderIcons=[]; json.tv.channel.forEach(p => { //log(p) senderIcons.push({ "Sender": p['$'].id.replace('.de',''), "Bild": p['icon'][0]['$'].src }) log(JSON.stringify(senderIcons)) }) for(let u=0;u<uebersicht.length;u++) { for (let i=0; i<senderIcons.length;i++){ if (uebersicht[u].Sender==senderIcons[i].Sender) uebersicht[u].ChannelIcon=senderIcons[i].Bild } }
dazu kommt:
zeile 19
zeile32 - 36Output:
{ "Sender": "123TV", "Start": "2023-04-28T04:00:00.000Z", "Ende": "2023-04-28T05:00:00.000Z", "Beschreibung": "Sendung.", "Bild": "https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/p14664969_i_h8_ab.jpg", "Titel": "FashionNews", "ChannelIcon": "https://static.epg.best/de/123TV.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T05:01:00.000Z", "Ende": "2023-04-28T05:30:00.000Z", "Beschreibung": "Deutschland 2023Fische umsiedeln - Wegen anhaltender Dürre und fallenden Pegelständen werden in Spanien jetzt Fische umgesiedelt.Fiebrige Seen - Der Sauerstoffgehalt in den Süßwasserseen nimmt rapide ab - um ein Vielfaches schneller als in den Ozeanen. Den Rückgang führen die Forschenden vor allem auf den Klimawandel zurück. Sie sehen die Artenvielfalt im Süßwasser und die Qualität des Trinkwassers gefährdet.Klimafreundlicher Beton - Beton trägt bis zu zehn Prozent der weltweiten CO2-Emissionen bei. In Zukunft wird der Bedarf noch mehr steigen, denn weltweit läuft ein Bau-Boom. Neuartige Betonmischungen sollen den Beton klimafreundlicher machen - unter anderem durch einen geringeren Zementanteil im Beton.Pestizide beeinträchtigen Insekten - Das Unkrautvernichtungsmittel Glyphosat halten Landwirte nach wie vor für unverzichtbar. Bienen nehmen das Gift auf und so gelangt es auch in den Honig. Aber auch den Insekten selbst schaden die Ackergifte wie Herbizide, Fungizide und Neonicotinoide. Auch wenn sie nicht direkt sterben, ist es doch schädlicher als gedacht.#gen - Die Rubrik hashtag# nimmt sich Begriffe und Gegenstände aus dem täglichen Leben vor und zeigt, was alles in ihnen steckt. Mit überraschenden Erkenntnissen.Moderation: Yve Fehring.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23538014_i_h9_ab.jpg", "Titel": "nano", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T05:30:00.000Z", "Ende": "2023-04-28T06:00:00.000Z", "Beschreibung": "\"Alpenpanorama\" zeigt über zahlreiche Web- und Panoramakameras täglich Livebilder aus ausgewählten Urlaubsorten.Die Sendung informiert auch über Temperatur- und Wetterbedingungen vor Ort.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23537981_i_h9_aa.jpg", "Titel": "Alpenpanorama", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T06:00:00.000Z", "Ende": "2023-04-28T06:08:00.000Z", "Beschreibung": "Die \"Früh-ZIB\" informiert von Montag bis Freitag über das aktuelle Geschehen aus Innen- und Außenpolitik, Wirtschaft, Wissenschaft, Kultur und Chronik.Reportagen und Hintergrundberichte vertiefen das Verständnis der aktuellen Ereignisse.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23416154_i_h9_ab.jpg", "Titel": "ZIB", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T06:08:00.000Z", "Ende": "2023-04-28T06:30:00.000Z", "Beschreibung": "\"Alpenpanorama\" zeigt über zahlreiche Web- und Panoramakameras täglich Livebilder aus ausgewählten Urlaubsorten.Die Sendung informiert auch über Temperatur- und Wetterbedingungen vor Ort.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23537981_i_h9_aa.jpg", "Titel": "Alpenpanorama", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T06:30:00.000Z", "Ende": "2023-04-28T06:33:00.000Z", "Beschreibung": "Die \"Früh-ZIB\" informiert von Montag bis Freitag über das aktuelle Geschehen aus Innen- und Außenpolitik, Wirtschaft, Wissenschaft, Kultur und Chronik.Reportagen und Hintergrundberichte vertiefen das Verständnis der aktuellen Ereignisse.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23416154_i_h9_ab.jpg", "Titel": "ZIB", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" }, { "Sender": "3sat", "Start": "2023-04-28T06:33:00.000Z", "Ende": "2023-04-28T07:00:00.000Z", "Beschreibung": "\"Alpenpanorama\" zeigt über zahlreiche Web- und Panoramakameras täglich Livebilder aus ausgewählten Urlaubsorten.Die Sendung informiert auch über Temperatur- und Wetterbedingungen vor Ort.", "Bild": "http://ngiss.t-online.de/sweetprogrammanager/media/gracenote/2/3/p23537981_i_h9_aa.jpg", "Titel": "Alpenpanorama", "ChannelIcon": "https://static.epg.best/de/3sat.de.png" },
jetzt muss ich formel 1 kucken
-
Nur zu, vielen lieben Dank.
Bist für heute meine Pole ^^