Find members by various means.
This commit is contained in:
parent
ba37d9019c
commit
77fd6cb53d
1 changed files with 21 additions and 9 deletions
|
@ -440,26 +440,37 @@
|
||||||
(expand-members-raw-index
|
(expand-members-raw-index
|
||||||
(load-members-raw-index))))
|
(load-members-raw-index))))
|
||||||
|
|
||||||
;; Gets member record by member key
|
;; Gets member based by generic predicate
|
||||||
(define (find-member-by-key mdb key val)
|
(define (find-member-by-predicate mdb pred)
|
||||||
(let loop ((mdb mdb))
|
(let loop ((mdb mdb))
|
||||||
(if (null? mdb)
|
(if (null? mdb)
|
||||||
#f
|
#f
|
||||||
(let ((mr (car mdb)))
|
(let ((mr (car mdb)))
|
||||||
(if (equal? (dict-ref mr key) val)
|
(if (pred mr)
|
||||||
mr
|
mr
|
||||||
(loop (cdr mdb)))))))
|
(loop (cdr mdb)))))))
|
||||||
|
|
||||||
|
;; Gets member record by member key
|
||||||
|
(define (find-member-by-key mdb key val)
|
||||||
|
(find-member-by-predicate
|
||||||
|
mdb
|
||||||
|
(lambda (mr)
|
||||||
|
(equal? (dict-ref mr key) val))))
|
||||||
|
|
||||||
;; Gets member record by member id (from file/symlink)
|
;; Gets member record by member id (from file/symlink)
|
||||||
(define (find-member-by-id mdb id)
|
(define (find-member-by-id mdb id)
|
||||||
(find-member-by-key mdb 'id id))
|
(find-member-by-key mdb 'id id))
|
||||||
|
|
||||||
;; Gets member record by member name (from file/symlink)
|
;; Gets member record by member name (from file/symlink)
|
||||||
(define (find-member-by-fname mb fname)
|
(define (find-member-by-fname mdb fname)
|
||||||
(find-member-by-key mdb 'name fname))
|
(find-member-by-key mdb 'name fname))
|
||||||
|
|
||||||
(define (find-member-by-nick mb nick)
|
;; Gets member record by member nick in member file the key 'nick
|
||||||
#f)
|
(define (find-member-by-nick mdb nick)
|
||||||
|
(find-member-by-predicate
|
||||||
|
mdb
|
||||||
|
(lambda (mr)
|
||||||
|
(equal? (dict-ref (dict-ref mr 'info) 'nick) nick))))
|
||||||
|
|
||||||
(define (list-members-ids mdb)
|
(define (list-members-ids mdb)
|
||||||
#f)
|
#f)
|
||||||
|
@ -487,7 +498,7 @@
|
||||||
|
|
||||||
;; Perform requested action
|
;; Perform requested action
|
||||||
(display "Loading members ")
|
(display "Loading members ")
|
||||||
(define mdb (load-members))
|
(define MDB (load-members))
|
||||||
(print " ok.")
|
(print " ok.")
|
||||||
(newline)
|
(newline)
|
||||||
|
|
||||||
|
@ -495,5 +506,6 @@
|
||||||
|
|
||||||
; (print (load-member-file "trimen"))
|
; (print (load-member-file "trimen"))
|
||||||
|
|
||||||
(print (find-member-by-id mdb 2803))
|
(print (find-member-by-id MDB 2803))
|
||||||
(print (find-member-by-fname mdb "joe"))
|
(print (find-member-by-fname MDB "joe"))
|
||||||
|
(print (find-member-by-nick MDB "joe"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue