Change the `avandu-categories' function to return a hash table of
title/id value pairs for each category from tt-rss. This makes it easier
to use it in some other places.
A lot of articles are HTML-based and the `shr' library, which is also
used by GNU, renders HTML well. It is also included with Emacs (at least
in v24.3+).
This is useful for functions that need to check something outside of
the "content" list of the result. Probably all of them should though.
* avandu.el (avandu--send-command-sync): New parameter: raw. Return
the content part of the results if RAW is nil, otherwise return the
results onmodified.
(avandu-login): Pass a RAW argument to `avandu--send-command-sync'.
* avandu.el (avandu-article-render-function): New defcustom.
(avandu-view-possibly-external):
(avandu-view-w3m): New functions.
(avandu-view-article): Call rendering function at the end so that
the buffer has been loaded and minor modes and such _should_ load
correctly.
* avandu.el (avandu--prep-params):
(avandu--send-command-async): New functions.
(avandu--send-command-sync): Renamed from `avandu--send-command'.
Use `avandu--prep-params' to prepare the data sent to the server.
(avandu-update-article):
(avandu-feed-catchup):
(avandu-logout): Use `avandu--send-command-async' to send data. We
should get a report on its success, but we don't need to work with
the result.
* avandu.el: Add Tiny Tiny RSS url to Commentary.
(avandu-article-title):
(avandu-article-author): New faces.
(avandu-html2text-command): New user option.
(avandu-article-button-map): Wrap a lambda around the call to
`avandu-mark-article-read'.
(avu-prop): New macro.
(avandu--get-session-id):
(avandu--get-status-id):
(avandu--send-command):
(avandu-logged-in-p):
(avandu-new-articles-count):
(avandu-tt-rss-api-level):
(avandu-tt-rss-version):
(avandu-overview): Use `avu-prop'.
(avandu--insert-article-title): Show the article screen when
activating an article button instead of showing its URL.
(avandu-categories):
(avandu-feeds):
(avandu-headlines): No more need to call `cdr' and `assq' on the
result of `avandu--send-command'.
(avandu-get-article): New function.
(avandu-mark-article-read): Just send a command to the server, don't
do anything with the UI.
(avandu-ui-mark-article-read): New function. Split off from
`avandu-mark-article-read'.
(avandu-article-mode): New major mode.
(avandu-view-article): New function.
* avandu.el (avandu--clear-data): Only use `clear-string' if
`avandu-password' is a string, otherwise just set it to nil.
(avandu--get-credentials):
(avandu--password): New functions.
(avandu-login): If either `avandu-user' or `avandu-password' is nil,
call `avandu--get-credentials' to fill them. Just pass along
`avandu-user' and use `avandu--password' to get the password.
* avandu.el (avandu-new-articles-count): Only show a message in the
echo area if it has been called interactively in any way.
(avandu-overview-mode): Set MODE-NAME to the format of
"Avandu:Overview[#]" where `#' is replaced by the number of unread
articles.
This command gets the api level from tt-rss, this doesn't serve any
purpose yet, but it could be used later-on to determine which features
are and aren't available.
Before, when attempting to log in, and failing, the username and
password were retained and subsequent attempts would also fail. Now
the data is deleted and new login requests will start fresh.
* avandu.el (avandu-entity-replacement-alist): An alist that keeps
track which titled entities should be replaced by which character.
(avandu-clean-text): New function.
(avandu--insert-article-excerpt): Don't run endless chains of
`replace-regexp-in-string', leave (almost) all cleanup to
`avandu-clean-text'. Don't print an excerpt if it is empty.
* avandu.el (avandu-overview-excerpt): New face.
(avandu--insert-feed-title): Replace `newline' with `insert-char' to
prevent newlines from continuing indentation.
(avandu--insert-article-title): Replace `newline' with
`insert-char'.
(avandu--insert-article-excerpt): New function.
(avandu-list): Ask tt-rss to send along an excerpt of each article
and print this excerpt after the article's title.