# Sample rawdog config file. Copy this into your ~/.rawdog/ directory, and edit
# it to suit your preferences.
# All paths in this file should be either absolute, or relative to your .rawdog
# directory.
# If you want to include another config file, then use "include FILENAME".

# Times in this file are specified as a value and a unit (for instance,
# "4h").  Units available are "s" (seconds), "m" (minutes), "h" (hours),
# "d" (days) and "w" (weeks). If no unit is specified, rawdog will
# assume minutes.
# Boolean (yes/no) values in this file are specified as "true" or "false".

# rawdog can be extended using plugin modules written in Python. This
# option specifies the directories to search for plugins to load. If a
# directory does not exist or cannot be read, it will be ignored.  This
# option must appear before any options that are implemented by plugins.
plugindirs plugins

# Whether to split rawdog's state amongst multiple files.
# If this is turned on, rawdog will use significantly less memory, but
# will do more disk IO -- probably a good idea if you read a lot of
# feeds.
splitstate false

# The maximum number of articles to show on the generated page.
# Set this to 0 for no limit.
maxarticles 200

# The maximum age of articles to show on the generated page.
# Set this to 0 for no limit.
maxage 0

# The age after which articles will be discarded if they do not appear
# in a feed. Set this to a larger value if you want your rawdog output
# to cover more than a day's worth of articles.
expireage 1d

# The minimum number of articles from each feed to keep around in the history.
# Set this to 0 to only keep articles that were returned the last time the feed
# was fetched. (If this is set to 0, or "currentonly" below is set to true,
# then rawdog will not send the RFC3229+feed "A-IM: feed" header when making
# HTTP requests, since it can't tell from the response to such a request
# whether any articles have been removed from the feed; this makes rawdog
# slightly less bandwidth-efficient.)
keepmin 20

# Whether to only display articles that are currently included in a feed
# (useful for "planet" pages where you only want to display the current
# articles from several feeds). If this is false, rawdog will keep a
# history of older articles.
currentonly false

# Whether to divide the articles up by day, writing a "dayformat" heading
# before each set.
daysections true

# The format to write day headings in. See "man strftime" for more
# information; for example:
# %A, %d %B           Wednesday, 21 January
# %Y-%m-%d            2004-01-21 (ISO 8601 format)
dayformat %A, %d %B

# Whether to divide the articles up by time, writing a "timeformat" heading
# before each set.
timesections true

# The format to write time headings in. For example:
# %H:%M               18:07 (ISO 8601 format)
# %I:%M %p            06:07 PM
timeformat %H:%M

# The format to display feed update and article times in. For example:
# %H:%M, %A, %d %B    18:07, Wednesday, 21 January
# %Y-%m-%d %H:%M      2004-01-21 18:07 (ISO 8601 format)
datetimeformat %H:%M, %A, %d %B

# The page template file to use, or "default" to use the built-in template
# (which is probably sufficient for most users). Use "rawdog -s page" to show
# the template currently in use as a starting-point for customisation.
# The following strings will be replaced in the output:
# __version__         The rawdog version in use
# __refresh__         The HTML 4 <meta http-equiv="refresh" ...> header
# __items__           The aggregated items
# __num_items__       The number of items on the page
# __feeds__           The feed list
# __num_feeds__       The number of feeds listed
# You can define additional strings using "define" in this config file; for
# example, if you say "define myname Adam Sampson", then "__myname__" will be
# replaced by "Adam Sampson" in the output.
pagetemplate default

# Similarly, the template used for each item shown. Use "rawdog -s item" to
# show the template currently in use as a starting-point for customisation.
# The following strings will be replaced in the output:
# __title__           The item title (as an HTML link, if possible)
# __title_no_link__   The item title (as text)
# __url__             The item's URL, or the empty string if it doesn't
#                     have one
# __guid__            The item's GUID, or the empty string if it doesn't
#                     have one
# __description__     The item's descriptive text, or the empty string
#                     if it doesn't have a description
# __date__            The item's date as provided by the feed
# __added__           The date the article was received by rawdog
# __hash__            A hash of the article (useful for summary pages)
#
# All of the __feed_X__ strings from feeditemtemplate below will also be
# expanded here, for the feed that the article came from.
#
# You can define additional strings on a per-feed basis by using the
# "define_X" feed option; see the description of "feed" below for more
# details.
#
# Simple conditional expansion is possible by saying something like
# "__if_items__ hello __endif__"; the text between the if and endif will
# only be included if __items__ would expand to something other than
# the empty string. Ifs can be nested, and __else__ is supported.
# (This also works for the other templates, but it's most useful here.)
itemtemplate default

# The template used to generate the feed list (__feeds__ above). Use "rawdog
# -s feedlist" to show the current template.
# The following strings will be replaced in the output:
# __feeditems__       The feed items
feedlisttemplate default

# The template used to generate each item in the feed list. Use "rawdog
# -s feeditem" to show the current template.
# The following strings will be replaced in the output:
# __feed_id__         The feed's title with non-alphanumeric characters
#                     (and HTML markup) removed (useful for per-feed
#                     styles); you can use the "id" feed option below to
#                     set a custom ID if you prefer
# __feed_hash__       A hash of the feed URL (useful for per-feed styles)
# __feed_title__      The feed title (as an HTML link, if possible)
# __feed_title_no_link__
#                     The feed title (as text)
# __feed_url__        The feed URL
# __feed_icon__       An "XML button" linking to the feed URL
# __feed_last_update__
#                     The time when the feed was last updated
# __feed_next_update__
#                     The time when the feed will next need updating
feeditemtemplate default

# Where to write the output HTML to. You should place style.css in the same
# directory. Specify this as "-" to write the HTML to stdout.
# (You will probably want to make this an absolute path, else rawdog will write
# to a file in your ~/.rawdog directory.)
outputfile output.html
#outputfile /home/you/public_html/rawdog.html

# Whether to use a <meta http-equiv="Refresh" ...> tag in the generated
# HTML to indicate that the page should be refreshed automatically. If
# this is turned on, then the page will refresh every N minutes, where N
# is the shortest feed period value specified below.
# (This works by controlling whether the default template includes
# __refresh__; if you use a custom template, __refresh__ is always
# available.)
userefresh true

# Whether to show the list of active feeds in the generated HTML.
# (This works by controlling whether the default template includes
# __feeds__; if you use a custom template, __feeds__ is always
# available.)
showfeeds true

# The number of concurrent threads that rawdog will use when fetching
# feeds -- i.e. the number of feeds that rawdog will attempt to fetch at
# the same time.  If you have a lot of feeds, setting this to be 20 or
# so will significantly speed up updates. If this is set to 1 (or
# fewer), rawdog will not start any additional threads at all.
numthreads 1

# The time that rawdog will wait before considering a feed unreachable
# when trying to connect. If you're getting lots of timeout errors and
# are on a slow connection, increase this.
# (Unlike other times in this file, this will be assumed to be in
# seconds if no unit is specified.)
timeout 30s

# Whether to ignore timeouts. If this is false, timeouts will be reported as
# errors; if this is true, rawdog will silently ignore them.
ignoretimeouts false

# Whether to show Python traceback messages. If this is true, rawdog will show
# a traceback message if an exception is thrown while fetching a feed; this is
# mostly useful for debugging rawdog or feedparser.
showtracebacks false

# Whether to display verbose status messages saying what rawdog's doing
# while it runs. Specifying -v or --verbose on the command line is
# equivalent to saying "verbose true" here.
verbose false

# Whether to attempt to fix bits of HTML that should start with a
# block-level element (such as article descriptions) by prepending "<p>"
# if they don't already start with a block-level element.
blocklevelhtml true

# Whether to attempt to turn feed-provided HTML into valid HTML.
# The most common problem that this solves is a non-closed element in an
# article causing formatting problems for the rest of the page.
# For this option to have any effect, you need to have PyTidyLib or mx.Tidy
# installed.
tidyhtml true

# Whether the articles displayed should be sorted first by the date
# provided in the feed (useful for "planet" pages, where you're
# displaying several feeds and want new articles to appear in the right
# chronological place). If this is false, then articles will first be
# sorted by the time that rawdog first saw them.
sortbyfeeddate false

# Whether to consider articles' unique IDs or GUIDs when updating rawdog's
# database. If you turn this off, then rawdog will create a new article in its
# database when it sees an updated version of an existing article in a feed.
# You probably want this turned on.
useids true

# The fields to use when detecting duplicate articles: "id" is the article's
# unique ID or GUID; "link" is the article's link. rawdog will find the first
# one of these that's present in the article, and ignore the article if it's
# seen an article before (in any feed) that had the same value.  For example,
# specifying "hideduplicates id link" will first look for id/guid, then for
# link.
# Note that some feeds use the same link for all their articles; if you specify
# "link" here, you will probably want to specify the "allowduplicates" feed
# argument (see below) for those feeds.
hideduplicates id

# The period to use for new feeds added to the config file via the -a|--add
# option.
newfeedperiod 3h

# Whether rawdog should automatically update this config file (and its
# internal state) if feed URLs change (for instance, if a feed URL
# results in a permanent HTTP redirect). If this is false, then rawdog
# will ask you to make the necessary change by hand.
changeconfig true

# The feeds you want to watch, in the format "feed period url [args]".
# The period is the minimum time between updates; if less than period
# minutes have passed, "rawdog update" will skip that feed. Specifying
# a period less than 30 minutes is considered to be bad manners; it is
# suggested that you make the period as long as possible.
# Arguments are optional, and can be given in two ways: either on the end of
# the "feed" line in the form "key=value", separated by spaces, or as extra
# indented lines after the feed line.
# possible arguments are:
# id                  Value for the __feed_id__ value in the item
#                     template for items in this feed (defaults to the
#                     feed title with non-alphanumeric characters and
#                     HTML markup removed)
# user                User for HTTP basic authentication
# password            Password for HTTP basic authentication
# format              "text" to indicate that the descriptions in this feed
#                     are unescaped plain text (rather than the usual HTML),
#                     and should be escaped and wrapped in a <pre> element
# X_proxy             Proxy URL for protocol X (for instance, "http_proxy")
# proxyuser           User for proxy basic authentication
# proxypassword       Password for proxy basic authentication
# allowduplicates     "true" to disable duplicate detection for this feed
# maxage              Override the global "maxage" value for this feed
# keepmin             Override the global "keepmin" value for this feed
# define_X            Equivalent to "define X ..." for item templates
#                     when displaying items from this feed
# You can provide a default set of arguments for all feeds using
# "feeddefaults". You can specify as many feeds as you like.
# (These examples have been commented out; remove the leading "#" on each line
# to use them.)
#feeddefaults
#	http_proxy http://proxy.example.com:3128/
#feed 1h http://example.com/feed.rss
#feed 30m http://example.com/feed2.rss id=newsfront
#feed 3h http://example.com/feed3.rss keepmin=5
#feed 3h http://example.com/secret.rss user=bob password=secret
#feed 3h http://example.com/broken.rss
#	format text
#	define_myclass broken
#feed 3h http://proxyfeed.example.com/proxied.rss http_proxy=http://localhost:1234/
#feed 3h http://dupsfeed.example.com/duplicated.rss allowduplicates=true

