aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sx-question.el29
-rw-r--r--sx.el28
2 files changed, 30 insertions, 27 deletions
diff --git a/sx-question.el b/sx-question.el
index cca789e..de07c94 100644
--- a/sx-question.el
+++ b/sx-question.el
@@ -26,41 +26,18 @@
(require 'sx-filter)
(require 'sx-method)
-(defvar sx-question-browse-filter
- '((question.body_markdown
- question.comments
- question.answers
- question.last_editor
- question.accepted_answer_id
- question.link
- question.upvoted
- question.downvoted
- user.display_name
- comment.owner
- comment.body_markdown
- comment.body
- comment.link
- answer.last_editor
- answer.link
- answer.owner
- answer.body_markdown
- answer.comments)
- (user.profile_image shallow_user.profile_image))
- "The filter applied when retrieving question data.
-See `sx-question-get-questions' and `sx-question-get-question'.")
-
(defun sx-question-get-questions (site &optional page)
"Get SITE questions. Return page PAGE (the first if nil).
Return a list of question. Each question is an alist of
properties returned by the API with an added (site SITE)
property.
-`sx-method-call' is used with `sx-question-browse-filter'."
+`sx-method-call' is used with `sx-browse-filter'."
(sx-method-call 'questions
:keywords `((page . ,page))
:site site
:auth t
- :filter sx-question-browse-filter))
+ :filter sx-browse-filter))
(defun sx-question-get-question (site question-id)
"Query SITE for a QUESTION-ID and return it.
@@ -69,7 +46,7 @@ If QUESTION-ID doesn't exist on SITE, raise an error."
:id id
:site site
:auth t
- :filter sx-question-browse-filter)))
+ :filter sx-browse-filter)))
(if (vectorp res)
(elt res 0)
(error "Couldn't find question %S in %S"
diff --git a/sx.el b/sx.el
index 7935ee0..12b08a1 100644
--- a/sx.el
+++ b/sx.el
@@ -46,6 +46,31 @@
(browse-url "https://github.com/vermiculus/stack-mode/issues/new"))
+;;; Browsing filter
+(defvar sx-browse-filter
+ '((question.body_markdown
+ question.comments
+ question.answers
+ question.last_editor
+ question.accepted_answer_id
+ question.link
+ question.upvoted
+ question.downvoted
+ user.display_name
+ comment.owner
+ comment.body_markdown
+ comment.body
+ comment.link
+ answer.last_editor
+ answer.link
+ answer.owner
+ answer.body_markdown
+ answer.comments)
+ (user.profile_image shallow_user.profile_image))
+ "The filter applied when retrieving question data.
+See `sx-question-get-questions' and `sx-question-get-question'.")
+
+
;;; Utility Functions
(defmacro sx-sorted-insert-skip-first (newelt list &optional predicate)
@@ -212,9 +237,10 @@ Status is a boolean."
(.answer_id "answers")
(.question_id "questions"))
:id (or .comment_id .answer_id .question_id)
- :submethod type
+ :submethod (concat type (unless status "/undo"))
:auth 'warn
:url-method "POST"
+ :filter sx-browse-filter
:site .site)))