Add simple searching
This commit is contained in:
parent
1d51bacd51
commit
d5dbe8ed27
1 changed files with 15 additions and 1 deletions
|
@ -74,6 +74,18 @@
|
||||||
bookmark-id tag-id)))
|
bookmark-id tag-id)))
|
||||||
tags)))
|
tags)))
|
||||||
|
|
||||||
|
(define (search-bookmarks db str)
|
||||||
|
(for-each-row print-row db #<<END
|
||||||
|
SELECT *
|
||||||
|
FROM bookmark
|
||||||
|
WHERE name LIKE ?
|
||||||
|
OR ? IN (SELECT name
|
||||||
|
FROM tag
|
||||||
|
JOIN bookmark_tag ON (tag_id = tag.rowid)
|
||||||
|
WHERE bookmark_id = bookmark.rowid)
|
||||||
|
END
|
||||||
|
(string-append "%" str "%") str))
|
||||||
|
|
||||||
;; Is STR a URL? Very naïve, assumes all URLs begin with either
|
;; Is STR a URL? Very naïve, assumes all URLs begin with either
|
||||||
;; `http://' or `https://', should be improved.
|
;; `http://' or `https://', should be improved.
|
||||||
(define (url-string? str)
|
(define (url-string? str)
|
||||||
|
@ -92,7 +104,7 @@
|
||||||
"--help, -h Display this help and exit~%"
|
"--help, -h Display this help and exit~%"
|
||||||
"--version, -v Output version information and exit~%")))
|
"--version, -v Output version information and exit~%")))
|
||||||
|
|
||||||
;; Parse command-line arguments
|
;; Parse "other" command-line arguments
|
||||||
(define (handle-regular-args args)
|
(define (handle-regular-args args)
|
||||||
(do ((arg (car args) (and (not (null? args))
|
(do ((arg (car args) (and (not (null? args))
|
||||||
(car args))))
|
(car args))))
|
||||||
|
@ -120,6 +132,8 @@
|
||||||
db (lambda ()
|
db (lambda ()
|
||||||
(add-bookmark
|
(add-bookmark
|
||||||
db (car args) (cadr args) (caddr args) (cdddr args)) #t)))
|
db (car args) (cadr args) (caddr args) (cdddr args)) #t)))
|
||||||
|
((string= (car args) "search")
|
||||||
|
(search-bookmarks db (cadr args)))
|
||||||
(else
|
(else
|
||||||
(handle-regular-args args)))
|
(handle-regular-args args)))
|
||||||
(finalize! db #t)))
|
(finalize! db #t)))
|
||||||
|
|
Loading…
Reference in a new issue