X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-lsdb.el;h=bec570125310a50c461ed0ad057916fced656e29;hp=b477adc54771cc411fd6b4054bbbd13703b9ecca;hb=fe7eeb17a3b1cc9b6a5316aebae340cba1ede06d;hpb=6e197306e2641f25184045c73ca580f1f8f61ad7 diff --git a/lisp/riece-lsdb.el b/lisp/riece-lsdb.el index b477adc..bec5701 100644 --- a/lisp/riece-lsdb.el +++ b/lisp/riece-lsdb.el @@ -29,16 +29,25 @@ ;;; Code: +(require 'riece-identity) + (eval-when-compile (autoload 'lsdb-maybe-load-hash-tables "lsdb") + (autoload 'lsdb-rebuild-secondary-hash-tables "lsdb") (autoload 'lsdb-lookup-records "lsdb") (autoload 'lsdb-puthash "lsdb") (autoload 'lsdb-maphash "lsdb") (autoload 'lsdb-gethash "lsdb") - (autoload 'lsdb-display-records "lsdb")) + (autoload 'lsdb-display-records "lsdb") + (autoload 'lsdb-update-record "lsdb")) (defvar riece-lsdb-cache nil) +(defvar riece-lsdb-enabled nil) + +(defconst riece-lsdb-description + "Use LSDB (Lovely Sister Database)") + (defun riece-lsdb-update-cache (record) (let ((irc (cdr (assq 'irc record)))) (while irc @@ -59,6 +68,8 @@ (defun riece-lsdb-lookup-records (user) (lsdb-maybe-load-hash-tables) + (unless riece-lsdb-cache + (lsdb-rebuild-secondary-hash-tables)) (let ((names (lsdb-gethash (riece-format-identity user t) riece-lsdb-cache)) records) @@ -78,6 +89,7 @@ (lsdb-display-records records) (message "No entry for `%s'" (riece-format-identity user t))))) +(defvar lsdb-hash-table) (defun riece-lsdb-add-user (user full-name) (interactive (let ((completion-ignore-case t) @@ -104,6 +116,7 @@ "")) (list (cons 'irc (cons irc old))))))) +(defvar riece-command-mode-map) (defun riece-lsdb-insinuate () (require 'lsdb) (add-to-list 'lsdb-secondary-hash-tables @@ -111,11 +124,21 @@ (add-to-list 'lsdb-after-update-record-functions 'riece-lsdb-update-cache) (add-to-list 'lsdb-after-delete-record-functions - 'riece-lsdb-delete-cache) + 'riece-lsdb-delete-cache)) + +(defun riece-lsdb-enable () (define-key riece-command-mode-map "\C-c\C-ll" 'riece-lsdb-display-records) (define-key riece-command-mode-map - "\C-c\C-la" 'riece-lsdb-add-user)) + "\C-c\C-la" 'riece-lsdb-add-user) + (setq riece-lsdb-enabled t)) + +(defun riece-lsdb-disable () + (define-key riece-command-mode-map + "\C-c\C-ll" nil) + (define-key riece-command-mode-map + "\C-c\C-la" nil) + (setq riece-lsdb-enabled nil)) (provide 'riece-lsdb)