Skip to content
This repository has been archived by the owner on Mar 9, 2023. It is now read-only.

Latest commit

 

History

History
154 lines (120 loc) · 6.18 KB

recentrated.md

File metadata and controls

154 lines (120 loc) · 6.18 KB

recentrated.pl

Maintenance

Know when people rate or write reviews about a book

From the Goodreads Feedback forum, Scribble (2010) or Jimmy (2011) or PetraX (2014) or Lucas (2018) or Jason (2018) or Elizabeth (2016):

I know this has been requested before, but I'd really like the opportunity to follow a book. I'd like to know when people rate or write reviews about a book and to be notified of such. I have some favorites that are not particularly well known or often read, and I'd like to know about who chooses to read them.

Receive notification e-mails:

From: yourmail@example.com
To: yourmail@example.com
Subject: New ratings on Goodreads.com
Date: Wed, 10 Jan 2018 21:10:50 +0100

Recently rated books in your "watch-ratings" shelf:

  "The Machine Question"
   www.goodreads.com/user/show/54336239   [*****]

  "Spam: A Shadow History of the Internet"
   www.goodreads.com/book/show/16718273   [9 new]

  "Understanding Beliefs"
   www.goodreads.com/review/show/22346637 [TTTT ]
   www.goodreads.com/user/show/24850532   [**   ]


--
 [***  ] 3/5 stars rating without text
 [ttt  ] 3/5 stars rating with tweet-size text
 [TTT  ] 3/5 stars rating with text
 [9 new] ratings better viewed on book page
 ...   
  • low-bandwidth, distraction-free plaintext mail; HTML mail appeals to marketers because it's another place to stick their logo, nobody else needs it
  • most mail-clients recognize the signature and the links and make the latter clickable
  • changes are collected in periodic mails; individual mails would be annoying
  • text-reviews in the mail are bloat, a click on a review-link is bearable - I would have checked the reviewer on the GR website anyway
  • usernames in the mail are bloat - 99% are unknown/random letters to me and I would see it on the GR website anyway

How to "follow books"

Installation-free:

  1. visit https://andre-st.github.io/goodreads/
  2. enter your e-mail and shelf address

Dos and don'ts:

  • don't use the "All" or "Read" shelves; be picky, use a separate single purpose shelf
  • don't run this on more than one of your shelves; it's feasible but better use a single purpose shelf
  • don't use this program with well known fiction books that get a lot of reviews; some books receive 300 ratings every day = no insights, readers too random; a separate single purpose shelf allows fine-tuning by dropping such books over time without affecting other shelves
  • create and populate a Goodreads shelf, e.g., "watch-ratings": You can add and remove books at any time. New books will be checked automatically. Such a shelf prevents unnecessary mails and eases manual checks if this system is discontinued someday

Installation on a server:

  1. open a GNU/Linux terminal and install the Goodreads Toolbox:

    $ git clone https://github.com/andre-st/goodreads-toolbox.git
    $ cd goodreads
    $ sudo make     # Required Perl modules from CPAN etc.
  2. have a sendmail MTA set up. Most simple thing is ssmtp (deprecated) or nullmailer or msmtp-mta, with your original sendmail being renamed and symlinked to one of them:

    $ vi ~/.msmtprc
    		# All accounts:
    		defaults
    		auth           on
    		tls            on
    		tls_starttls   on
    		tls_trust_file /etc/ssl/certs/ca-certificates.crt  # or .../ca-bundle.crt
    		logfile        ~/.msmtp.log
    		
    		# Gmail account:
    		account        gmail
    		host           smtp.gmail.com  # smtp-relay.gmail.com for G Suite users
    		port           587
    		from           XXXXXXXX@gmail.com
    		user           XXXXXXXX@gmail.com
    		password       XXXXXXXXXXXXXXXXXX
    		
    		# Default account:
    		account default : gmail
    		
    $ chmod u=rw,go= ~/.msmtprc
    $ echo "Test message"         | mail -s "Mailer Test" XXXXXXXX@gmail.com
    $ echo "Subject: Mailer Test" | sendmail -v XXXXXXXX@gmail.com
  3. add a cron-job (I prefer anacrony daemons such as dcron or fcron): edit /etc/cron.daily/goodratings and replace ARGUMENTS:

    #!/usr/bin/env sh
    # `ifne` is part of `moreutils`
    /path/to/recentrated.pl GOODUSERID SHELFNAME YOURMAIL@EXAMPLE.COM | ifne /usr/sbin/sendmail -t
    
    # Provide this self-hosted service to your Goodreads friends too!
    # ... HERUSERID HERSHELF HERMAIL@EXAMPLE.COM ADMIN@EXAMLE.COM | ...
    # ...
    $ sudo chmod +x /etc/cron.daily/goodratings

    See also cron.daily/goodratings.example

Feedback

If you like this project, you can "star" it on GitHub. Report bugs or suggestions via GitHub or see the AUTHORS.md file.

See also