webPageMonitor

1. Intro
2. Requirements
3. How does it work
4. Known issues
5. Additional features
6. License and blah


1. Intro
Maybe you need monitorize oftenly some websites for changes or updates. If you do, then you can create a little database with the url addresses of such websites and webPageMonitor will check them in a batch.

2. Requirements
Mac OS X (perhaps 10.3 or higher).


3. How does it work + known issues



Open webPageMonitor. You will see a simple "set manager" in the top. This will keep record of every "set" of URLs you make (eg, work, personal, whatever). You can here create new sets and save/delete the current one.
The first time you will see a "blank set". You can now add new web pages to monitorize, adding them filling the text fields below: display name & url. You can also import them from a tab-delimited text file (see instructions below).
You can see four columns. "Web Page", which is the identifier name you gave, "URL", which is (caugh) the URL, "UID", which is the internal url id (don't take care about this) and "Status", which is one of "unknown", "Failed!", "Changes!" or "Equal!", fairly self-explaining status-names. Initially, you will see "unknown". After the first check, you will see "Changes!".

When you are ready, save your set. Go to the "save" button above and choose a name for your set. Further times, you will be able to load these sets from the popup menu called "Current set".
Now you can take a first look to these web pages.
Click "Check ALL". You will see the progress bar going on. After the first run, the normal status for all items will be "Changes!". Further checks will throw one of equal, fail or changes. Their meaning is clear?
Every time you hit "Save" the current set, it will be saved also the status. So, it is a recommendable practice saving the current set every time you run "Check ALL", so you will know the next time what was the last status for your pages. Note that webPageMonitor won't tell you when you saved or not the current set.
webPageMonitor keeps a copy of every URL you enter and compares, character by character, the newest page with the oldest one. This is the method that webPageMonitor uses.
I tried getting the HTTP headers and modified time, but this is not a reliable method. In a future, we'll implement some functions to change this and make the checking better. Meanwhile, you can monitorize static web sites or use plugins.

Plugins: these are simple compiled applescripts which you can add/delete "choosing info" about webPageMonitor, then adding/deleting them from the propper tab. When webPageMonitor checks a web site called "whatever", it first checks for the existence of a plugin called "whatever.scpt". If it does exist, the site will be processed using such plugin.
Actually, there are three sample plugins: macupdate, versiontracker & google. There is also attached a sample set, where you can see the usage of such plugins.
Usage of plugins is useful when you need a very special monitorization of a particular website (not only checking for simple textual changes).
If you know a bit of AppleScript, you can create your own plugins. You can take a look to the source code of the pre-installed plugins control-clicking, showing package contents and opening the folder Contents/PlugIns of the webPageMonitor distribution. You will see that it is very simple writing your own.

4. Known issues
- Actually, webPageMonitor won't monitorize correctly some dynamic web sites, such as forums that assign you a temporary id and so on. This works better for static or semi-static web sites. So, see yourself whether webPageMonitor fits your needs or not. It works fine for my needs, but may not for yours. Further versions will improve site checking. Meanwhile, you can use this version or write your own plugins to process certain websites.
- The email agent bundled with webPageMonitor (sendEmail.pl) DOES NOT WORK WITH ALL smtp servers (usually because the kind of authentication they use), but works for most of them (eg, mac.com or yahoo.com). Please, don't ask me about this. I will improve it when I find a free, easy and more reliable system to send emails.

5. Additional features...
- You can setup webPageMonitor to perform a "check ALL" action every [x] minutes (the computer must be awake).
- You can setup webPageMonitor to create local reports or send them by email to a list of recipients (just setup the required fields).
- If webPageMonitor finds internal errors, they will be outputed to a file called "errorlog.txt" (or similar), next to it.
- You can quick-visit one or several sites double-clicking any row's entry (apart from the button "Visit selected").
- You can import and export sets (menu "File"). What is the formatting for an OK import file? A tab-delimited file containing both web-page-title and web-page-url. Eg:

web-page-title-1[tab]http://www.url.com/page.html
web-page-title-2[tab]http://www.url.com/page2.html


- webPageMonitor keeps a UID (unique identifier number) for every web page. If you delete a web page url, it will be still recorded in the "cache" web folder. You can find a menu item called "Clean cache" within the "File" menu, so you can clean from time to time your cache database, and delete old & unactive cache files.

6. License and blah
This is a beta app. Here it works so far, but may freeze your system or delete all files in your HD.
Anyway, webPageMonitor shouldn't do nothing dangerous to your family/pets.
You may not try contacting us about this product. But for feedback, suggestions, bugs, donations... Mail us!
Please, before reporting a bug or suggest anything, make sure your stuff is not already in the documentation, which is not a very-long document.
sendEmail.pl was written by Brandon Zehm <http://caspian.dotconf.net/> and modified by Nicola Bandini to support basic smtp authentication.

webPageMonitor 1.0b2, April, 25, 2004
-Fixed several bugs in the interface.
-Added the option to make schedule checks.
-Added the option to report changes by email.
-Added support for custom plugins (written in AppleScript).

webPageMonitor v. 1.0b1, August 13, 2003
-First public beta release.