NEWS
[Gelöst] Lösung für Bilder für VIS verfügbar machen
-
Ich weiß nicht wo ich das posten soll...
Mein Problem war folgendes:
Ich habe einen Server mit Tvheadend der mir im Netzwerk die Satelliten-Programm für Kodi zur Verfügung stellt.
Dieser Server hat eine sogenannten Image-Cache indem er die Icons zu den Sendern bereitstellt.Abrufen kann man diese Icons über
http://serverip:port/imagecache/1234"
1234 steht hier für die ProgrammId und dort liegt das zugehörige PNG.
Ein Problem ist, dass der Server eine Authentifizierung braucht.
Die Lösungen die ich bisher immer gefunden habe, waren
- png per wget runterladen (dort kann die Authentifizierung mitgegeben werden)
- das file mit fs.readFile laden
- diese Daten dann mit writeFile ins Verzeichnis und die DB für vis hochladen
mit dem folgendem Skript konnte ich die Speicherung per WGET und das Einladen der Daten umgehen.
const get_pic = async (picid) => { var url_pics = 'http://serverip:port/imagecache/' + picid; const user = "USER"; const pwd = "geheimes Passwort"; try { const res = await axios.post( url_pics, "", { responseType: 'arraybuffer', contentType: 'image/png', auth: {username: user, password: pwd} } ); writeFile('vis.0', '/main/imagecache/'+ picid + '.png', res.data, function (error) { if ( error == null) console.log('file written: '+ picid + '.png'); else console.log ('error writing file: ' + error); } ); return res.status; // Status übergeben für evtl. weitere Verarbeitung } catch (err) { console.error(err); } };
Vielleicht ist das auch ein Lösungsansatz um von webcams Bilder abzuholen usw.