|
@@ -1,47 +1,39 @@
|
|
|
import radiomanifest from "@radiomanifest/radiomanifest";
|
|
|
|
|
|
-const cachedRadiomanifest = {};
|
|
|
-
|
|
|
-const RM = {
|
|
|
- radio: {
|
|
|
- ROR: {
|
|
|
- name: "Radio Onda Rossa",
|
|
|
- description: "un segnale che disturba",
|
|
|
- url: "https://www.ondarossa.info",
|
|
|
- },
|
|
|
- Spore: {
|
|
|
- name: "Radio Spore",
|
|
|
- description: "una voce senza padrone",
|
|
|
- url: "https://radiospore.oziosi.org",
|
|
|
- },
|
|
|
- Wombat: { name: "Radio Wombat", url: "https://radiowombat.net" },
|
|
|
- Gramma: {
|
|
|
- name: "Radio Gramma",
|
|
|
- description: "supporto parziale!",
|
|
|
- url: "https://test.radiogramma.org",
|
|
|
+const knownRadios = {
|
|
|
+ "https://www.ondarossa.info": {
|
|
|
+ "name": "ror"
|
|
|
},
|
|
|
- RBO: {
|
|
|
- name: "Radio Blackout",
|
|
|
- url: "https://radioblackout.org",
|
|
|
- },
|
|
|
- },
|
|
|
-
|
|
|
- currentRadio: null,
|
|
|
+ "https://radiospore.oziosi.org": {},
|
|
|
+ // "https://radiowombat.net": {},
|
|
|
+ // "https://test.radiogramma.org": {},
|
|
|
+ "https://radioblackout.org": {},
|
|
|
+ }
|
|
|
+class Controller {
|
|
|
+ constructor() {
|
|
|
+ this.cache = {}
|
|
|
+ this.currentRadio = null
|
|
|
|
|
|
- async get(id) {
|
|
|
- // check if this radio id exists
|
|
|
- if (!RM.radio[id]) {
|
|
|
- throw new Error("This radio id does not exists!");
|
|
|
+ for(let r in knownRadios) {
|
|
|
+ this.get(r);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- // check if is cached, load it otherwise
|
|
|
- if (!cachedRadiomanifest[id]) {
|
|
|
- const radio = RM.radio[id];
|
|
|
- cachedRadiomanifest[id] = await radiomanifest.get(radio.url);
|
|
|
+ async get(url) {
|
|
|
+ if(this.cache[url]) {
|
|
|
+ this.currentRadio = this.cache[url];
|
|
|
+ return this.cache[url];
|
|
|
}
|
|
|
- this.currentRadio = cachedRadiomanifest[id];
|
|
|
- return cachedRadiomanifest[id];
|
|
|
- },
|
|
|
-};
|
|
|
+ this.cache[url] = knownRadios[url];
|
|
|
+ // fetch more data in background
|
|
|
+ radiomanifest.get(url).then((rm) => {
|
|
|
+ console.log("arrivato", url)
|
|
|
+ this.cache[url] = rm
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const ControllerSingleton = new Controller();
|
|
|
+// console.log(ControllerSingleton);
|
|
|
|
|
|
-export default RM;
|
|
|
+export default ControllerSingleton;
|