@@ -34,11 +34,11 @@ series-grouped-list) ;; Cache DB and Schemas (define DBFILE (build-path (current-project-root) "vitreous.sqlite")) -(define cache-conn (sqlite3-connect #:database DBFILE #:mode 'create)) +(define cache-conn (make-parameter (sqlite3-connect #:database DBFILE #:mode 'create))) (define current-plain-title (make-parameter "void")) (define-schema cache:article #:table "articles" ([id id/f #:primary-key #:auto-increment] @@ -97,23 +97,23 @@ ([html string/f] [published date/f] [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)) + (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 + (query-exec (cache-conn) (~> (from cache:article #:as a) (where (= a.page ,(format "~a" page))) delete))) (define (delete-notes! page) - (query-exec cache-conn + (query-exec (cache-conn) (~> (from cache:note #:as n) (where (= n.page ,(format "~a" page))) delete))) ;; @@ -179,11 +179,11 @@ (order-by ([a.published ,ord])) (project-onto listing-schema))) ;; Get all the a list of the HTML all the results in a query (define (listing-htmls list-query) - (for/list ([l (in-entities cache-conn list-query)]) + (for/list ([l (in-entities (cache-conn) list-query)]) (listing-html l))) ;; Return cached HTML of articles and/or notes, fenced within a style txexpr to prevent it being ;; escaped by ->html. See also: definition of `unfence` @@ -207,17 +207,17 @@ ;; ;; ~~~ Fetching series ~~~ ;; (define (series-grouped-list) - (~> (for/list ([row (in-entities cache-conn (from cache:series #:as s))]) row) + (~> (for/list ([row (in-entities (cache-conn) (from cache:series #:as s))]) row) (group-list-by cache:series-noun-plural _ string-ci=?))) ;; Preloads the SQLite cache with info about each series. ;; I may not actually need this but I’m leaving it for now. (define (preheat-series!) - (query-exec cache-conn + (query-exec (cache-conn) (~> (from cache:series #:as s) (where 1) delete)) (define series-rows (for/list ([series-pagenode (in-list (cdr (series-pagetree)))]) @@ -226,6 +226,6 @@ #:page series-pagenode #:title (hash-ref series-metas 'title) #:published (hash-ref series-metas 'published "") #:noun-plural (hash-ref series-metas 'noun-plural "") #:noun-singular (hash-ref series-metas 'noun-singular "")))) - (void (apply insert! cache-conn series-rows))) + (void (apply insert! (cache-conn) series-rows)))