None of the information in this section of the manual is needed to use and enjoy Olive.
Olive keeps its configuration, raw data, and working data in a
directory named '~/.olive
'. This section describes the
contents of that directory.
The configuration file is named 'olive.yaml
'. As its
extension indicates, it is
a YAML-formatted file. If you are
unfamiliar with YAML, you should read about it before manually
editing this file.
All information about subscribed feeds is stored in a HOHOH named
'feeds
'. The full format is as follows:
feeds:
a_feed:
disp: Display Title From User
dormant: 0
feed: http://feed/url
force: 0
last: 1119248150
title: Actual Title From RSS Feed
ttl: 86400
Where the 'a_feed
' stanza is repeated, with appropriate
changes, for each subscribed feed. The meanings of the individual
values is:
time()
as of the feed's last fetching.See Section 4 for more information.
There is no interface provided for changing keybindings within
Olive. Not all functions can be rebound. The ones which can are
altered via a HOH named 'keys
' in the config file. An
example which creates custom bindings for the functions normally
assigned to the '[
' and ']
' keys is:
keys:
next: n
prev: p
Here is the list of bindable functions and their standard keys:
Function | Key | Description |
---|---|---|
prev | [ |
Go to previous story |
next | ] |
Go to next story |
mark | m |
Mark story read |
unmark | u |
Mark story unread (unmark story) |
star | s |
Toggle story starred/unstarred |
markall | M |
Mark all stories read |
unmarkall | U |
Mark all stories unread (unmark all) |
gpdn | ' ' (Space) |
Global story paging: pagedown |
gpup | - |
Global story paging: pageup |
focus | w |
Shift focus between list/story panes |
link | l |
Execute defined link command with story URL |
poll | p |
Poll for updated feeds |
force | P |
Force-poll feeds marked as forced |
filterf | F |
Filter story list to show only stories from flagged feeds |
filters | S |
Filter story list to show only starred stories |
Olive does not check for duplicate bindings or stomping on a prebound key without providing a replacement. Also, be aware that you may need to quote your choice of key if it is a YAML special character (see the YAML spec for more information).
Olive logs all warnings and fatal error messages (trapped or
otherwise) to a file named 'errors.log
'. On startup,
this file is copied to 'errors.log.1
' before being
overwritten, so there are logs for the past 2 runs available at any
time.
Error logs always start with a timestamp like this:
-- Starting up at 2005-05-22T16:58:11 --
After that, there is no standard or predictable format for the contents of the file.
Should Olive ever suddenly quit, or if you experience any problems or weird behavior, please look at the logfile(s) and file a bug (as per Section 1.5)
Olive does not operate upon the raw feeds it fetches over the
network. It processes them after they are retrieved and stores
the relevant data in a SQLite
database named 'story.db
'.
The schema of the database is as follows:
CREATE TABLE stories (id INTEGER PRIMARY KEY,
nick TEXT,
timestamp INT,
md5 TEXT,
read INT,
new INT,
link TEXT,
title TEXT,
desc TEXT);
Downloaded feeds and the data needed to perform tests for HTTP 304
status are stored in a subdirectory called
'feeds
'. Every feed you're subscribed to will have two
files there, a file named as a possibly modified form of the feed
nickname, and file with the same name as the first one, but with
".cache" appended.
mdxi@fornax:~$ ls .olive/feeds/ atc cnn_money groklaw mdxi rjbs atc.cache cnn_money.cache groklaw.cache mdxi.cache rjbs.cache bbc_news gloria kate olive robert bbc_news.cache gloria.cache kate.cache olive.cache robert.cache
The files with no extension hold the last downloaded copy of that
feed. The .cache
files hold HTTP header data needed to
check if the feed has been updated when it is polled next.
Files associated with a feed are unlinked when the feed is removed from your feed list.
$Id: dotdir.html 434 2007-02-07 05:04:51Z mdxi $