Overview
Comment: | Prevent duplicate inserts in article cache |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3ab1b16f03d62930bcd07ce0ec04b41b |
User & Date: | joel on 2020-01-19 21:29:00 |
Other Links: | manifest | tags |
Context
2020-01-19
| ||
21:31 | Merge ignore-glob updates to trunk check-in: 233fdc64 user: joel tags: trunk | |
21:29 | Prevent duplicate inserts in article cache check-in: 3ab1b16f user: joel tags: trunk | |
20:54 | Makefile: turn on tidying; ‘all’→‘web’ check-in: c2036411 user: joel tags: trunk | |
Changes
Modified crystalize.rkt from [cb633ea2] to [08bca5d2].
96
97
98
99
100
101
102
103
104
105
106
107
108
109
...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
[series-page symbol/f]))
(define (init-cache-db!)
(create-table! cache-conn 'cache:article)
(create-table! cache-conn 'cache:note)
(create-table! cache-conn 'cache:series)
(create-table! cache-conn 'cache:index-entry))
;; Save an article and its notes (if any) to the database, and return the
;; rendered HTML of the complete article.
;;
(define (parse-and-cache-article! pagenode doc)
(define-values (doc-no-title maybe-title)
(splitf-txexpr doc (make-tag-predicate 'title)))
................................................................................
disp-note-id
(length note-txprs))]
[footer (html$-article-close footertext)]
[listing-short (html$-article-listing-short pagenode pubdate title-html)]
[notes-section-html (cache-notes! pagenode title-plain note-txprs)])
(cache-index-entries! pagenode doc) ; note original doc is used here
(current-plain-title title-plain)
(insert-one! cache-conn
(make-cache:article
#:page pagenode
#:title-plain title-plain
#:title-html-flow title-html
#:title-specified? title-specified?
#:published pubdate
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
...
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
[series-page symbol/f])) (define (init-cache-db!) (create-table! cache-conn 'cache:article) (create-table! cache-conn 'cache:note) (create-table! cache-conn 'cache:series) (create-table! cache-conn 'cache:index-entry)) (define (delete-article! page) (query-exec cache-conn (~> (from cache:article #:as a) (where (= a.page ,(format "~a" page))) delete))) (define (delete-notes! page) (query-exec cache-conn (~> (from cache:note #:as n) (where (= n.page ,(format "~a" page))) delete))) ;; Save an article and its notes (if any) to the database, and return the ;; rendered HTML of the complete article. ;; (define (parse-and-cache-article! pagenode doc) (define-values (doc-no-title maybe-title) (splitf-txexpr doc (make-tag-predicate 'title))) ................................................................................ disp-note-id (length note-txprs))] [footer (html$-article-close footertext)] [listing-short (html$-article-listing-short pagenode pubdate title-html)] [notes-section-html (cache-notes! pagenode title-plain note-txprs)]) (cache-index-entries! pagenode doc) ; note original doc is used here (current-plain-title title-plain) (delete-article! pagenode) (insert-one! cache-conn (make-cache:article #:page pagenode #:title-plain title-plain #:title-html-flow title-html #:title-specified? title-specified? #:published pubdate |