]> Sergey Matveev's repositories - feeder.git/blobdiff - doc/usage.texi
Various refactoring and parametrizing
[feeder.git] / doc / usage.texi
index b7093104240788e2ea013c3e650d6e1002ecf420..328201a42f8cd1f0b2b23751d84a240d03bedbc6 100644 (file)
@@ -28,7 +28,7 @@ $ echo http://example.com/feed.atom > feeds/my_first_feed/url
 @end example
 
 or convert Newsboat @file{urls} file (containing many lines with URLs)
-with @file{urls2feeds.zsh} to subdirectories hierarchy:
+with @command{urls2feeds.zsh} to subdirectories hierarchy:
 
 @example
 $ ./urls2feeds.zsh < ~/.newsboat/urls
@@ -36,9 +36,16 @@ $ cat feeds/blog.stargrave.org_russian_feed.atom/url
 http://blog.stargrave.org/russian/feed.atom
 @end example
 
-@file{urls2feeds.zsh} won't touch already existing directories and will
+@command{urls2feeds.zsh} won't touch already existing directories and will
 warn if some of them disappeared from @file{urls}.
 
+@item Check configuration options
+
+@file{cmd/env.rc} contains list of various options you can override by
+environment variables, like @command{curl}, @command{wget},
+@command{zstd}, @command{parallel} command invocations,
+@code{User-Agent}, number of download/parse jobs run in parallel and so on.
+
 @item Download your feed(s) data
 
 @example
@@ -58,6 +65,14 @@ $ cmd/parse.sh feeds/blog.stargrave.org_russian_feed.atom
 $ ./feeds-parse.zsh # to parse all feeds in parallel
 @end example
 
+@item Download-n-parse
+
+You can also download and parse the feeds immediately:
+
+@example
+$ ./feeds-dnp.zsh
+@end example
+
 @item Quick overview of the news:
 
 @example
@@ -74,13 +89,20 @@ www.darkside.ru_news_rss: 5
 @item Run Mutt
 
 @example
-$ ./feeds-browse.zsh
+$ ./feeds-browse.sh
 @end example
 
 That will read all feeds titles and create @file{mutt.rc} sourceable
 configuration file with predefined helpers and @code{mailboxes}
-commands. Mutt will be started in mailboxes browser mode (I will skip
-many entries):
+commands.
+
+That configuration contains @code{auto_view text/html}, that expects
+proper @file{mailcap} configuration file with @code{text/html} entry to
+exists. Mutt has some built-in default search paths for, but you can
+override them with @env{$MAILCAPS} environment variable. There is
+example @file{contrib/mailcap}.
+
+Mutt will be started in mailboxes browser mode (I will skip many entries):
 
 @verbatim
   1   N [  1|101] 2021-02-17 20:41 Cryptology ePrint Archive/
@@ -115,6 +137,12 @@ And again this is made for convenience. It will mark both new
 (@strong{N}) and old-but-unread (@strong{O}) messages as read. You will
 see left tag-marks near each message to understand what was touched.
 
+@item Press @code{o} to open links and enclosures URLs
+
+Do it in pager mode and you message will be piped to
+@command{cmd/x-urlview.sh}, that will show all @code{X-URL}
+and @code{X-Enclosure} links.
+
 @item Index your messages
 
 @example
@@ -151,16 +179,21 @@ message flags display and adding name of the feed in parenthesis.
 
 @item Cleanup excess number of messages
 
+By default (@env{$FEEDER_MAX_ITEMS}) only 100 entries are processed.
+Parser only appends them, but does not remove obsolete ones.
+
 @example
 $ ./feeds-clear.zsh
+$ cmd/clear.zsh feeds/FEED # to clear single feed
 @end example
 
-That will remove all messages in all feeds @file{cur/} directory that is
-not first hundred of ones, ordered by @code{mtime}. Pay attention that
-@file{new/} directory is not touched, so you won't loose completely new
-and unread messages when you are on vacation and left @command{cron}-ed
-workers. @command{cmd/feed2mdir/feed2mdir} command by default has
-@option{-max-entries 100} option set.
+will clear everything exceeding the quantity limit. You can set that
+limit on per-feed basis. For example @code{echo 50 > feed/FEED/max}.
+0 means no limit and keep all the messages.
+
+Pay attention that @file{new/} directory is not touched, so you won't
+loose completely new and unread messages when you are on vacation and
+left @command{cron}-ed workers.
 
 @item If you want to clean download state
 
@@ -174,22 +207,31 @@ $ cmd/download-clean.sh feed/FEED
 Many feeds include links to so-called enclosures, like audio files for
 podcasts. While you mail is not processed by MUA, its @file{new/}
 messages still there, you can run enclosure downloading process, that
-uses @url{https://www.gnu.org/software/wget/, GNU Wget}. Specify the
-directory where your enclosures should be placed. Each enclosure's
-filename is more or less filesystem-friendly with the current timestamp
-in it.
+uses @url{https://www.gnu.org/software/wget/, GNU Wget}. Each
+enclosure's filename is more or less filesystem-friendly with the
+current timestamp in it.
 
 @example
-$ mkdir path/to/enclosures
-$ ./feeds-encs.zsh path/to/enclosures
+$ ./feeds-encs.zsh
 [...]
-traffic.libsyn.com_monsterfeet_grue_018.mp3-20220218-152822
+monsterfeet.com_grue.rss/encs/20220218-152822-traffic.libsyn.com_monsterfeet_grue_018.mp3
+www.astronews.ru_astronews.xml/encs/20220219-115710-www.astronews.ru_news_2022_20220216125238.jpg
 [...]
-$ file path/to/enclosures/traffic.libsyn.com_monsterfeet_grue_018.mp3-20220218-152822
-path/to/...: Audio file with ID3 version 2.2.0, contains:MPEG ADTS, layer III, v1,  96 kbps, 44.1 kHz, Monaural
+$ file feeds/**/encs/*/
+monsterfeet.com_grue.rss/encs/20220218-152822-traffic.libsyn.com_monsterfeet_grue_018.mp3:
+  Audio file with ID3 version 2.2.0, contains:MPEG ADTS, layer III, v1,  96 kbps, 44.1 kHz, Monaural
+www.astronews.ru_astronews.xml/encs/20220219-115710-www.astronews.ru_news_2022_20220216125238.jpg:
+  JPEG image data, JFIF standard 1.01, ...
 @end example
 
-@command{feeds-encs.zsh} do not parallelize jobs, because enclosure are
-often heavy enough to satiate your Internet link.
+@command{feeds-encs.zsh} does not parallelize jobs, because enclosure are
+often heavy enough to satiate your Internet link. @command{wget}'s
+progress is also printed both to stderr and @file{feeds/FEED/encs.log}.
+
+Of course you can also download only single feed's enclosures:
+
+@example
+$ cmd/encs.zsh path/to/FEED [optional overriden destination directory]
+@end example
 
 @end table