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.

    DailyXKCD

    Scheduled Pinned Locked Moved Entertainment
    15 Posts 5 Posters 13.5k Views 8 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.
    • B Offline
      Blastitt @Blastitt
      last edited by

      This post is deleted!
      1 Reply Last reply Reply Quote 0
      • RedNaxR Offline
        RedNax Module Developer
        last edited by

        Hi!

        Since new comics only come out on monday, wednesday and friday i made a slight modification (ugly hack) to your node_helper.js…

        On non comic days, after getting the current comic, the node_helper will examines the num value and generate a random number between 1 and said value. It will then get the random comic and return it in the payload.

        	socketNotificationReceived: function(notification, payload) {
        		var self = this;
        		console.log("Notification: " + notification + " Payload: " + payload);
        		
        		if(notification === "GET_COMIC"){
        			
        			var comicJsonUri = payload.config.dailyJsonUrl;
        			var comic;
        			var rndcomic;
        			var rndUrl;
        			var body;
        			var d = new Date();
        			var n = d.getDay(); 
        			
        			request(comicJsonUri, function (error, response, body) {
        				if (!error && response.statusCode == 200) {
        					console.log(body);
        					if ( this.n == 1 || this.n == 3 || this.n == 5 ) {
        							self.sendSocketNotification("COMIC", JSON.parse(body));
        					} else {
        						this.comic = JSON.parse(body); 
        						this.rndcomic = Math.floor((Math.random() * this.comic.num) + 1); 
        						this.rndUrl = "http://xkcd.com/" + this.rndcomic + "/info.0.json";
        						request(this.rndUrl, function (error, response, body) {
        							if (!error && response.statusCode == 200) {
        								console.log(body);
        								self.sendSocketNotification("COMIC", JSON.parse(body));
        							}
        						});
        					}
        				}
        			});
        		}
        	},
        
        B 1 Reply Last reply Reply Quote 2
        • B Offline
          Blastitt @RedNax
          last edited by

          @RedNax

          I like it! Put in a pull request if you want it in the official repo. Also maybe add a config option to turn the feature off (if someone just wants to see new comics only)?

          1 Reply Last reply Reply Quote 0
          • M Offline
            mav29x
            last edited by

            This is awesome! Thanks for making this!!

            1 Reply Last reply Reply Quote 1
            • N Offline
              Nexxic
              last edited by

              Beautiful little module! I was wondering though, is it possible to adjust the size of the comic? I found it quite big for my mirror. Also, did @RedNax modification get into the module? Tried to just copy-paste it, but didn’t get it to work… (Hope I’m posting in the correct thread for this :P)

              B 1 Reply Last reply Reply Quote 0
              • B Offline
                Blastitt @Nexxic
                last edited by

                @Nexxic In the only pull request made, the author retracted it. I’ve had a couple people say they were working on a pull request for fixing the size of the larger comics, but nothing’s come of it yet. I’m too busy at the moment, otherwise I would do it myself.

                J 1 Reply Last reply Reply Quote 0
                • RedNaxR Offline
                  RedNax Module Developer
                  last edited by

                  Submitted another pull request just now…

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jopyth Moderator
                    last edited by

                    I modified the module, so that it vertically scrolls through the comic. This might be a good option to limit the size, but also be able to see the whole comic (usually the comics have a max. width of 800px, but can be quite high, from time to time).

                    It worked pretty well for this recent one. If you guys want, I can make a pull request.

                    Helpful sticky: How to troubleshoot

                    RedNaxR 1 Reply Last reply Reply Quote 0
                    • RedNaxR Offline
                      RedNax Module Developer @Jopyth
                      last edited by

                      @Jopyth Yes please!

                      1 Reply Last reply Reply Quote 0
                      • J Offline
                        Jopyth Moderator @Blastitt
                        last edited by

                        @Blastitt @RedNax Please review PR #5.

                        Helpful sticky: How to troubleshoot

                        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