git.fiddlerwoaroof.com
Browse code

feat: fill out sqlite importer

Edward authored on 14/04/2021 05:03:54
Showing 3 changed files
... ...
@@ -8,7 +8,8 @@
8 8
   :depends-on (:alexandria
9 9
                :uiop
10 10
                :serapeum
11
-               :fwoar-lisputils)
11
+               :fwoar-lisputils
12
+               :data-lens)
12 13
   :serial t
13 14
   :components ((:file "packages")
14 15
                (:file "parser")
... ...
@@ -7,7 +7,8 @@
7 7
   (:use :cl)
8 8
   (:export #:handle-begin
9 9
            #:handle-end
10
-           #:handle-property))
10
+           #:handle-property
11
+           #:process-ics))
11 12
 
12 13
 (defpackage :aion.build-tree
13 14
   (:use :cl)
... ...
@@ -27,16 +27,23 @@
27 27
                                                     (substitute #\- #\_
28 28
                                                                 (string it)))
29 29
                                                   (lines client))))
30
-                                     '(:X_APPLE_TRAVEL_ADVISORY_BEHAVIOR
31
-                                       :VEVENT :VALARM :RECURRENCE_ID
32
-                                       :ORGANIZER :LAST_MODIFIED
33
-                                       :EXDATE :CREATED :ATTENDEE
34
-                                       :ATTENDEE :ATTACH :CATEGORIES
35
-                                       :DESCRIPTION :DTEND :DTSTAMP
36
-                                       :DTSTART :GEO :LOCATION :RRULE
37
-                                       :SEQUENCE :STATUS :SUMMARY
38
-                                       :TRANSP :UID :URL
39
-                                       :X_ALT_DESC)))))
30
+                                     '(:GEO :UID :URL :TZID :CLASS
31
+                                       :DTEND :RRULE :ACTION :ATTACH
32
+                                       :EXDATE :METHOD :PRODID :STATUS
33
+                                       :TRANSP :TZNAME :VALARM :VEVENT
34
+                                       :CREATED :DTSTAMP :DTSTART
35
+                                       :SUMMARY :TRIGGER :VERSION
36
+                                       :ATTENDEE :CALSCALE :LOCATION
37
+                                       :SEQUENCE :ORGANIZER
38
+                                       :CATEGORIES :TZOFFSETTO
39
+                                       :X_ALT_DESC :DESCRIPTION
40
+                                       :ACKNOWLEDGED :TZOFFSETFROM
41
+                                       :X_WR_CALDESC :X_WR_CALNAME
42
+                                       :LAST_MODIFIED :RECURRENCE_ID
43
+                                       :X_WR_ALARMUID :X_WR_TIMEZONE
44
+                                       :X_LIC_LOCATION
45
+                                       :X_APPLE_DEFAULT_ALARM
46
+                                       :X_APPLE_TRAVEL_ADVISORY_BEHAVIOR)))))
40 47
     (multiple-value-bind (query params)
41 48
         (sxql:yield
42 49
          (sxql:insert-into :vevent
... ...
@@ -148,6 +155,19 @@
148 155
 
149 156
 (defun setup-sql ()
150 157
   (sxql:yield
158
+   (sxql:make-statement
159
+    :create-table '(:vevent :if-not-exists t)
160
+    (mapcar (lambda (it)
161
+              (sxql.clause:make-column-definition-clause it :type 'text))
162
+            '(:GEO :UID :URL :TZID :CLASS :DTEND :RRULE :ACTION :ATTACH :EXDATE :METHOD
163
+              :PRODID :STATUS :TRANSP :TZNAME :VALARM :VEVENT :CREATED :DTSTAMP :DTSTART
164
+              :SUMMARY :TRIGGER :VERSION :ATTENDEE :CALSCALE :LOCATION :SEQUENCE :ORGANIZER
165
+              :CATEGORIES :TZOFFSETTO :X_ALT_DESC :DESCRIPTION :ACKNOWLEDGED :TZOFFSETFROM
166
+              :X_WR_CALDESC :X_WR_CALNAME :LAST_MODIFIED :RECURRENCE_ID :X_WR_ALARMUID
167
+              :X_WR_TIMEZONE :X_LIC_LOCATION :X_APPLE_DEFAULT_ALARM
168
+              :X_APPLE_TRAVEL_ADVISORY_BEHAVIOR))
169
+    (sxql:primary-key '(:sequence :uid :recurrence_id)))
170
+   #+(or)
151 171
    (sxql:create-table (:vevent :if-not-exists t)
152 172
        ((:ATTACH :type 'text)
153 173
         (:ATTENDEE :type 'text)