aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-29 15:32:52 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-29 15:35:17 +0100
commitc3ed0230df578ce934289e3064b987ab86d602f2 (patch)
treedc740697f890a45563b089cc5bac93660bef8021
parentMove TTY input to end of loop. (diff)
downloadcalp-c3ed0230df578ce934289e3064b987ab86d602f2.tar.gz
calp-c3ed0230df578ce934289e3064b987ab86d602f2.tar.xz
Add summary-filter to SUMMARY field.
-rw-r--r--module/config.scm24
-rwxr-xr-xmodule/main.scm5
2 files changed, 27 insertions, 2 deletions
diff --git a/module/config.scm b/module/config.scm
index 3c6ebbb0..54cda06b 100644
--- a/module/config.scm
+++ b/module/config.scm
@@ -4,9 +4,31 @@
(use-modules (srfi srfi-26)
- (ice-9 ftw))
+ (srfi srfi-88)
+ (ice-9 ftw)
+ (ice-9 regex)
+ (ice-9 rdelim))
(define calendar-files
(let ((path (string-append (getenv "HOME") "/.calendars/")))
(map (cut string-append path <>)
(scandir path (lambda (str) (not (char=? #\. (string-ref str 0))))))))
+
+;;; TODO possibly replace with propper lookup
+(define my-courses
+ '((TSEA82 . "Datorteknik")
+ (TFYA19 . "Kvantdatorer")
+ (TATA42 . "Tvåvarren")
+ (TSRT04 . "Matlab")
+ (TDDC78 . "Paralellprogrammering")
+ (TDDB68 . "Pintos")))
+
+(define* (aref alist key optional: default)
+ (or (assoc-ref alist key) default key))
+
+
+(define (summary-filter ev str)
+ (regexp-substitute/global
+ #f "T[A-Z]{3}[0-9]{2}" str
+ 'pre (lambda (m) (aref my-courses (string->symbol (match:substring m))))
+ 'post))
diff --git a/module/main.scm b/module/main.scm
index 995e55a6..aae640ac 100755
--- a/module/main.scm
+++ b/module/main.scm
@@ -41,6 +41,8 @@
(define (now)
(date->time-utc (current-date)))
+(define (summary-filter _ str) str)
+
(define (main-loop regular-events repeating-events)
(define time (now))
(define cur-event 0)
@@ -76,7 +78,8 @@
(time->string (attr ev 'DTSTART) "~1 ~3") ; TODO show truncated string
(if (= i cur-event) "\x1b[7m" "")
(color-escape (attr (parent ev) 'COLOR))
- (trim-to-width (attr ev 'SUMMARY) 30)
+ ;; Summary filter is a hook for the user
+ (trim-to-width (summary-filter ev (attr ev 'SUMMARY)) 30)
STR-RESET
(trim-to-width
(or (attr ev 'LOCATION) "\x1b[1;30mINGEN LOKAL") 20)