Browse code
chore: cache data locally
Ed Langley authored on 17/04/2020 07:59:50
Showing 3 changed files
Showing 3 changed files
... | ... |
@@ -43,9 +43,9 @@ |
43 | 43 |
params))))))) |
44 | 44 |
|
45 | 45 |
(defun start (app) |
46 |
- (setf (handler app) |
|
47 |
- (clack:clackup (app app))) |
|
48 |
- app) |
|
46 |
+ (prog1 app |
|
47 |
+ (setf (handler app) |
|
48 |
+ (clack:clackup (app app))))) |
|
49 | 49 |
|
50 | 50 |
(defvar *app*) |
51 | 51 |
|
... | ... |
@@ -61,4 +61,4 @@ |
61 | 61 |
(feed-reference :techcrunch "https://techcrunch.com/feed/") |
62 | 62 |
(plump-cleaner :coding-horror "http://feeds.feedburner.com/codinghorror") |
63 | 63 |
(feed-reference :daring-fireball "https://daringfireball.net/feeds/main"))))) |
64 |
- *app*))) |
|
64 |
+ (araneus:routes *app*)))) |
... | ... |
@@ -5,7 +5,17 @@ |
5 | 5 |
|
6 | 6 |
(fw.lu:defclass+ feed-reference () |
7 | 7 |
((%key :initarg :key :reader feed-key) |
8 |
- (%url :initarg :url :reader feed-url))) |
|
8 |
+ (%url :initarg :url :reader feed-url) |
|
9 |
+ (%data))) |
|
10 |
+ |
|
11 |
+(defgeneric refresh-data (feed-reference) |
|
12 |
+ (:method ((feed-reference feed-reference)) |
|
13 |
+ (setf (slot-value feed-reference '%data) |
|
14 |
+ (alimenta.pull-feed:pull-feed |
|
15 |
+ (feed-url feed-reference))))) |
|
16 |
+ |
|
17 |
+(defmethod slot-unbound (_ (instance feed-reference) (slot-name (eql '%data))) |
|
18 |
+ (refresh-data instance)) |
|
9 | 19 |
|
10 | 20 |
(fw.lu:defclass+ plump-cleaner |
11 | 21 |
((feed-reference (key url))) |
... | ... |
@@ -13,7 +23,7 @@ |
13 | 23 |
|
14 | 24 |
(defgeneric resolve-feed-reference (reference) |
15 | 25 |
(:method ((r feed-reference)) |
16 |
- (alimenta.pull-feed:pull-feed (feed-url r)))) |
|
26 |
+ (slot-value r '%data))) |
|
17 | 27 |
|
18 | 28 |
(defgeneric prepare-feed-item-description (reference item) |
19 | 29 |
(:method ((r feed-reference) (item alimenta:item)) |
... | ... |
@@ -21,7 +31,6 @@ |
21 | 31 |
(:method ((r plump-cleaner) (item alimenta:item)) |
22 | 32 |
(let ((description (alimenta:description item))) |
23 | 33 |
(when description |
24 |
- (format t "~&aaaaa~%") |
|
25 | 34 |
(plump:text |
26 | 35 |
(plump:parse |
27 | 36 |
description)))))) |
... | ... |
@@ -23,7 +23,7 @@ |
23 | 23 |
(:file "utils" :depends-on ("package")) |
24 | 24 |
(:file "default-layout") |
25 | 25 |
(:file "model") |
26 |
- (:file "rss-render" :depends-on "model") |
|
26 |
+ (:file "rss-render" :depends-on ("model")) |
|
27 | 27 |
(:file "ui" :depends-on ("package")) |
28 | 28 |
(:file "view" :depends-on ("package" "ui" "default-layout" "rss-render" "model")) |
29 | 29 |
(:file "main" :depends-on ("package" "utils" "view" "model")))) |