NEWS
Js-Funktion in Blockly erweitern
-
Das ist jetzt mitten raus. Am Anfang kommen noch andere Dinge (wenn das reicht) .
Das ist riesig was raus kommt (muss die sendenich reduzieren...)https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/p15110568_i_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501090000 +0200","stop":"20230501100000 +0200","channel":"123TV.de"},"title":[{"_":"By Stefano Ghilardi","$":{"lang":"de"}}],"desc":[{"_":"Eine Shoppingsendung.","$":{"lang":"de"}}],"category":[{"_":"Einkauf","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/g187_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501100000 +0200","stop":"20230501110000 +0200","channel":"123TV.de"},"title":[{"_":"By Stefano Ghilardi","$":{"lang":"de"}}],"desc":[{"_":"Eine Shoppingsendung.","$":{"lang":"de"}}],"category":[{"_":"Einkauf","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/g187_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501110000 +0200","stop":"20230501120000 +0200","channel":"123TV.de"},"title":[{"_":"Eau de Paris","$":{"lang":"de"}}],"desc":[{"_":"In dieser Shopping-Sendung werden Beauty-Produkte vorgestellt und zum Kauf angeboten.","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/p14664966_i_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501120000 +0200","stop":"20230501130000 +0200","channel":"123TV.de"},"title":[{"_":"gastro Garten","$":{"lang":"de"}}],"desc":[{"_":"Eine Verkaufssendung.","$":{"lang":"de"}}],"category":[{"_":"Einkauf","$":{"lang":"de"}},{"_":"Natur","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/g187_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501130000 +0200","stop":"20230501140000 +0200","channel":"123TV.de"},"title":[{"_":"gastro Garten","$":{"lang":"de"}}],"desc":[{"_":"Eine Verkaufssendung.","$":{"lang":"de"}}],"category":[{"_":"Einkauf","$":{"lang":"de"}},{"_":"Natur","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/g187_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501140000 +0200","stop":"20230501150000 +0200","channel":"123TV.de"},"title":[{"_":"Eau de Paris","$":{"lang":"de"}}],"desc":[{"_":"In dieser Shopping-Sendung werden Beauty-Produkte vorgestellt und zum Kauf angeboten.","$":{"lang":"de"}}],"icon":[{"$":{"src":"https://staticqbr-at-prod.prod.cdn.dmdsdp.com/image-service/ImagesEPG/EventImages/p14664966_i_h10_aa.jpg"}}],"country":[{"_":"DE","$":{"lang":"de"}}]},{"$":{"start":"20230501150000 +0200","stop":"20230501160000 +0200","channel":"123TV.de"},"title":[{"_":"Bistro - Frühstück für Genießer"
icon und desc wäre cool.
-
lass mal - habe eine datei gefunden
-
sorry - poste die datei doch mal - egal wie lange - poste es als ganze datei - nicht in code tags
-
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"}]