Actually merge the emails into base.
This commit is contained in:
parent
43aea708f9
commit
0f76514a46
3 changed files with 23 additions and 12 deletions
|
@ -153,7 +153,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
(newline))
|
(newline))
|
||||||
|
|
||||||
;; Load the members database (required for everything anyway)
|
;; Load the members database (required for everything anyway)
|
||||||
(define MB
|
(define MB0
|
||||||
(if (-action-)
|
(if (-action-)
|
||||||
(let ((mb (load-members (*members-directory*) #t)))
|
(let ((mb (load-members (*members-directory*) #t)))
|
||||||
(if (-needs-bank-)
|
(if (-needs-bank-)
|
||||||
|
@ -161,6 +161,12 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
mb))
|
mb))
|
||||||
#f))
|
#f))
|
||||||
|
|
||||||
|
;; Load ML(s)
|
||||||
|
(define internal-ml (load-mailman-list "internal"))
|
||||||
|
|
||||||
|
;; Merge
|
||||||
|
(define MB (members-base-merge-mailman MB0 internal-ml))
|
||||||
|
|
||||||
;; If a member is specified by either id or nick, get its record
|
;; If a member is specified by either id or nick, get its record
|
||||||
(define mr
|
(define mr
|
||||||
(if (-member-id-)
|
(if (-member-id-)
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
*mailman-bin*
|
*mailman-bin*
|
||||||
list-mailman-lists
|
list-mailman-lists
|
||||||
list-mailman-list-members
|
list-mailman-list-members
|
||||||
|
load-mailman-list
|
||||||
load-mailman-lists
|
load-mailman-lists
|
||||||
find-mailman-list
|
find-mailman-list
|
||||||
mailman-list-name
|
mailman-list-name
|
||||||
|
@ -78,7 +79,9 @@
|
||||||
(define mailman-list-name car)
|
(define mailman-list-name car)
|
||||||
(define mailman-list-members cdr)
|
(define mailman-list-members cdr)
|
||||||
|
|
||||||
;; Loads a single mailman list as mailman structure
|
;; Loads a single mailman list as mailman structure, if
|
||||||
|
;; unsuccessfull, returns only a list with ML name and no member
|
||||||
|
;; emails.
|
||||||
(define (load-mailman-list name)
|
(define (load-mailman-list name)
|
||||||
(make-mailman-list name
|
(make-mailman-list name
|
||||||
(list-mailman-list-members name)))
|
(list-mailman-list-members name)))
|
||||||
|
|
|
@ -244,15 +244,17 @@
|
||||||
string-ci<?))
|
string-ci<?))
|
||||||
|
|
||||||
;; Merges given ML members into members base
|
;; Merges given ML members into members base
|
||||||
(define (members-base-merge-mailman mb listname emails)
|
(define (members-base-merge-mailman mb ml)
|
||||||
|
(let ((listname (car ml))
|
||||||
|
(emails (cdr ml)))
|
||||||
(foldl (lambda (mb email)
|
(foldl (lambda (mb email)
|
||||||
(members-base-update mb
|
(members-base-update mb
|
||||||
(lambda (mr)
|
(lambda (mr)
|
||||||
(equal? (member-record-info 'mail)
|
(equal? (member-record-info 'mail)
|
||||||
email))
|
email))
|
||||||
(lambda (mr)
|
(lambda (mr)
|
||||||
(member-record-add-mailman mr listname))))
|
(member-add-mailman mr listname))))
|
||||||
mb
|
mb
|
||||||
emails))
|
emails)))
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue