lisp/my-gnus.el
changeset 1 a234a7579958
equal deleted inserted replaced
0:df7496e40bee 1:a234a7579958
       
     1 (setq mm-coding-system-priorities
       
     2       '(iso-latin-1 iso-latin-9))
       
     3 
       
     4 (defun local-nnmail-match-expiry  (newsgroup)
       
     5   "Return default expiry for different newsgroup."
       
     6   (cond ((string-match "archives" newsgroup) 'never)
       
     7         ((string-match "sentmail" newsgroup) 'never)
       
     8         ((string-match "postponed" newsgroup) 'never)
       
     9         ((string-match "debian" newsgroup) 7)
       
    10         ((string-match "jabber" newsgroup) 7)
       
    11         ((string-match "gnucash" newsgroup) 7)
       
    12         ((string-match "egroups" newsgroup) 7)
       
    13         ((string-match "emacs.ding" newsgroup) 7)
       
    14         ((string-match "spam" newsgroup) 1)
       
    15         (t 31)))
       
    16 
       
    17 (defvar local-signature-alist nil)
       
    18 (setq local-signature-alist 
       
    19       '(("default" . (("name" . "Fabien Niñoles")
       
    20                       ("title" . "")
       
    21                       ("email" . "fabien@tzone.org")
       
    22                       ("web" . "http://www.tzone.org")
       
    23                       ("key" . "C15D FE9E BB35 F596 127F  BF7D 8F1F DFC9 BCE0 9436")))
       
    24     ("debian" . (("email" . "fabien@debian.org")
       
    25                  ("web" . "http://www.debian.org")
       
    26                  ("title" . "Debian Maintainer")))
       
    27     ("clef" . (("email" . "veneur@tzone.org")
       
    28                ("web" . "http://harmonies.tzone.org")
       
    29                ("title" . "Chevalier de la Loge des Terres de l'Aube")
       
    30                ("name" . "Le Veneur Gris")))
       
    31     ("hdf" . (("email" . "veneur@tzone.org")
       
    32                ("web" . "http://harmonies.tzone.org")
       
    33                ("title" . "Chevalier Servant de Sa Dame")
       
    34                ("name" . "Le Veneur Gris")))
       
    35     ("nephilim" . (("email" . "coeurdelune@nephilim-rpg.com")
       
    36                    ("name" . "Coeur de Lune")
       
    37                    ("title" . "Zéphir orphelin")
       
    38                    ("web" . "http://harmonies.tzone.org")))
       
    39     ("ids" . (("name" . "Goudron Sauvage")
       
    40               ("title" . "Valier Vampire Décalé Rêvolutionnaire")
       
    41               ("email" . "veneur@tzone.org")
       
    42               ("web" . "http://cruche.valiere.free.fr")))
       
    43     ("rdd" . (("name" . "Baffouille")
       
    44               ("title" . "Enrêveur et Archimage")
       
    45               ("email" . "veneur@tzone.org")
       
    46               ("web" . "http://harmonies.tzone.org")))
       
    47     ("jdr" . (("title" . "Arpèges, le jeu des Harmonies")
       
    48               ("web" . "http://harmonies.tzone.org")))
       
    49     ("baff" . (("name" . "Baffouille")
       
    50               ("title" . "Enrêveur et Archimage")))))
       
    51 
       
    52 (defun local-gen-sign (type)
       
    53   "Generate a signature."
       
    54   (let 
       
    55       ((default-keys 
       
    56          (copy-alist
       
    57           (cdr (assoc "default" local-signature-alist))))
       
    58        (selected-keys 
       
    59         (cdr (assoc type local-signature-alist))))
       
    60     (dolist (pair selected-keys default-keys)
       
    61       (setcdr (assoc (car pair) default-keys)
       
    62               (cdr pair)))
       
    63     (let*
       
    64         ((GPG-title "GPG KeyID:")
       
    65          (name (cdr (assoc "name" default-keys)))
       
    66          (title (cdr (assoc "title" default-keys)))
       
    67          (email (cdr (assoc "email" default-keys)))
       
    68          (web (cdr (assoc "web" default-keys)))
       
    69          (key (cdr (assoc "key" default-keys)))
       
    70          (maxlenght
       
    71           (max (+ 2 (string-width name) (string-width title))
       
    72                (+ 2 (string-width email) (string-width web))
       
    73                (+ 1 (string-width GPG-title) (string-width key)))))
       
    74       (concat name 
       
    75               (make-string (- maxlenght (string-width name) (string-width title)) ? )
       
    76               title
       
    77               "\n"
       
    78               email
       
    79               (make-string (- maxlenght (string-width email) (string-width web)) ? )
       
    80               web
       
    81               "\n"
       
    82               GPG-title
       
    83               (make-string (- maxlenght (string-width GPG-title) (string-width key)) ? )
       
    84               key
       
    85               "\n"))))
       
    86 
       
    87 (defvar local-last-sig nil)
       
    88 (defun local-insert-signature (type)
       
    89   "Insert a signature."
       
    90   (interactive (list
       
    91                 (completing-read "Which signature: "
       
    92                                  local-signature-alist
       
    93                                  nil
       
    94                                  nil
       
    95                                  nil
       
    96                                  nil
       
    97                                  (or local-last-sig "default"))))
       
    98   (setq local-last-sig type)
       
    99   (save-excursion
       
   100     (goto-char (point-max))
       
   101     (let ((beg-sign
       
   102            (re-search-backward message-signature-separator nil t)))
       
   103       (if beg-sign
       
   104           (kill-region
       
   105            beg-sign (point-max))))
       
   106     (goto-char (point-max))
       
   107     (unless (bolp)
       
   108       (insert "\n"))
       
   109     (insert "-- \n")
       
   110     (insert (local-gen-sign type))))
       
   111 
       
   112 (defun local-alter-message-map ()
       
   113   (local-set-key "\C-c\C-w" 'local-insert-signature))
       
   114 
       
   115 (defun local-outgoing-message-group ()
       
   116   "Return the sentmail group."
       
   117   (concat "mail/sentmail-archives/"
       
   118           (format-time-string "%Y.%m")))
       
   119 
       
   120 (setq gnus-outgoing-message-group
       
   121       'local-outgoing-message-group)
       
   122 
       
   123 (provide 'local-gnus)