Synology Packt Book Grabber

by

Over the years I've bought a fair few of Packt Publishing's IT books - they're pretty good. Somehow though, I managed to remain blissfuly unaware of their free book a day thingy until recently.

https://www.packtpub.com/packt/offers/free-learning

It's very good at it's main aim, which is getting people to visit their site frequently. But I'm forgetful so it's best for all concerned if a computer does that for me, and claims my free daily book.

As well as being forgetfull I'm also pretty lazy so I looked for a pre-existing solution, and found this:

https://github.com/draconar/grab_packt

Here's how to install it on a Synology DS115J NAS

Step 1 - Install Node.js

Ok step 1 is actually to enable user home directories on the NAS so I've got somewhere to put my grabber intallation.

Do this via Control Panel > User > Advanced

Now to actually install Node.js. This is as simple as going into the Package Centre, finding Node, then clicking 'Install'.

A quick SSH into the NAS to check the install worked..

synology> node -v

v0.12.6

synology> npm -v

2.11.2

Yup. All good. Now to install the grabber itself.

Step 2 - Download the grabber

Ok, dumb question, how do I download directly from git to the Synology?

Turns out it's dead easy. Make sure you're in the directory you want to download it into, then just copy the 'download zip' link from the browser and 'wget' it..

synology> wget https://github.com/draconar/grab_packt/archive/master.zip

Easy enough. Now to unzip it..

synology> unzip master.zip

Now we have stuff to play with..

synology> ls

grab_packt-master  master.zip

synology> cd grab_packt-master/

synology> ls

README.md     package.json  server.js

synology>

Step 3 - Install the grabber

For this, I’m using the instructions on the grabbers git page - which is also the README.md

the install command took a while, presumably because this is a new node install so none of the dependencies would already be there.

Copying the example .env file worked ok, but now how do I edit it? Ugh - vi.

Ok, done. (via Googling a Vi cheatsheet http://www.lagmonster.org/docs/vi.html)

Step 4 - Test run

Now to test it before attempting to set up a scheduled job...

synology> node server.js >> output.txt

synology> cat output.txt

----------- Packt Grab Started -----------

Book Title: Building Web Applications with ArcGIS

Claim URL: https://www.packtpub.com/freelearning-claim/19096/21478

----------- Packt Grab Done --------------

Blimey, that seemed to work ok first time.

Step 5 - Schedule

Ok, the instructions on the grabber site have slightly different paths to node and the home directories than I have.

synology> which node

/usr/bin/node

synology> pwd

/volume1/homes/garry/grab_packt-master

synology>

But that’s fine as I’m going to use the Synology DSM admin stuff to set it up, but it’s good to know the absolute paths first...

In the DSM interface..

Control Panel > Task Scheduler

Create > User-defined script

Screen Shot 2016-03-05 at 09.21.42

The text of the command is:

/usr/bin/node /volume1/homes/garry/grab_packt-master/server.js >> /volume1/homes/garry/grab_packt-master/output.txt

Selecting the task from the list and then running via the admin interface seemed to work, and the output.txt file showed evidence of it running ok again.

A quick poke about in the schedule tab to run it once a day and we’re done!

Screen Shot 2016-03-05 at 09.22.15

We’ll see tomorrow if it all works as planned.

EDIT - Yup, all works.