summaryrefslogtreecommitdiff
path: root/src/gizmo/wasp-biblicality.el
diff options
context:
space:
mode:
Diffstat (limited to 'src/gizmo/wasp-biblicality.el')
-rw-r--r--src/gizmo/wasp-biblicality.el70
1 files changed, 40 insertions, 30 deletions
diff --git a/src/gizmo/wasp-biblicality.el b/src/gizmo/wasp-biblicality.el
index 9b178bbc..b7c46ed8 100644
--- a/src/gizmo/wasp-biblicality.el
+++ b/src/gizmo/wasp-biblicality.el
@@ -11,16 +11,24 @@
(defvar w/bible-table nil
"Hash table mapping (lowercased) words in the Bible to occurences.")
+(defun w/bible-canonize (user)
+ "Add USER to the bible 1000 times."
+ (w/append-file
+ (s-concat "\n" (s-repeat 1000 (s-concat user " ")))
+ (w/asset "bible.txt"))
+ (ht-set! w/bible-table user 1000))
+
(defun w/populate-bible-table ()
"Populate `w/bible-table' from the Bible text file."
- (let* ((bible-string (s-downcase (w/slurp (w/asset "bible.txt"))))
- (bible-string-nosyms (replace-regexp-in-string "[^[:alpha:]]" " " bible-string))
- (bible-words (s-split-words bible-string-nosyms))
- (ret (ht-create)))
- (--each bible-words
- (let ((old (ht-get ret it)))
- (ht-set! ret it (+ 1 (or old 0)))))
- (setf w/bible-table ret)))
+ (unless w/bible-table
+ (let* ((bible-string (s-downcase (w/slurp (w/asset "bible.txt"))))
+ (bible-string-nosyms (replace-regexp-in-string "[^[:alpha:]]" " " bible-string))
+ (bible-words (s-split-words bible-string-nosyms))
+ (ret (ht-create)))
+ (--each bible-words
+ (let ((old (ht-get ret it)))
+ (ht-set! ret it (+ 1 (or old 0)))))
+ (setf w/bible-table ret))))
(defun w/bible-word-score (word)
"Return a number between 0.0 and 1.0 representing how biblical WORD is."
@@ -42,28 +50,30 @@
(defun w/bible-colorize-sentence (sen)
"Propertize SEN with colors representing word biblicality."
- (let ((ret-score-total 0.0)
- (ret-score-count 0))
- (save-excursion
- (with-temp-buffer
- (insert sen)
- (goto-char (point-min))
- (while (not (eobp))
- (let ((at-word (bounds-of-thing-at-point 'word)))
- (when at-word
- (let* ((word (buffer-substring (car at-word) (cdr at-word)))
- (score (w/bible-word-score word))
- (color (w/bible-word-color word)))
- (setq ret-score-total (+ ret-score-total score))
- (cl-incf ret-score-count)
- (add-text-properties
- (car at-word) (cdr at-word)
- `(face (:foreground ,color))
- )
- (goto-char (cdr at-word))))
- (when (not (eobp))
- (forward-char 1))))
- (cons (buffer-string) (/ ret-score-total ret-score-count))))))
+ (if w/bible-table
+ (let ((ret-score-total 0.0)
+ (ret-score-count 0))
+ (save-excursion
+ (with-temp-buffer
+ (insert sen)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (let ((at-word (bounds-of-thing-at-point 'word)))
+ (when at-word
+ (let* ((word (buffer-substring (car at-word) (cdr at-word)))
+ (score (w/bible-word-score word))
+ (color (w/bible-word-color word)))
+ (setq ret-score-total (+ ret-score-total score))
+ (cl-incf ret-score-count)
+ (add-text-properties
+ (car at-word) (cdr at-word)
+ `(face (:foreground ,color))
+ )
+ (goto-char (cdr at-word))))
+ (when (not (eobp))
+ (forward-char 1))))
+ (cons (buffer-string) (/ ret-score-total ret-score-count)))))
+ (cons sen 0.0)))
(provide 'wasp-biblicality)
;;; wasp-biblicality.el ends here