aboutsummaryrefslogtreecommitdiff
path: root/sx-site.el
diff options
context:
space:
mode:
authorSean Allred <code@seanallred.com>2014-11-14 22:03:31 -0500
committerSean Allred <code@seanallred.com>2014-11-14 22:03:31 -0500
commit6733365df0eb86eff433a9c8f80b32832c426e53 (patch)
treea8091b37b285e3281511da306e96b94b1742778d /sx-site.el
parent3cb483821a9c7e852324af224b93dca4bd855b03 (diff)
parent7881572c09281785c1d0303d13305b583b3803cd (diff)
Merge pull request #53 from vermiculus/network-list
Smart caching
Diffstat (limited to 'sx-site.el')
-rw-r--r--sx-site.el45
1 files changed, 41 insertions, 4 deletions
diff --git a/sx-site.el b/sx-site.el
index 8775542..6bef91f 100644
--- a/sx-site.el
+++ b/sx-site.el
@@ -1,4 +1,4 @@
-;;; sx-site.el --- site functions
+;;; sx-site.el --- browsing sites -*- lexical-binding: t; -*-
;; Copyright (C) 2014 Sean Allred
@@ -19,16 +19,53 @@
;;; Commentary:
-;;
+;;
;;; Code:
-;;; @TODO use new caching system implemented in branch `network-list'
+(require 'sx-method)
+(require 'sx-cache)
+
+(defvar sx-site-browse-filter
+ '((.backoff
+ .error_id
+ .error_message
+ .error_name
+ .has_more
+ .items
+ .quota_max
+ .quota_remaining
+ site.site_type
+ site.name
+ site.site_url
+ site.api_site_parameter
+ site.related_sites
+ related_site.api_site_parameter
+ related_site.relation)
+ nil
+ none))
+
+(defun sx-site--get-site-list ()
+ (sx-cache-get
+ 'site-list
+ '(sx-method-call
+ "sites" '((pagesize . 999))
+ sx-site-browse-filter)))
+
+(defcustom sx-site-favorites
+ nil
+ "Favorite sites."
+ :group 'sx-site)
+
(defun sx-site-get-api-tokens ()
"Return a list of all known site tokens."
(mapcar
(lambda (site) (cdr (assoc 'api_site_parameter site)))
- (sx-method-call "sites" '((pagesize . 9999)))))
+ (sx-site--get-site-list)))
(provide 'sx-site)
;;; sx-site.el ends here
+
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; End: