| ... |
... |
@@ -1,7 +1,9 @@ |
| 1 |
|
-Page secondaire //news//, définie dans ##news.yml##. Elle regroupe des informations qui changent en continu : capteurs du Pico W, image astronomique du jour, flux RSS, vols d'un aéroport, actualités, cours et portefeuilles de cryptomonnaies. Configuration commune et déploiement : [[Dashy>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]. |
|
1 |
+Page //news// : capteurs du Pico W, image astronomique du jour, flux RSS, vols à Roissy, actualités, crypto-monnaies. Déploiement et configuration commune : [[Dashy>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Dashy.WebHome]]. |
| 2 |
2 |
|
| 3 |
|
-== En-tête et navigation == |
|
3 |
+{{toc/}} |
| 4 |
4 |
|
|
5 |
+== pageInfo == |
|
6 |
+ |
| 5 |
5 |
{{code language="yaml"}} |
| 6 |
6 |
pageInfo: |
| 7 |
7 |
title: News |
| ... |
... |
@@ -9,6 +9,11 @@ |
| 9 |
9 |
navLinks: |
| 10 |
10 |
- title: Home |
| 11 |
11 |
path: / |
|
14 |
+{{/code}} |
|
15 |
+ |
|
16 |
+== pages == |
|
17 |
+ |
|
18 |
+{{code language="yaml"}} |
| 12 |
12 |
pages: |
| 13 |
13 |
- name: bookmarks |
| 14 |
14 |
path: bookmark.yml |
| ... |
... |
@@ -18,40 +18,36 @@ |
| 18 |
18 |
path: news.yml |
| 19 |
19 |
{{/code}} |
| 20 |
20 |
|
| 21 |
|
-== Sections == |
|
28 |
+== Widgets == |
| 22 |
22 |
|
| 23 |
|
-|=Section|=Icône|=Items|=Widgets|=Affichage |
| 24 |
|
-|IoT — Pico W|##hl-raspberry-pi##|Pico W|##embed##|##rows: 2## |
| 25 |
|
-|NASA|##hl-nasa##|—|##apod##|— |
| 26 |
|
-|Debian CVE|##hl-debian-linux##|—|##rss-feed##|— |
| 27 |
|
-|Aeroport|##hl-flightaware##|—|##flight-data##|— |
| 28 |
|
-|News|##fad fa-newspaper##|—|##rss-feed##|repliée (##collapsed: true##) |
| 29 |
|
-|Medias|##hl-youtube##|—|##news-headlines##|repliée (##collapsed: true##) |
| 30 |
|
-|Crypto market|##hl-bitcoin##|—|##crypto-watch-list##|— |
| 31 |
|
-|Binance Wallets|##hl-gollum##|—|##wallet-balance##|##rows: 2##, ##cols: 2## |
| 32 |
|
-|Uphold Wallets|favicon distant (URL complète)|—|##wallet-balance##|##rows: 2##, ##cols: 2## |
|
30 |
+|=Widget|=Section|=Affiche|=Identifiants |
|
31 |
+|##embed##|IoT — Pico W|Température, humidité, pression et altitude du Pico W|— |
|
32 |
+|##apod##|NASA|Image astronomique du jour de la NASA|— |
|
33 |
+|##rss-feed##|Debian CVE, News|Derniers articles d'un flux RSS|— |
|
34 |
+|##flight-data##|Aeroport|Départs et arrivées d'un aéroport|Clé RapidAPI |
|
35 |
+|##news-headlines##|Medias|Titres d'actualité par pays et langue|Clé Currents API |
|
36 |
+|##crypto-watch-list##|Crypto market|Cours CoinGecko des monnaies listées|— |
|
37 |
+|##wallet-balance##|Binance Wallets, Uphold Wallets|Solde et transactions d'une adresse Ethereum|— |
| 33 |
33 |
|
| 34 |
|
-Les sections Debian CVE et Aeroport portent ##useProxy: true## au niveau de la section : Dashy ne le lit pas à cet endroit, leurs widgets appellent donc leur API directement depuis le navigateur. |
|
39 |
+== Sections == |
| 35 |
35 |
|
| 36 |
|
-== Item == |
|
41 |
+=== IoT — Pico W === |
| 37 |
37 |
|
| 38 |
38 |
{{code language="yaml"}} |
|
44 |
+sections: |
|
45 |
+ - name: IoT — Pico W |
|
46 |
+ icon: hl-raspberry-pi |
|
47 |
+ displayData: |
|
48 |
+ cols: 1 |
|
49 |
+ rows: 2 |
|
50 |
+ items: |
| 39 |
39 |
- title: Pico W |
| 40 |
40 |
description: Interface Web LED + État |
| 41 |
41 |
icon: hl-raspberry-pi |
| 42 |
42 |
url: http://<IP_PICO> |
| 43 |
43 |
statusCheck: true |
| 44 |
|
-{{/code}} |
| 45 |
|
- |
| 46 |
|
-La vérification d'état est faite par le serveur de Dashy, qui doit pouvoir joindre ##<IP_PICO>## depuis le conteneur. Le lien ne fonctionne que depuis le LAN ; l'interface du Pico est aussi relayée par SWAG sous ##/pico/## sur le domaine de Dashy, derrière Authelia. |
| 47 |
|
- |
| 48 |
|
-== Widgets == |
| 49 |
|
- |
| 50 |
|
-=== embed (capteurs du Pico W) === |
| 51 |
|
- |
| 52 |
|
-Widget HTML libre : Dashy injecte le HTML, le CSS et le script fournis. Ici, le script lit toutes les 30 secondes l'API JSON du Pico W (température, humidité, pression, altitude) et affiche quatre cartes. |
| 53 |
|
- |
| 54 |
|
-{{code language="yaml"}} |
|
56 |
+ id: 0_268_picow |
|
57 |
+ widgets: |
| 55 |
55 |
- type: embed |
| 56 |
56 |
options: |
| 57 |
57 |
html: | |
| ... |
... |
@@ -95,7 +95,7 @@ |
| 95 |
95 |
'<div class="pico-value">' + d.altitude.toFixed(1) + ' m</div>' + |
| 96 |
96 |
'<div class="pico-label">Altitude</div></div>' + |
| 97 |
97 |
'</div>' + |
| 98 |
|
- '<div class="pico-footer">Mis à jour à ' + now + '</div>'; |
|
101 |
+ '<div class="pico-footer">Mis à jour à ' + now + ' · Pico W <IP_PICO></div>'; |
| 99 |
99 |
} |
| 100 |
100 |
function fetchData() { |
| 101 |
101 |
fetch('/cors-proxy', { headers: { 'Target-URL': API } }) |
| ... |
... |
@@ -103,84 +103,124 @@ |
| 103 |
103 |
.then(render) |
| 104 |
104 |
.catch(function() { |
| 105 |
105 |
document.getElementById('pico-content').innerHTML = |
| 106 |
|
- '<p class="pico-error">⚠️ Impossible de joindre le Pico</p>'; |
|
109 |
+ '<p class="pico-error">⚠️ Impossible de joindre le Pico (<IP_PICO>)</p>'; |
| 107 |
107 |
}); |
| 108 |
108 |
} |
| 109 |
109 |
fetchData(); |
| 110 |
110 |
setInterval(fetchData, 30000); |
| 111 |
111 |
})(); |
|
115 |
+ id: 0_268_picow_sensor |
| 112 |
112 |
{{/code}} |
| 113 |
113 |
|
| 114 |
|
-* Le script appelle lui-même ##/cors-proxy## avec l'en-tête ##Target-URL## : la page Dashy est en https et le Pico en http sur le LAN, un appel direct serait bloqué (contenu mixte et CORS). Derrière SWAG, ##<IP_PICO>## doit figurer dans ##allowed_internal##. |
| 115 |
|
-* L'API du Pico doit renvoyer un objet JSON avec les champs numériques ##temperature##, ##humidity##, ##pressure## et ##altitude##. |
| 116 |
|
-* Aucun identifiant. |
|
118 |
+Le script du widget ##embed## appelle ##/cors-proxy## avec l'en-tête ##Target-URL##, car le Pico est en http sur le LAN. L'API du Pico renvoie un JSON avec ##temperature##, ##humidity##, ##pressure## et ##altitude##. ##<IP_PICO>## doit figurer dans ##allowed_internal## de SWAG. |
| 117 |
117 |
|
| 118 |
|
-=== apod === |
|
120 |
+=== NASA === |
| 119 |
119 |
|
| 120 |
|
-Affiche l'image astronomique du jour de la NASA, avec son titre et sa description. Ni option ni identifiant. |
| 121 |
|
- |
| 122 |
122 |
{{code language="yaml"}} |
|
123 |
+sections: |
|
124 |
+ - name: NASA |
|
125 |
+ icon: hl-nasa |
|
126 |
+ displayData: |
|
127 |
+ sortBy: default |
|
128 |
+ rows: 1 |
|
129 |
+ cols: 1 |
|
130 |
+ collapsed: false |
|
131 |
+ hideForGuests: false |
|
132 |
+ items: [] |
|
133 |
+ widgets: |
| 123 |
123 |
- type: apod |
|
135 |
+ id: 0_291_apod |
| 124 |
124 |
{{/code}} |
| 125 |
125 |
|
| 126 |
|
-=== rss-feed === |
|
138 |
+=== Debian CVE === |
| 127 |
127 |
|
| 128 |
|
-Affiche les derniers articles d'un flux RSS, converti en JSON par le service rss2json. Utilisé pour les avis de sécurité Debian et pour un site d'actualité Ubuntu. |
| 129 |
|
- |
| 130 |
130 |
{{code language="yaml"}} |
|
141 |
+sections: |
|
142 |
+ - name: Debian CVE |
|
143 |
+ icon: hl-debian-linux |
|
144 |
+ useProxy: true |
|
145 |
+ widgets: |
| 131 |
131 |
- type: rss-feed |
| 132 |
132 |
options: |
| 133 |
|
- rssUrl: <URL_FLUX_RSS> |
| 134 |
|
- limit: 2 |
|
148 |
+ rssUrl: https://www.debian.org/security/dsa |
|
149 |
+ id: 0_833_rssfeed |
| 135 |
135 |
{{/code}} |
| 136 |
136 |
|
| 137 |
|
-* ##rssUrl## : adresse du flux (pour les avis de sécurité Debian : le flux DSA du site Debian). |
| 138 |
|
-* ##limit## : nombre d'articles affichés. |
| 139 |
|
-* Aucun identifiant : rss2json est utilisé en accès gratuit, avec un nombre de requêtes limité. |
|
152 |
+##useProxy## est placé sur la section : il est ignoré, le widget appelle rss2json directement. |
| 140 |
140 |
|
| 141 |
|
-=== flight-data === |
|
154 |
+=== Aeroport === |
| 142 |
142 |
|
| 143 |
|
-Affiche les prochains départs et arrivées d'un aéroport, via l'API AeroDataBox distribuée par RapidAPI. |
| 144 |
|
- |
| 145 |
145 |
{{code language="yaml"}} |
|
157 |
+sections: |
|
158 |
+ - name: Aeroport |
|
159 |
+ icon: hl-flightaware |
|
160 |
+ useProxy: true |
|
161 |
+ widgets: |
| 146 |
146 |
- type: flight-data |
| 147 |
147 |
options: |
| 148 |
|
- airport: <CODE_OACI> |
|
164 |
+ airport: LFPG |
| 149 |
149 |
apiKey: <CLE_API_RAPIDAPI> |
| 150 |
150 |
limit: 12 |
| 151 |
151 |
direction: all |
|
168 |
+ id: 0_844_flightdata |
| 152 |
152 |
{{/code}} |
| 153 |
153 |
|
| 154 |
|
-* ##airport## : code OACI à quatre lettres de l'aéroport. |
| 155 |
|
-* ##direction## : ##all##, ##departure## ou ##arrival##. |
| 156 |
|
-* ##limit## : nombre de vols affichés. |
| 157 |
|
-* ##apiKey## : clé RapidAPI. Créer un compte sur RapidAPI, s'abonner à l'API AeroDataBox (offre gratuite, quota mensuel limité), puis copier la clé ##X-RapidAPI-Key## de l'application par défaut. Elle est commune à toutes les API RapidAPI du compte. |
| 158 |
|
-* La clé est envoyée dans l'en-tête ##x-rapidapi-key##. Le proxy de SWAG ne relaie pas cet en-tête : ne pas mettre ce widget en ##useProxy: true## derrière SWAG sans l'ajouter au bloc Lua. Dans la configuration actuelle, l'appel part directement du navigateur. |
|
171 |
+* ##apiKey## : créer un compte RapidAPI, s'abonner à l'API AeroDataBox (offre gratuite) et copier la clé ##X-RapidAPI-Key##. |
|
172 |
+* La clé est envoyée dans un en-tête que ##/cors-proxy## ne relaie pas : laisser ce widget sans ##useProxy##. Celui de la section est ignoré. |
|
173 |
+* ##airport## : code OACI de l'aéroport. |
| 159 |
159 |
|
| 160 |
|
-=== news-headlines === |
|
175 |
+=== News === |
| 161 |
161 |
|
| 162 |
|
-Affiche les derniers titres d'actualité d'un pays et d'une langue, via Currents API. |
|
177 |
+{{code language="yaml"}} |
|
178 |
+sections: |
|
179 |
+ - name: News |
|
180 |
+ icon: fad fa-newspaper |
|
181 |
+ displayData: |
|
182 |
+ rows: 1 |
|
183 |
+ sortBy: random |
|
184 |
+ cols: 1 |
|
185 |
+ collapsed: true |
|
186 |
+ hideForGuests: false |
|
187 |
+ widgets: |
|
188 |
+ - type: rss-feed |
|
189 |
+ options: |
|
190 |
+ limit: '2' |
|
191 |
+ rssUrl: https://omgubuntu.co.uk/feed |
|
192 |
+ id: 0_413_rssfeed |
|
193 |
+{{/code}} |
| 163 |
163 |
|
|
195 |
+=== Medias === |
|
196 |
+ |
| 164 |
164 |
{{code language="yaml"}} |
|
198 |
+sections: |
|
199 |
+ - name: Medias |
|
200 |
+ icon: hl-youtube |
|
201 |
+ displayData: |
|
202 |
+ rows: 1 |
|
203 |
+ cols: 1 |
|
204 |
+ sortBy: default |
|
205 |
+ collapsed: true |
|
206 |
+ hideForGuests: false |
|
207 |
+ widgets: |
| 165 |
165 |
- type: news-headlines |
| 166 |
166 |
useProxy: true |
| 167 |
167 |
options: |
| 168 |
168 |
lang: fr |
| 169 |
169 |
country: FR |
| 170 |
|
- count: 2 |
|
213 |
+ count: '2' |
| 171 |
171 |
apiKey: <CLE_API_CURRENTS> |
|
215 |
+ id: 0_595_newsheadlines |
| 172 |
172 |
{{/code}} |
| 173 |
173 |
|
| 174 |
|
-* ##lang## / ##country## : langue et pays des articles. |
| 175 |
|
-* ##count## : nombre de titres affichés. |
| 176 |
|
-* ##apiKey## : clé Currents API, obtenue en créant un compte gratuit sur le site de Currents API, puis copiée depuis son tableau de bord. Quota quotidien limité. |
| 177 |
|
-* La clé passe dans l'adresse de la requête (paramètre ##apiKey##) : elle traverse le proxy de SWAG sans réglage particulier. |
|
218 |
+##apiKey## : clé obtenue en créant un compte gratuit sur Currents API. Elle passe dans l'URL et traverse ##/cors-proxy## sans réglage. |
| 178 |
178 |
|
| 179 |
|
-=== crypto-watch-list === |
|
220 |
+=== Crypto market === |
| 180 |
180 |
|
| 181 |
|
-Affiche le cours, la variation et la capitalisation d'une liste de cryptomonnaies, via l'API publique CoinGecko. Aucun identifiant. |
| 182 |
|
- |
| 183 |
183 |
{{code language="yaml"}} |
|
223 |
+sections: |
|
224 |
+ - name: Crypto market |
|
225 |
+ icon: hl-bitcoin |
|
226 |
+ widgets: |
| 184 |
184 |
- type: crypto-watch-list |
| 185 |
185 |
options: |
| 186 |
186 |
currency: EUR |
| ... |
... |
@@ -187,23 +187,268 @@ |
| 187 |
187 |
assets: |
| 188 |
188 |
- ethereum |
| 189 |
189 |
- bnb |
|
233 |
+ - wrapped-beacon-eth |
| 190 |
190 |
- basic-attention-token |
|
235 |
+ - paris-saint-germain-fan-token |
|
236 |
+ - fc-porto |
|
237 |
+ id: 0_1317_cryptowatchlist |
|
238 |
+ displayData: |
|
239 |
+ sortBy: default |
|
240 |
+ rows: 1 |
|
241 |
+ cols: 1 |
|
242 |
+ collapsed: false |
|
243 |
+ hideForGuests: false |
| 191 |
191 |
{{/code}} |
| 192 |
192 |
|
| 193 |
|
-* ##assets## : identifiants CoinGecko des monnaies, tels qu'ils apparaissent dans l'adresse de leur page sur CoinGecko (pas le symbole boursier). |
| 194 |
|
-* ##currency## : devise d'affichage. |
|
246 |
+=== Binance Wallets === |
| 195 |
195 |
|
| 196 |
|
-=== wallet-balance === |
|
248 |
+{{code language="yaml"}} |
|
249 |
+sections: |
|
250 |
+ - name: Binance Wallets |
|
251 |
+ icon: hl-gollum |
|
252 |
+ widgets: |
|
253 |
+ - type: wallet-balance |
|
254 |
+ options: |
|
255 |
+ coin: eth |
|
256 |
+ network: main |
|
257 |
+ address: '<ADRESSE_WALLET_1>' |
|
258 |
+ id: 0_1452_walletbalance |
|
259 |
+ displayData: |
|
260 |
+ sortBy: default |
|
261 |
+ rows: 2 |
|
262 |
+ cols: 2 |
|
263 |
+ collapsed: false |
|
264 |
+ hideForGuests: false |
|
265 |
+{{/code}} |
| 197 |
197 |
|
| 198 |
|
-Affiche le solde et les dernières transactions d'une adresse de portefeuille, via l'API publique BlockCypher. Utilisé deux fois, une adresse par section. |
|
267 |
+=== Uphold Wallets === |
| 199 |
199 |
|
| 200 |
200 |
{{code language="yaml"}} |
|
270 |
+sections: |
|
271 |
+ - name: Uphold Wallets |
|
272 |
+ icon: https://uphold.com/favicon.ico |
|
273 |
+ widgets: |
| 201 |
201 |
- type: wallet-balance |
| 202 |
202 |
options: |
| 203 |
203 |
coin: eth |
| 204 |
204 |
network: main |
| 205 |
|
- address: '<ADRESSE_WALLET>' |
|
278 |
+ address: '<ADRESSE_WALLET_2>' |
|
279 |
+ id: 0_1384_walletbalance |
|
280 |
+ displayData: |
|
281 |
+ sortBy: default |
|
282 |
+ rows: 2 |
|
283 |
+ cols: 2 |
|
284 |
+ collapsed: false |
|
285 |
+ hideForGuests: false |
| 206 |
206 |
{{/code}} |
| 207 |
207 |
|
| 208 |
|
-* ##coin## / ##network## : chaîne interrogée (##eth## sur le réseau principal). |
| 209 |
|
-* ##address## : adresse publique du portefeuille, entre guillemets pour qu'elle reste une chaîne. Ce n'est pas un secret d'accès, mais elle relie le tableau de bord aux fonds et à l'historique du portefeuille : une donnée personnelle, à ne pas publier. |
|
288 |
+== Fichier complet == |
|
289 |
+ |
|
290 |
+Le fichier ##news.yml## en un seul bloc, à copier tel quel dans ##user-data##. |
|
291 |
+ |
|
292 |
+{{html wiki="true"}} |
|
293 |
+<details><summary>Afficher news.yml complet</summary> |
|
294 |
+ |
|
295 |
+{{code language="yaml"}} |
|
296 |
+pageInfo: |
|
297 |
+ title: News |
|
298 |
+ description: Some RSS feed |
|
299 |
+ navLinks: |
|
300 |
+ - title: Home |
|
301 |
+ path: / |
|
302 |
+pages: |
|
303 |
+ - name: bookmarks |
|
304 |
+ path: bookmark.yml |
|
305 |
+ - name: cpu |
|
306 |
+ path: cpu.yml |
|
307 |
+ - name: news |
|
308 |
+ path: news.yml |
|
309 |
+sections: |
|
310 |
+ - name: IoT — Pico W |
|
311 |
+ icon: hl-raspberry-pi |
|
312 |
+ displayData: |
|
313 |
+ cols: 1 |
|
314 |
+ rows: 2 |
|
315 |
+ items: |
|
316 |
+ - title: Pico W |
|
317 |
+ description: Interface Web LED + État |
|
318 |
+ icon: hl-raspberry-pi |
|
319 |
+ url: http://<IP_PICO> |
|
320 |
+ statusCheck: true |
|
321 |
+ id: 0_268_picow |
|
322 |
+ widgets: |
|
323 |
+ - type: embed |
|
324 |
+ options: |
|
325 |
+ html: | |
|
326 |
+ <div id="pico-widget"> |
|
327 |
+ <div id="pico-content"> |
|
328 |
+ <p style="text-align:center;color:#888;">Chargement…</p> |
|
329 |
+ </div> |
|
330 |
+ </div> |
|
331 |
+ css: | |
|
332 |
+ #pico-widget { font-family: sans-serif; color: #e0e0e0; padding: 8px 4px; } |
|
333 |
+ #pico-widget .pico-grid { display: flex; gap: 12px; justify-content: space-around; flex-wrap: wrap; } |
|
334 |
+ #pico-widget .pico-card { background: rgba(255,255,255,0.06); border-radius: 12px; padding: 14px 18px; text-align: center; min-width: 90px; flex: 1; } |
|
335 |
+ #pico-widget .pico-icon { font-size: 1.8em; margin-bottom: 6px; } |
|
336 |
+ #pico-widget .pico-value { font-size: 1.5em; font-weight: bold; color: #fff; } |
|
337 |
+ #pico-widget .pico-label { font-size: 0.72em; color: #aaa; margin-top: 4px; text-transform: uppercase; letter-spacing: 1px; } |
|
338 |
+ #pico-widget .pico-footer { text-align: center; font-size: 0.68em; color: #666; margin-top: 10px; } |
|
339 |
+ #pico-widget .pico-error { color: #ff6b6b; text-align: center; padding: 10px; font-size: 0.85em; } |
|
340 |
+ script: | |
|
341 |
+ (function() { |
|
342 |
+ var API = 'http://<IP_PICO>/api'; |
|
343 |
+ function getColor(t) { |
|
344 |
+ if (t < 10) return '#74b9ff'; |
|
345 |
+ if (t < 20) return '#55efc4'; |
|
346 |
+ if (t < 27) return '#fdcb6e'; |
|
347 |
+ return '#ff7675'; |
|
348 |
+ } |
|
349 |
+ function render(d) { |
|
350 |
+ var now = new Date().toLocaleTimeString('fr-FR', {hour:'2-digit',minute:'2-digit',second:'2-digit'}); |
|
351 |
+ document.getElementById('pico-content').innerHTML = |
|
352 |
+ '<div class="pico-grid">' + |
|
353 |
+ '<div class="pico-card"><div class="pico-icon">🌡️</div>' + |
|
354 |
+ '<div class="pico-value" style="color:' + getColor(d.temperature) + '">' + d.temperature.toFixed(1) + '°C</div>' + |
|
355 |
+ '<div class="pico-label">Température</div></div>' + |
|
356 |
+ '<div class="pico-card"><div class="pico-icon">💧</div>' + |
|
357 |
+ '<div class="pico-value">' + d.humidity.toFixed(1) + '%</div>' + |
|
358 |
+ '<div class="pico-label">Humidité</div></div>' + |
|
359 |
+ '<div class="pico-card"><div class="pico-icon">🔵</div>' + |
|
360 |
+ '<div class="pico-value">' + d.pressure.toFixed(1) + '</div>' + |
|
361 |
+ '<div class="pico-label">Pression hPa</div></div>' + |
|
362 |
+ '<div class="pico-card"><div class="pico-icon">⛰️</div>' + |
|
363 |
+ '<div class="pico-value">' + d.altitude.toFixed(1) + ' m</div>' + |
|
364 |
+ '<div class="pico-label">Altitude</div></div>' + |
|
365 |
+ '</div>' + |
|
366 |
+ '<div class="pico-footer">Mis à jour à ' + now + ' · Pico W <IP_PICO></div>'; |
|
367 |
+ } |
|
368 |
+ function fetchData() { |
|
369 |
+ fetch('/cors-proxy', { headers: { 'Target-URL': API } }) |
|
370 |
+ .then(function(r) { return r.json(); }) |
|
371 |
+ .then(render) |
|
372 |
+ .catch(function() { |
|
373 |
+ document.getElementById('pico-content').innerHTML = |
|
374 |
+ '<p class="pico-error">⚠️ Impossible de joindre le Pico (<IP_PICO>)</p>'; |
|
375 |
+ }); |
|
376 |
+ } |
|
377 |
+ fetchData(); |
|
378 |
+ setInterval(fetchData, 30000); |
|
379 |
+ })(); |
|
380 |
+ id: 0_268_picow_sensor |
|
381 |
+ - name: NASA |
|
382 |
+ icon: hl-nasa |
|
383 |
+ displayData: |
|
384 |
+ sortBy: default |
|
385 |
+ rows: 1 |
|
386 |
+ cols: 1 |
|
387 |
+ collapsed: false |
|
388 |
+ hideForGuests: false |
|
389 |
+ items: [] |
|
390 |
+ widgets: |
|
391 |
+ - type: apod |
|
392 |
+ id: 0_291_apod |
|
393 |
+ - name: Debian CVE |
|
394 |
+ icon: hl-debian-linux |
|
395 |
+ useProxy: true |
|
396 |
+ widgets: |
|
397 |
+ - type: rss-feed |
|
398 |
+ options: |
|
399 |
+ rssUrl: https://www.debian.org/security/dsa |
|
400 |
+ id: 0_833_rssfeed |
|
401 |
+ - name: Aeroport |
|
402 |
+ icon: hl-flightaware |
|
403 |
+ useProxy: true |
|
404 |
+ widgets: |
|
405 |
+ - type: flight-data |
|
406 |
+ options: |
|
407 |
+ airport: LFPG |
|
408 |
+ apiKey: <CLE_API_RAPIDAPI> |
|
409 |
+ limit: 12 |
|
410 |
+ direction: all |
|
411 |
+ id: 0_844_flightdata |
|
412 |
+ - name: News |
|
413 |
+ icon: fad fa-newspaper |
|
414 |
+ displayData: |
|
415 |
+ rows: 1 |
|
416 |
+ sortBy: random |
|
417 |
+ cols: 1 |
|
418 |
+ collapsed: true |
|
419 |
+ hideForGuests: false |
|
420 |
+ widgets: |
|
421 |
+ - type: rss-feed |
|
422 |
+ options: |
|
423 |
+ limit: '2' |
|
424 |
+ rssUrl: https://omgubuntu.co.uk/feed |
|
425 |
+ id: 0_413_rssfeed |
|
426 |
+ - name: Medias |
|
427 |
+ icon: hl-youtube |
|
428 |
+ displayData: |
|
429 |
+ rows: 1 |
|
430 |
+ cols: 1 |
|
431 |
+ sortBy: default |
|
432 |
+ collapsed: true |
|
433 |
+ hideForGuests: false |
|
434 |
+ widgets: |
|
435 |
+ - type: news-headlines |
|
436 |
+ useProxy: true |
|
437 |
+ options: |
|
438 |
+ lang: fr |
|
439 |
+ country: FR |
|
440 |
+ count: '2' |
|
441 |
+ apiKey: <CLE_API_CURRENTS> |
|
442 |
+ id: 0_595_newsheadlines |
|
443 |
+ - name: Crypto market |
|
444 |
+ icon: hl-bitcoin |
|
445 |
+ widgets: |
|
446 |
+ - type: crypto-watch-list |
|
447 |
+ options: |
|
448 |
+ currency: EUR |
|
449 |
+ assets: |
|
450 |
+ - ethereum |
|
451 |
+ - bnb |
|
452 |
+ - wrapped-beacon-eth |
|
453 |
+ - basic-attention-token |
|
454 |
+ - paris-saint-germain-fan-token |
|
455 |
+ - fc-porto |
|
456 |
+ id: 0_1317_cryptowatchlist |
|
457 |
+ displayData: |
|
458 |
+ sortBy: default |
|
459 |
+ rows: 1 |
|
460 |
+ cols: 1 |
|
461 |
+ collapsed: false |
|
462 |
+ hideForGuests: false |
|
463 |
+ - name: Binance Wallets |
|
464 |
+ icon: hl-gollum |
|
465 |
+ widgets: |
|
466 |
+ - type: wallet-balance |
|
467 |
+ options: |
|
468 |
+ coin: eth |
|
469 |
+ network: main |
|
470 |
+ address: '<ADRESSE_WALLET_1>' |
|
471 |
+ id: 0_1452_walletbalance |
|
472 |
+ displayData: |
|
473 |
+ sortBy: default |
|
474 |
+ rows: 2 |
|
475 |
+ cols: 2 |
|
476 |
+ collapsed: false |
|
477 |
+ hideForGuests: false |
|
478 |
+ - name: Uphold Wallets |
|
479 |
+ icon: https://uphold.com/favicon.ico |
|
480 |
+ widgets: |
|
481 |
+ - type: wallet-balance |
|
482 |
+ options: |
|
483 |
+ coin: eth |
|
484 |
+ network: main |
|
485 |
+ address: '<ADRESSE_WALLET_2>' |
|
486 |
+ id: 0_1384_walletbalance |
|
487 |
+ displayData: |
|
488 |
+ sortBy: default |
|
489 |
+ rows: 2 |
|
490 |
+ cols: 2 |
|
491 |
+ collapsed: false |
|
492 |
+ hideForGuests: false |
|
493 |
+{{/code}} |
|
494 |
+ |
|
495 |
+</details> |
|
496 |
+{{/html}} |
|
497 |
+ |