• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/gnus/

Lines Matching +refs:gnus +refs:delay +refs:group

0 ;;; gnus-delay.el --- Delayed posting of articles
31 ;; * `gnus-delay-send-queue' barfs when group does not exist.
32 ;; * Integrate gnus-delay.el into the rest of Gnus automatically. How
34 ;; `gnus-delay-initialize' does. But in which files?
39 (require 'gnus-draft)
42 (defgroup gnus-delay nil
45 :group 'gnus)
47 (defcustom gnus-delay-group "delayed"
50 :group 'gnus-delay)
52 (defcustom gnus-delay-header "X-Gnus-Delayed"
55 :group 'gnus-delay)
57 (defcustom gnus-delay-default-delay "3d"
58 "*Default length of delay."
60 :group 'gnus-delay)
62 (defcustom gnus-delay-default-hour 8
66 :group 'gnus-delay)
69 (defun gnus-delay-article (delay)
77 variable `gnus-delay-default-hour', minute and second are zero.
83 "Target date (YYYY-MM-DD) or length of delay (units in [mhdwMY]): "
84 gnus-delay-default-delay)))
88 delay)
89 (setq year (string-to-number (match-string 1 delay))
90 month (string-to-number (match-string 2 delay))
91 day (string-to-number (match-string 3 delay)))
95 gnus-delay-default-hour
97 ((string-match "\\([0-9]+\\):\\([0-9]+\\)" delay)
98 (setq hour (string-to-number (match-string 1 delay))
99 minute (string-to-number (match-string 2 delay)))
114 ((string-match "\\([0-9]+\\)\\s-*\\([mhdwMY]\\)" delay)
115 (setq num (match-string 1 delay))
116 (setq unit (match-string 2 delay))
120 (setq delay (* num 60 60 24 365)))
122 (setq delay (* num 60 60 24 30)))
124 (setq delay (* num 60 60 24 7)))
126 (setq delay (* num 60 60 24)))
128 (setq delay (* num 60 60)))
130 (setq delay (* num 60))))
133 delay)))))
134 (t (error "Malformed delay `%s'" delay)))
135 (message-add-header (format "%s: %s" gnus-delay-header deadline)))
137 ;; If group does not exist, create it.
138 (let ((group (format "nndraft:%s" gnus-delay-group)))
139 (gnus-agent-queue-setup gnus-delay-group))
141 (nndraft-request-associate-buffer gnus-delay-group)
147 (defun gnus-delay-send-queue ()
151 (let* ((group (format "nndraft:%s" gnus-delay-group))
155 (when (gnus-gethash group gnus-newsrc-hashtb)
156 (gnus-activate-group group)
159 (message-remove-header gnus-delay-header)))
162 (gnus-request-head article group)
166 (concat "^" (regexp-quote gnus-delay-header) ":\\s-+")
176 (gnus-draft-send article group)
181 (defun gnus-delay-initialize (&optional no-keymap no-check)
182 "Initialize the gnus-delay package.
183 This sets up a key binding in `message-mode' to delay a message.
189 (add-hook 'gnus-get-new-news-hook 'gnus-delay-send-queue)))
191 (provide 'gnus-delay)
198 ;;; gnus-delay.el ends here