From 697dcd24db570438c13ea381e628c06815b310e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Mon, 26 Jun 2023 21:48:16 +0200 Subject: [PATCH] Skip dokuwiki checks if no dokuwiki is loaded. --- src/mbase.scm | 58 ++++++++++++++++++++++++------------------- src/members-print.scm | 12 +++++---- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/mbase.scm b/src/mbase.scm index 8fab1da..a0aad69 100644 --- a/src/mbase.scm +++ b/src/mbase.scm @@ -314,32 +314,38 @@ ;; Adds dokuwiki information to all users found, returns new mbase ;; and list of remaining users. (define (mbase-merge-dokuwiki mb dw) - (let loop ((dw dw) - (mb mb) - (rem '())) - (if (null? dw) - (values mb rem) - (let* ((row (car dw)) - (username (car row)) - (mr (find-member-by-nick mb username)) - (groups (list-ref row 3)) - (email (list-ref row 2))) - (if mr - (let ((mid (brmember-id mr))) - (loop (cdr dw) - (mbase-update mb - (lambda (mr) - (eq? (brmember-id mr) mid)) - (lambda (mr) - (let ((dws (ldict-ref mr 'dokuwiki (make-ldict)))) - (brmember-set mr #:dokuwiki - (ldict-set - (ldict-set dws 'groups groups) - 'email email))))) - rem)) - (loop (cdr dw) - mb - (cons row rem))))))) + (if (null? dw) + (values (mbase-update mb + (lambda (mr) #t) + (lambda (mr) + (brmember-set mr #:dokuwiki #t))) + dw) + (let loop ((dw dw) + (mb mb) + (rem '())) + (if (null? dw) + (values mb rem) + (let* ((row (car dw)) + (username (car row)) + (mr (find-member-by-nick mb username)) + (groups (list-ref row 3)) + (email (list-ref row 2))) + (if mr + (let ((mid (brmember-id mr))) + (loop (cdr dw) + (mbase-update mb + (lambda (mr) + (eq? (brmember-id mr) mid)) + (lambda (mr) + (let ((dws (ldict-ref mr 'dokuwiki (make-ldict)))) + (brmember-set mr #:dokuwiki + (ldict-set + (ldict-set dws 'groups groups) + 'email email))))) + rem)) + (loop (cdr dw) + mb + (cons row rem)))))))) ;; Simple syntax wrapper (define-syntax with-mbase-progress% diff --git a/src/members-print.scm b/src/members-print.scm index 764216c..7e42a2a 100644 --- a/src/members-print.scm +++ b/src/members-print.scm @@ -136,11 +136,13 @@ (mailman (list (list "Mailing Lists" (string-intersperse (brmember-mailman mr) "\n")))) (dokuwiki (if (ldict-contains? mr 'dokuwiki) - (list (list "DokuWiki" - (format "Groups: ~A\nEmail: ~A" - (brmember-sub-ref mr 'dokuwiki 'groups) - (brmember-sub-ref mr 'dokuwiki 'email) - ))) + (if (eq? (ldict-ref mr 'dokuwiki) #t) + (list #f) + (list (list "DokuWiki" + (format "Groups: ~A\nEmail: ~A" + (brmember-sub-ref mr 'dokuwiki 'groups) + (brmember-sub-ref mr 'dokuwiki 'email) + )))) (list (list (ansi-string #:red "DokuWiki") (ansi-string #:red "---"))))) (result (filter identity (append head body mailman dokuwiki))))