Sub-nick matching.

This commit is contained in:
Dominik Pantůček 2023-04-02 19:25:04 +02:00
parent 952fd03f16
commit 48636fc965
3 changed files with 20 additions and 4 deletions

View file

@ -153,10 +153,17 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
(print "Member id " (-member-id-) " not found!")) (print "Member id " (-member-id-) " not found!"))
mr) mr)
(if (-member-nick-) (if (-member-nick-)
(let ((mr (find-member-by-nick MB (-member-nick-)))) (let ((mrs (find-members-by-nick MB (-member-nick-))))
(when (not mr) (cond ((null? mrs)
(print "Member nick " (-member-nick-) " not found!")) (newline)
mr) (print "Member nick " (-member-nick-) " not found!")
#f)
((> (length mrs) 1)
(newline)
(print "Found: " (member-records->string mrs))
#f)
(else
(car mrs))))
#f))) #f)))
;; ;;

View file

@ -31,6 +31,7 @@
load-members load-members
find-member-by-id find-member-by-id
find-member-by-nick find-member-by-nick
find-members-by-nick
list-members-ids list-members-ids
filter-members-by-predicate filter-members-by-predicate
list-members-nicks list-members-nicks
@ -113,6 +114,13 @@
'nick) 'nick)
nick)))) nick))))
;; Returns a list of members whose nick contains pat
(define (find-members-by-nick mb pat)
(filter-members-by-predicate
mb
(lambda (mr)
(substring-index pat (member-nick mr)))))
;; Returns all ids found in the database ;; Returns all ids found in the database
(define (list-members-ids mb) (define (list-members-ids mb)
(map (lambda (mr) (dict-ref mr 'id)) mb)) (map (lambda (mr) (dict-ref mr 'id)) mb))

View file

@ -32,6 +32,7 @@
print-member-info print-member-info
print-member-table print-member-table
print-member-source print-member-source
member-records->string
print-members-base-info print-members-base-info
print-members-base-table print-members-base-table
print-members-base-stats print-members-base-stats