SYNOPSIS

browser-history [ options ]

DESCRIPTION

Browser-History is a client-side X daemon maintaining a browser-independent global history of all the web sites you visited. Its usage is very simple, just put the following line in your .xinitrc or your X start-up script:

browser-history &

And open the file ~/.browser-history/history-log.html and bookmark it.

Browser-history came from the will to overcome a Netscape bug: there was no global history, and if you close a window, its whole history is lost. For people browsing lots of sites, having a possibility to track back where one has been before means that you don't have to put everything in your bookmarks file. If you are not sure if a site may be worth remembering, don't add it in your bookmarks. If you need it later, just browse your history files.

Later, it came to our minds that this also could be a valuable add-on to people writing experimental browsers, so they dont have to add this functionality to their browser itself.

Browser-history is a small and efficient daemon. Real user services could be built on top of the log files it maintains for more possibilities (graphical representation, advanced search options, collective histories). It can be seen as a quick-and-dirty hack wrt to the general solution of using a personal proxy to provide this history and housekeeping facilities. But in the meantime, it is easy to use and it works.

IMPLEMENTATION

Browser-History spies your web browser and logs in ~/.browser-history/history-log.html all the URLs you went through. You can then browse the log under Netscape or other browsers via the URL: file:~/.browser-history/history-log.html (replace the ~ by your home directory). It tracks automagically all already present browser windows, and all new ones created in the future. This program has no user interface. It just appends information to a log file in html format so you can browse it through a web browser. If more that one hour has passed since last entry, it draws an horizontal lines, and adds H1 headers to delimit new days. Each week (Sunday mornings), it archives the week history, compresses it by gzip (that you must have in your path), and starts a new history with links to the older ones. To make room you can just remove the obsolete history files. You can search files for string XXX in shell via:

zgrep XXX ~/.browser-history/*

This version (2.6) works with Netscape, Arena and Amaya.

URLs can be excluded from logging by putting them, one per line in the file ~/.browser-history/history-log.exclude , then, if an URL begins with a line from this file, it is not logged. In this file, empty lines or lines beginning by # are comments This file is read once at startup, and re-read when receiving the signal 1. e.g:

    # We exclude local files
    file:
    # Exclude search engines...
    http://home.netscape.com
    http://guide.infoseek.com

When browser-history is run, it looks if another one is running, and by default it kills the previous one if it is an older version. Otherwise, it the new one is the same version number or older, it just aborts.

OPTIONS

All options can be given by their first letter: you can specify either -verbose or -v, but you cannot group options, e.g. you must say -v -k , but not -vk

-display display_name

Specifies X display, otherwise contents of $DISPLAY is used

-verbose

outputs information on what it is doing. useful for debug.

-Version

prints version number and exit.

-logdir directory

which directory to store files into? defaults to ~/.browser-history

-gzip gzip_filename

the complete path to the gzip compressor. Defaults to "gzip". E.g:

-gzip /usr/gnu/bin/gzip

-seconds delay

if two entries are made are more than delay seconds apart, an horizontal rule will separate them, else just a simple line break. Defaults to one hour (3600).

-replace

If there is an already running browser-history on the display, aborts. Default is to replace it only if the version is older than ours.

-noreplace

If there is an already running browser-history on the display, aborts. Default is to replace it only if the version is older than ours.

-kill

If there is an already running browser-history on the display, kills it, then terminates immediately in all cases.

-DontGrab

Never Grab the X Server, which might cause deadlocks while debugging, when browser-history or gdb tries to print on the grabbed xterm or emacs.

-checkpoint

Cause the currently running instance of browser-history to save a list of all the URLs and their titles that are currently being viewed by a browser-history compatible browser to the normal history file as a "checkpoint".

LOG FILE FORMAT

A log file can have some decorative HTML to represent days, but each entry has the form: (on a single line since version 2.4)

    separator
    <b>name</b>
    <a href="URL">URL</a>
    YYYY/MM/DD-HH:MN:SS <small>windowid</small>

where the following items are:

separator: either <hr> or <br>
name: the name of the document (window title)
URL: its URL
YYYY/MM/DD-HH:MN:SS: year, month number, day number, hour,
			 minutes, seconds. (2-digit numbers)
windowid: the X window ID of the browser window, in hexadecimal

Note: Before version 2.4, the 4 sub-parts were separated by newlines, but since 2.4, they are only blank-separated to ease searching for URL in log files via "grep".

Note: Before version 2.5, the year was stored in 2 digits. Now it is stored in 4 (or more :-) digits, to fix this Y2K bug

HOME

The latest version of browser-history can be found at:

http://koala.ilog.fr/ftp/pub/browser-history/

and its WWW home page, with full technical documentation is at:

http://www.inria.fr/koala/colas/browser-history

AUTHOR

Colas Nahaboo, http://www.inria.fr/koala/colas

COPYRIGHT

browser-history bears the same license as the X Window System: you can do everything with this code (selling it, modifying it), except suing me or using my name in your advertisements, or expecting any kind of support or guarantee.