aboutsummaryrefslogtreecommitdiff
path: root/sx-inbox.el
blob: f58bee4b12a4f2c12fe7360c2c5e647e480e4f1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
p;;; sx-inbox.el --- Base question logic. -*- lexical-binding: t; -*-

;; Copyright (C) 2014  Artur Malabarba

;; Author: Artur Malabarba <bruce.connor.am@gmail.com>

;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:


;;; Code:

(require 'sx)
(require 'sx-filter)
(require 'sx-method)

(defvar sx-inbox-filter 
  '((inbox.answer_id
     inbox.body
     inbox.comment_id
     inbox.creation_date
     inbox.is_unread
     inbox.item_type
     inbox.link
     inbox.question_id
     inbox.site
     inbox.title)
    (site.logo_url
     site.audience
     site.icon_url
     site.high_resolution_icon_url
     site.site_state
     site.launch_date
     site.markdown_extensions
     site.related_sites))
  "Filter used when retrieving inbox items.")

(defun sx-inbox-get (&optional page keywords)
  "Get an array of inbox items for the current user.
Return an list of items.  Each item is an alist of properties
returned by the API.
See https://api.stackexchange.com/docs/types/inbox-item

KEYWORDS are added to the method call along with PAGE.

`sx-method-call' is used with `sx-inbox-filter'."
  (sx-method-call 'inbox
    :keywords keywords
    :filter sx-inbox-filter))

(provide 'sx-inbox)
;;; sx-inbox.el ends here

;; Local Variables:
;; indent-tabs-mode: nil
;; End: