4

Usage scenario

Somebody regularly uploads new PDFs to his web page and updates the old ones. I do copy them to my hard drive, however, I am unfortunately not notified of any updates to the files.

Requirements

  1. Can save a table which maps paths to local files to URIs, from which they were downloaded.
    The mapping is supposed to be entered manually, of course.

  2. Regularly checks if the local files still strictly equal (e.g. by hashing) their online counterparts and notifies me of any changed files.
    The kind of notification can be arbitrary, e.g. in the taskbar notification area or via a standalone window.

  3. Is able to delegate both the local and the remote file to a diff program, which I can state in the settings.
    The update checker would probably download the remote file to a temporary location and the call the diff program with [path to local file] [path to temporarily saved remote file]

Price: Free & open source is preferred, but I would pay up to 10€ nevertheless.

  • I use changedetection.com/to detect web page changes. I don't knwo if it would work for PDF - but why not? It just fetches the contents of a URL, compares with the previous & emails you if there is any change. Try it & let us know, please. I would be interested to learn if it works for your porpoise. – Mawg says reinstate Monica Jan 5 '16 at 10:48
  • @Mawg Good idea! I've just tried it, but sadly, the website alerts This address (...) refers to a content type (application/pdf) that is not supported by ChangeDetection. – ComFreek Jan 5 '16 at 20:08
  • Sigh! Oh well, at least you learned of a service that might come in useful for other posrpoises. Good luck finding a solution. Can't you ask the owner of the files to start a mailing list to notify of new releases? Even a simple HTML page with links to the PDFs and a version number or publish date could be used with ChangeDetection – Mawg says reinstate Monica Jan 5 '16 at 20:49
1

A little python scripting can easily be run periodically to:

  1. Read the mapping file, possibly as an ini or csv file, (standard libraries for both), if username &/or passwords are required for some files these could be in the mapping file as well.
  2. Fetch the remote file(s), possibly using the requests library from the URI, to a temporary directory
  3. Calculate the respective hashes, e.g. MD5 or SHA-1 and
  4. Notify you of changed files with an option to
    1. Overwrite the local file
    2. Run your diff program

However, getting the mapping before downloading, saving time and bandwidth, will only be possible if the remote server and the protocol both provide a mechanism for retrieving the hash of the remote file - many do not.

Diff-ing some file types, such as pdf files, can be a problem. I would suggest adding another option for each file to the mapping file to either specify the diff program for that file or to specify that it always gets overwritten.

  • free
  • open source
  • cross platform
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.