Add category completion to feed subscription
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.
This commit is contained in:
parent
9297b07df1
commit
0c818bfc59
1 changed files with 16 additions and 6 deletions
22
avandu.el
22
avandu.el
|
@ -447,9 +447,14 @@ in which case the result is returned as-is."
|
||||||
|
|
||||||
If UNREAD is non-nil only get categories with feeds with unread
|
If UNREAD is non-nil only get categories with feeds with unread
|
||||||
articles in them."
|
articles in them."
|
||||||
(avandu--send-command-sync
|
(let ((hash (make-hash-table :test 'equal)))
|
||||||
`((op . "getCategories")
|
(mapc (lambda (category)
|
||||||
,@(when unread `((unread_only . ,unread))))))
|
(setf (gethash (cdr (assq 'title category)) hash)
|
||||||
|
(cdr (assq 'id category))))
|
||||||
|
(avandu--send-command-sync
|
||||||
|
`((op . "getCategories")
|
||||||
|
,@(when unread `((unread_only . ,unread))))))
|
||||||
|
hash))
|
||||||
|
|
||||||
(defun avandu-feeds (&optional category unread limit offset)
|
(defun avandu-feeds (&optional category unread limit offset)
|
||||||
"Get the subscribed feeds.
|
"Get the subscribed feeds.
|
||||||
|
@ -720,12 +725,17 @@ If BUTTON is nil, try to use a button at `point'."
|
||||||
version))
|
version))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun avandu-subscribe-to-feed (url)
|
(defun avandu-subscribe-to-feed (url category)
|
||||||
"Subscribe to the feed at URL optionally putting it in CATEGORY."
|
"Subscribe to the feed at URL optionally putting it in CATEGORY."
|
||||||
(interactive "MUrl: ")
|
(interactive (let ((categories (avandu-categories)))
|
||||||
|
(list (read-from-minibuffer "URL: ")
|
||||||
|
(gethash (completing-read "Category: "
|
||||||
|
categories nil t)
|
||||||
|
categories))))
|
||||||
(let ((status (avu-prop (avu-prop (avandu--send-command-sync
|
(let ((status (avu-prop (avu-prop (avandu--send-command-sync
|
||||||
`((op . "subscribeToFeed")
|
`((op . "subscribeToFeed")
|
||||||
(feed_url . ,url)))
|
(feed_url . ,url)
|
||||||
|
(category_id . ,category)))
|
||||||
status)
|
status)
|
||||||
code)))
|
code)))
|
||||||
(if (= status 1)
|
(if (= status 1)
|
||||||
|
|
Loading…
Reference in a new issue