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 14.6k 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

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • 1 / 1
                        • 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