]> gitweb @ CieloNegro.org - sugar.git/blobdiff - dot-files/_navi2ch/elisp/navi2ch-idle-parse_el
Auto commit by The Sugar System.
[sugar.git] / dot-files / _navi2ch / elisp / navi2ch-idle-parse_el
diff --git a/dot-files/_navi2ch/elisp/navi2ch-idle-parse_el b/dot-files/_navi2ch/elisp/navi2ch-idle-parse_el
new file mode 100644 (file)
index 0000000..fedfeb5
--- /dev/null
@@ -0,0 +1,23 @@
+(require 'navi2ch)
+
+(defvar navi2ch-article-parse-timer-id nil)
+(defvar navi2ch-article-parse-timer-interval 3)
+(defun navi2ch-article-parse-timer-setup ()
+  (when navi2ch-article-parse-timer-id
+    (cancel-timer navi2ch-article-parse-timer-id))
+  (setq navi2ch-article-parse-timer-id
+        (run-with-idle-timer navi2ch-article-parse-timer-interval
+                             t 'navi2ch-article-parse-messages-list)))
+(defun navi2ch-article-parse-messages-list ()
+  (with-current-buffer (navi2ch-article-current-buffer)
+    (catch 'loop
+      (dolist (x navi2ch-article-message-list)
+        (when (stringp (cdr x))
+          (setcdr x (cons (cons 'point nil)
+                          (navi2ch-article-parse-message (cdr x)))))
+        (when (input-pending-p) (throw 'loop nil)))
+      (cancel-timer navi2ch-article-parse-timer-id)
+      (setq navi2ch-article-parse-timer-id nil))))
+(add-hook 'navi2ch-article-mode-hook 'navi2ch-article-parse-timer-setup)
+
+(provide 'navi2ch-idle-parse)
\ No newline at end of file