MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. Djninja926
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.
    D
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 9
    • Groups 0

    Djninja926

    @Djninja926

    1
    Reputation
    12
    Profile views
    9
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    Djninja926 Unfollow Follow

    Best posts made by Djninja926

    • RE: New to building modules. plz help

      @sdetweil I got it working. thank you for your help

      posted in Development
      D
      Djninja926

    Latest posts made by Djninja926

    • RE: New to building modules. plz help

      @sdetweil I got it working. thank you for your help

      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil or how do I make the module take whatever format the urlApi is

      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil how do I make it JSON format

      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil I dont get what you mean

      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil I did all that and this was the output
      Captursde.PNG
      Capturade.PNG
      I think It is working so what do i do know.

      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil where do I add the code

      var urlApi = "https://stats.foldingathome.org/api/donor/Apia_Okorafor";
      	var proxyUrl = 'https://cors-anywhere.herokuapp.com/'
      	fetch(proxyUrl+urlApi,
      
      posted in Development
      D
      Djninja926
    • RE: New to building modules. plz help

      @sdetweil I used this link https://stats.foldingathome.org/api/donor/Apia_Okorafor but after I replaced that link it doesn’t work.

      posted in Development
      D
      Djninja926
    • New to building modules. plz help

      I am trying to build a module that displays information about a specific folding@home client. The information is being pulled from https://stats.foldingathome.org/api. I just don’t know what I have to do to integrate the URL API. This is the sample code that I got from https://github.com/roramirez/MagicMirror-Module-Template. please help.
      :grinning_face_with_smiling_eyes:

      /* global Module */
      
      /* Magic Mirror
       * Module: MMM-Folding@home
       *
       * By 
       * MIT Licensed.
       */
      
      Module.register("MMM-Folding@home", {
      	defaults: {
      		updateInterval: 60000,
      		retryDelay: 5000,
      	},
      
      	requiresVersion: "2.1.0", // Required version of MagicMirror
      
      	start: function() {
      		var self = this;
      		var dataRequest = null;
      		var dataNotification = null;
      
      		//Flag for check if module is loaded
      		this.loaded = false;
      
      		// Schedule update timer.
      		this.getData();
      		setInterval(function() {
      			self.updateDom();
      		}, this.config.updateInterval);
      	},
      
      	/*
      	 * getData
      	 * function example return data and show it in the module wrapper
      	 * get a URL request
      	 *
      	 */
      	getData: function() {
      		var self = this;
      
      		var urlApi = "https://jsonplaceholder.typicode.com/posts/1";
      		var retry = true;
      
      		var dataRequest = new XMLHttpRequest();
      		dataRequest.open("GET", urlApi, true);
      		dataRequest.onreadystatechange = function() {
      			console.log(this.readyState);
      			if (this.readyState === 4) {
      				console.log(this.status);
      				if (this.status === 200) {
      					self.processData(JSON.parse(this.response));
      				} else if (this.status === 401) {
      					self.updateDom(self.config.animationSpeed);
      					Log.error(self.name, this.status);
      					retry = false;
      				} else {
      					Log.error(self.name, "Could not load data.");
      				}
      				if (retry) {
      					self.scheduleUpdate((self.loaded) ? -1 : self.config.retryDelay);
      				}
      			}
      		};
      		dataRequest.send();
      	},
      
      
      	/* scheduleUpdate()
      	 * Schedule next update.
      	 *
      	 * argument delay number - Milliseconds before next update.
      	 *  If empty, this.config.updateInterval is used.
      	 */
      	scheduleUpdate: function(delay) {
      		var nextLoad = this.config.updateInterval;
      		if (typeof delay !== "undefined" && delay >= 0) {
      			nextLoad = delay;
      		}
      		nextLoad = nextLoad ;
      		var self = this;
      		setTimeout(function() {
      			self.getData();
      		}, nextLoad);
      	},
      
      	getDom: function() {
      		var self = this;
      
      		// create element wrapper for show into the module
      		var wrapper = document.createElement("div");
      		// If this.dataRequest is not empty
      		if (this.dataRequest) {
      			var wrapperDataRequest = document.createElement("div");
      			// check format https://jsonplaceholder.typicode.com/posts/1
      			wrapperDataRequest.innerHTML = this.dataRequest.title;
      
      			var labelDataRequest = document.createElement("label");
      			// Use translate function
      			//             this id defined in translations files
      			labelDataRequest.innerHTML = this.translate("TITLE");
      
      
      			wrapper.appendChild(labelDataRequest);
      			wrapper.appendChild(wrapperDataRequest);
      		}
      
      		// Data from helper
      		if (this.dataNotification) {
      			var wrapperDataNotification = document.createElement("div");
      			// translations  + datanotification
      			wrapperDataNotification.innerHTML =  this.translate("UPDATE") + ": " + this.dataNotification.date;
      
      			wrapper.appendChild(wrapperDataNotification);
      		}
      		return wrapper;
      	},
      
      	getScripts: function() {
      		return [];
      	},
      
      	getStyles: function () {
      		return [
      			"MMM-Folding@home.css",
      		];
      	},
      
      	// Load translations files
      	getTranslations: function() {
      		//FIXME: This can be load a one file javascript definition
      		return {
      			en: "translations/en.json",
      			es: "translations/es.json"
      		};
      	},
      
      	processData: function(data) {
      		var self = this;
      		this.dataRequest = data;
      		if (this.loaded === false) { self.updateDom(self.config.animationSpeed) ; }
      		this.loaded = true;
      
      		// the data if load
      		// send notification to helper
      		this.sendSocketNotification("MMM-Folding@home-NOTIFICATION_TEST", data);
      	},
      
      	// socketNotificationReceived from helper
      	socketNotificationReceived: function (notification, payload) {
      		if(notification === "MMM-Folding@home-NOTIFICATION_TEST") {
      			// set dataNotification
      			this.dataNotification = payload;
      			this.updateDom();
      		}
      	},
      });
      
      
      posted in Development
      D
      Djninja926