MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Need some advise. Digital Ocean Modules

    Scheduled Pinned Locked Moved Development
    19 Posts 2 Posters 10.6k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • strawberry 3.141S Offline
      strawberry 3.141 Project Sponsor Module Developer
      last edited by

      this should give you a litte help
      node_helper.js

      const DIGITALOCEAN = require('dropletapi').Droplets;
      const NodeHelper = require('node_helper');
      
      module.exports = NodeHelper.create({
          
          digitalocean: null,
      
          start: function() {
              console.log("Starting module: " + this.name);
          },
      
          socketNotificationReceived: function(notification, payload) {
              if (notification === "CONFIG") {
                  this.config = payload;
                  this.digitalocean = new DIGITALOCEAN(this.config.api_key);
                  setInterval(() => {
                      this.getData();
                  }, this.config.updateInterval);
                  this.getData();
              }
          },
          
          getData: function() {
              this.digitalocean.listDroplets((error, result) => {
                  if (error) {
                      console.log(error);
                  } else {
                      this.sendSocketNotification("DATA", result);
                  }
              });
          }
      });
      

      MMM-Digital-Ocean.js in start method

      this.sendSocketNotification("CONFIG", this.config);
      

      in socketNotificationReceived

      if(notification === "DATA"){
          this.droplets = payload;
      }
      

      in getDom you can iterate over all droplets and build the output you want

      Please create a github issue if you need help, so I can keep track

      andrewchumchalA 1 Reply Last reply Reply Quote 0
      • andrewchumchalA Offline
        andrewchumchal @strawberry 3.141
        last edited by

        @strawberry-3.141

        where do i add the very last part ?

        strawberry 3.141S 1 Reply Last reply Reply Quote 0
        • strawberry 3.141S Offline
          strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
          last edited by

          @andrewchumchal also in MMM-Digital-Ocean.js

          Please create a github issue if you need help, so I can keep track

          andrewchumchalA 1 Reply Last reply Reply Quote 0
          • andrewchumchalA Offline
            andrewchumchal @strawberry 3.141
            last edited by

            @strawberry-3.141

            Any where ? or in a function called socketNotificationReceived

            strawberry 3.141S 1 Reply Last reply Reply Quote 0
            • strawberry 3.141S Offline
              strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
              last edited by

              @andrewchumchal

              socketNotificationReceived: function(notification, payload){
                  if(notification === "DATA"){
                     this.droplets = payload;
                  }
              },
              

              Please create a github issue if you need help, so I can keep track

              andrewchumchalA 2 Replies Last reply Reply Quote 0
              • andrewchumchalA Offline
                andrewchumchal @strawberry 3.141
                last edited by

                @strawberry-3.141
                Thanks again for all of you help. Now I just need to get the getDom to work :)

                1 Reply Last reply Reply Quote 0
                • andrewchumchalA Offline
                  andrewchumchal @strawberry 3.141
                  last edited by

                  @strawberry-3.141

                  Any ideas where i can start? like where i can get the name and status.

                  strawberry 3.141S 1 Reply Last reply Reply Quote 0
                  • strawberry 3.141S Offline
                    strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
                    last edited by

                    @andrewchumchal

                    for(var i = 0; i < this.droplets.droplets.length; i++;){
                        var name = this.droplets.droplets[i].name;
                        var status = this.droplets.droplets[i].status;
                        var ip = '';
                        for(var n = 0; n < this.droplets.droplets[i].networks['v4'].length; n++;){
                            ip += this.droplets.droplets[i].networks['v4'].ip_address + ' | ';
                        }
                        for(var n = 0; n < this.droplets.droplets[i].networks['v6'].length; n++;){
                            ip += this.droplets.droplets[i].networks['v6'].ip_address + ' | ';
                        }
                        ip = ip.replace(/ | $/, '');
                    }
                    
                    

                    Please create a github issue if you need help, so I can keep track

                    andrewchumchalA 1 Reply Last reply Reply Quote 0
                    • andrewchumchalA Offline
                      andrewchumchal @strawberry 3.141
                      last edited by

                      @strawberry-3.141
                      sorry to bug you so much dose that go in the get dom ?

                      strawberry 3.141S 1 Reply Last reply Reply Quote 0
                      • strawberry 3.141S Offline
                        strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
                        last edited by

                        @andrewchumchal this is just how you can access status name and the ip in getDom for example but you still need to render this

                        Please create a github issue if you need help, so I can keep track

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 1 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy