;;**** BASIC IDENTITY
(setq user-full-name "Guillaume CONNAN"
      user-mail-address "gconnan@free.fr"
      mail-user-agent (quote message-user-agent))


;; mes autre adresses : en répondant à un message permet de réutiliser l'adresse du To:/From:/CC: de ce message
(setq message-alternative-emails 
      (regexp-opt (cons user-mail-address
                        '("descopau@yahoo.fr"
                          ))))

;; Def charset
;(setq ;gnus-default-charset (quote iso-8859-15)
 ;     gnus-default-posting-charset (quote iso-8859-15))

(message "gnus.el: BASIC IDENTITY initialized")

;; pour poster en latin-1 ou latin-0 ou utf-8
(setq mm-coding-system-priorities
      '(iso-latin-9 iso-latin-1 mule-utf-8)) 


;; afficher les noms des destinataires à la place du mien pour les messages que j'ai envoyés
(setq gnus-ignored-from-addresses "Guillaume CONNAN") ;; 



; pour bidouiller l'adresse pour les NEWS, voir le champ From: dans les posting styles
(setq message-user-organization "Aucune.")


(setq gnus-posting-styles
      '(
        ((message-news-p)               ;".*"
         (From    "Guillaume Connan <gconnan.no@spam.free.fr.invalid>")
         (Reply-To "Guillaume Connan <gconnan@free.fr>"))
        ((message-mail-p)               ;".*"
         (From    "Guillaume Connan <gconnan.no@spam.free.fr.invalid>")
         (Reply-To "Guillaume Connan <gconnan@free.fr>"))
        
        )
      )

;;pour eviter les textes en html

(setq mm-discouraged-alternatives
      '("text/html" "text/richtext")
      mm-automatic-display
      (remove "text/html" mm-automatic-display))

;; Def charset
;;code
(setq gnus-default-charset (quote iso-8859-15)
      gnus-default-posting-charset (quote iso-8859-15)
      mm-body-charset-encoding-alist '((iso-8859-1 . 8bit)
                                       (iso-8859-15 . 8bit)))

;;Ca, c'est pour gerer les accents mal encodés des autres ... 

(add-to-list 'mm-charset-synonym-alist '(iso8859-15 . iso-8859-15))
(add-to-list 'mm-charset-synonym-alist '(iso885915 . iso-8859-15))



;; We choose nnml: everybody says it's the fastest backend on earth.
(setq gnus-select-method '(nnml ""))
;;(setq gnus-secondary-select-method '(nnml ""))
;;(setq gnus-secondary-select-methods '((nntp "news.free.fr")))
;;(setq gnus-secondary-select-methods '((nnmbox "")))

(setq gnus-secondary-select-methods '((nnimap "imap.free.fr"
                                             ; (remove-prefix "INBOX.")
                                  (nnimap-address "imap.free.fr")
                                  (nnimap-authentificator "gconnan")
                                  (nnimap-authinfo-file "/home/moi/.authinfo")
)))

;;(setq gnus-summary-charset (quote iso-8859-15))


;;*******************
;;***** GETTING MAILS

;; In mail-source, procmail store files that
;; We store mails here - this is also defined in my .emacs,
;; it's the only way I found to avoid apparition of ~/Mail/.
(setq gnus-directory "~/.News/")
(setq message-directory "~/.Mail/")

;; fetchmail previously downloaded.
(setq mail-sources
      (list '(directory
              :path "~/.mail-gnus/"
              :suffix ""
          ))
      )


;(eval-after-load "mail-source"
 ; '(add-to-list 'mail-sources '(directory :path "/home/moi/.mail-gnus/"
  ;                                        :suffix "")))

  
;; ;;serveur news principal
;;  (setq gnus-secondary-select-method 
;;        '(
;;                nntp "news.free.fr"
;;                (nntp-authinfo-user "Guillaume")
;;   ;; (nntp-authinfo-password " ")
;;     ))

 (setq gnus-default-subscribed-newsgroups
          '( "fr.comp.text.tex" "fr.comp.applications.emacs"))




;; We trash duplicates mails.
(setq nnmail-treat-duplicates 'delete)

;; We just read mail, no newsgroups.
;(setq gnus-check-new-newsgroups nil)

(message "gnus.el: GETTING MAILS initialized")




;comment envoyer les msg
(setq send-mail-function 'smtpmail-send-it)
(setq message-send-mail-function 'smtpmail-send-it)
(setq smtpmail-smtp-server "smtp.free.fr"
        ;;smtpmail-local-domain "free.fr"
        ;;smtpmail-sendto-domain "free.fr"
        ;;smtpmail-smtp-service 25
        smtpmail-smtp-service "smtp"
        smtpmail-debug-info t           ; only to debug problems
        smtpmail-debug-verb t
        smtpmail-auth-login-username "gconnan"
        smtpmail-auth-credentials '(("smtp.free.fr" 25 "gconnan" "*******"))
        )

;; definition des couleurs de gnus (fenetre "group" et
;; fenetre "summary article"
(set-face-foreground 'gnus-group-mail-3-face "yellow")
(set-face-foreground 'gnus-group-mail-3-empty-face "green")
(set-face-foreground 'message-header-to-face "red")
(set-face-foreground 'message-header-subject-face "yellow")
(set-face-foreground 'gnus-summary-normal-ancient-face "pink")
(set-face-foreground 'gnus-summary-normal-read-face "grey")
(set-face-foreground 'gnus-summary-normal-unread-face "orange")
(set-face-foreground 'gnus-summary-high-unread-face "orange")
(set-face-foreground 'gnus-summary-normal-ticked-face "violet")
(set-face-foreground 'gnus-summary-high-ticked-face "red")
;; Pour les definitions des couleurs dans les mails je suis
;; oblige de creer une fonction qui se raccrochera a la fonction
;; de lecture des mails.

(require 'font-lock)
(defun color-gnus-customization-hook()
(set-face-foreground 'gnus-header-from-face "violet")
(set-face-foreground 'gnus-signature-face "red")
(set-face-foreground 'gnus-header-subject-face "orange")
(set-face-foreground 'gnus-header-content-face "green"))
;(set-face-foreground 'gnus-header-to-face "red"))
;(set-face-foreground 'gnus-header-date-face "blue"))
;(set-face-foreground 'gnus-header-lapsed-face "pink"))
(add-hook 'gnus-visual-mark-article-hook 'color-gnus-customization-hook)

;; Tres pratique, permet de connaitre la derniere fois
;; que l'on a accede a un mailbox ou a un newsgroup
(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
(setq gnus-group-line-format
        "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")








;;************************
;; MIME Settings for PGnus
(require 'mm-util)
(defun mm-read-charset (prompt)
  "Return a charset."
  'iso-8859-15)
;(setq gnus-default-posting-charset (quote iso-8859-15))
(setq gnus-article-decode-mime-words t)
(setq gnus-article-decode-charset 1)
(setq gnus-mime-view-all-parts t) ; View all the MIME parts in current article
(setq gnus-ignored-mime-types
      '("text/x-vcard"))
(setq gnus-unbuttonized-mime-types nil) ; MIME type -> no buttons when rendered
(setq
 ;; Add buttons
 gnus-treat-buttonize t
 ;; Add buttons to the head
 gnus-treat-buttonize-head 'head
 ;; Emphasize text
 gnus-treat-emphasize t
 ;; Fill the article
 gnus-treat-fill-article nil
 ;; Remove carriage returns
 gnus-treat-strip-cr 'last
 ;; Hide headers
 gnus-treat-hide-headers 'head
 ;; Hide boring headers
 gnus-treat-hide-boring-headers 'head
 ;; Hide the signature
 gnus-treat-hide-signature nil
 ;; Hide cited text
 gnus-treat-hide-citation nil
 ;; Strip PGP signatures
 gnus-treat-strip-pgp 'last
 ;; Strip PEM signatures
 gnus-treat-strip-pem 'last
 ;; Highlight the headers
 gnus-treat-highlight-headers 'head
 ;; Highlight cited text
 gnus-treat-highlight-citation 'last
 ;; Highlight the signature
 gnus-treat-highlight-signature 'last
 ;; Display the Date in UT (GMT)
 gnus-treat-date-ut nil
 ;; Display the Date in the local timezone
 gnus-treat-date-local nil
 ;; Display the date in the original timezone
 gnus-treat-date-original nil
 ;; Strip trailing blank lines
 gnus-treat-strip-trailing-blank-lines 'last
 ;; Strip leading blank lines
 gnus-treat-strip-leading-blank-lines 'last
 ;; Strip multiple blank lines
 gnus-treat-strip-multiple-blank-lines 'last
 ;; Strip all blank lines
 ;; gnus-treat-strip-blank-lines nil
 ;; Treat overstrike highlighting
 gnus-treat-overstrike 'last
 )
;;* show the text/plain part before the text/html part in multpart/alternative
(require 'mm-decode)
;;;-- no way do compile with this
;;;--(push "text/plain" mm-alternative-precedence)
;;;--(setq mm-alternative-precedence "text/plain")

(message "gnus.el: MIME initialized")





;;***********************
;; ARCHIVES: one file per month
(setq gnus-message-archive-group
      '((if (message-news-p)
            "misc-news"
          (concat "mail." (format-time-string
                           "%Y-%m" (current-time)))))
      )

(message "gnus.el: ARCHIVES initialized")






;;***********************
;;************* INTERFACE

;; Here I define how to display subject lines etc...
;; I wanna see thoses groups everytime
(setq gnus-permanently-visible-groups "^nnml\\|^inbox")

;; I like it verbose
(setq gnus-verbose 2000)

;; I wanna be able to access my previous post
(setq gnus-fetch-old-headers t)

;; I wanna keep track of the last time I rode a group
(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

;; *Group* buffer: how to format each group entry.
;;(setq gnus-group-line-format "%M%m %4N/%4t non-lus:      %(%-20,20g%) depuis le %2,2~(cut 6)d/%2,2~(cut 4)d à %2,2~(cut 9)dh%2,2~(cut 11)d\n"
      ;;
      ;; %var details C-h i
      ;;`M' An asterisk if the group only has marked articles.
      ;;'N' Number of unread articles.
      ;;`t' Estimated total number of articles.
      ;;`G' Group name.
      ;;`D' Newsgroup description.
      ;;`m' `%' (`gnus-new-mail-mark') if there has arrived new mail to the
      ;;    group lately.
      ;;`D' Last time the group as been accessed.
      ;;
      ;; For the record, a default group line format
      ;;(setq gnus-group-line-format "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
   ;   )
;; *Summary*: how to format each mail entry.



(setq gnus-topic-line-format "%6v            %5(%5{%7A %}%)%* %5(%5{ ==> %-31n%)%}\n" )

(setq gnus-summary-line-format "%-1R %-1U  %-15,15n | %2,2~(cut 6)o/%2,2~(cut 4)o %2,2~(cut 9)oh%2,2~(cut 11)o | %I%(%0,40s%)\n"
      gnus-summary-same-subject ">>>"
      gnus-summary-mode-line-format "%V: %%b"
      gnus-summary-charset (quote iso-8859-15)
      ;; %var details C-h i
      ;; `s' Subject if the article is the root of the thread or the previous
      ;;     article had a different subject, `gnus-summary-same-subject'
      ;;     otherwise.  (`gnus-summary-same-subject' defaults to `""'.)
      ;; `n' The name (from the `From' header).
      ;; `L' Number of lines in the article.
      ;; `I' Indentation based on thread level (*note Customizing Threading::).
      ;; `>' One space for each thread level.
      ;; `<' Twenty minus thread level spaces.
      ;; `U' Unread.
      ;; `R' This misleadingly named specifier is the "secondary mark".  This
      ;;     mark will say whether the article has been replied to, has been
      ;;     cached, or has been saved.
      ;; `D'  `Date'.
      ;; `d'  The `Date' in `DD-MMM' format.
      ;;`o'     The `Date' in YYYYMMDD`T'HHMMSS format.
      ;;
      ;; For the record the default string is
      ;; `%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n'.
      )


;; I do not like graphics smileys.
(setq gnus-treat-display-smileys nil)

;; I wanna particular dimensions while reading mails
(setq
 gnus-build-sparse-threads 'some
 gnus-use-trees t
 gnus-generate-tree-function 'gnus-generate-horizontal-tree
 gnus-tree-minimize-window nil)

(if  (or (not (getenv "DISPLAY"))
         (string-match ":0" (getenv "DISPLAY")))
    (progn
      (gnus-add-configuration
       '(article
         (vertical 1.0
                   (summary 0.40 point)
                   (article 1.0)
                   )
         )))
  (progn
    (gnus-add-configuration
     '(article
       (vertical 1.0
         (summary 0.40 point)
         (article 1.0)
         )
       )))
  )
(setq font-lock-maximum-decoration t
      font-lock-maximum-size nil)
(require 'font-lock)
(set-face-foreground 'gnus-summary-normal-ticked-face " violet red")
(set-face-foreground 'gnus-summary-high-ticked-face " violet red")

(message "gnus.el: INTERFACE initialized")

; affichage de la date en relatif
(setq gnus-user-date-format-alist
      '(((gnus-seconds-today) . "     %k:%M")           ;dans la journée =      14:39
        ((+ 86400 (gnus-seconds-today)) . "hier %k:%M") ;hier            = hier 14:39
        ((+ 604800 (gnus-seconds-today)) . "%a  %k:%M") ;dans la semaine = sam  14:39
        ((gnus-seconds-month) . "%a  %d")               ;ce mois         = sam  28
        ((gnus-seconds-year) . "%b %d")                 ;durant l'année  = mai  28
        (t . "%b %d '%y")))                             ;le reste        = mai  28 '05



; Veut plus qu'il me demande si je veut récupérer
; la dernière sauvegarde (auto-save)
(setq gnus-always-read-dribble-file t )


;; corrige les problèmes de mixed latin-1 / latin-9
(setq message-default-charset 'iso-8859-15
      ;; ??? gnus-default-posting-charset (quote iso-8859-15)
      mm-body-charset-encoding-alist '((iso-8859-1 . 8bit)
                                       (iso-8859-15 . 8bit)))
(add-to-list 'mm-charset-synonym-alist '(iso8859-15 . iso-8859-15))
(add-to-list 'mm-charset-synonym-alist '(iso885915 . iso-8859-15))


;; (autoload 'trivial-cite "tc" t t)
;;  (add-hook 'mail-citation-hook 'trivial-cite) 
; Hey, please remove my address from To: and Ccc: while I do a
;; wide reply.
;; seen at http://www.gnusfr.org/gen.php3/2002/04/02/36,0,1,0.html
(setq message-dont-reply-to-names
      "gconnan@\\(gnu\\|free\\).\\(org\\|fr\\)")




;; header des réponses






;;              ; "ième jour après Epoch,\n"
;;             ))
;;             (let* ((email (mail-header-from message-reply-headers))
;;                    (data (mail-extract-address-components email))
;;                    (name (car data))
;;                    (net (car (cdr data))))
;;               (or name net email))
;;             " écrivait brillamment :\n\n")))

;; make it the default citation line for Gnus' message mode
;;(setq message-citation-line-function 'epoch-citation-line)



;;   (setq message-citation-line-function 'my-citation-line)
;; (defun my-citation-line ()
;;   "Function that inserts svengo a cool citation line."
;;   (when message-reply-headers
;;     (insert"\n Le " (mail-header-date message-reply-headers) "\n,  " (mail-header-from message-reply-headers) " s'est librement exprimé(e) ainsi :\n")
;;     )
;;   )

;; I want my replies to begin with something like " writes:"
;;   (defun message-insert-citation-line ()
;;     "La fonction qui insere une ligne aux reponses"
;; ;;    (let (                         ;(style (random 4))
;; ;;    (date (cdr (assoc "date" tc-strings-list)))
;; ;;    (email (cdr (assoc "email-addr" tc-strings-list)))
;; ;;    (name (cdr (assoc "real-name" tc-strings-list)))))
;;       (when message-reply-headers
;; ;;     ;; In savannah-hackers group, we talk english
;; ;;     (if (string-equal gnus-newsgroup-name "savannah-hackers")
;; ;;     (insert (mail-header-from message-reply-headers) " said:\n\n")
;;        (insert  " a particulièrement retenu mon attention par le texte suivant  :\n\n")))
;;            ; " vient  d'envoyer ce message :\n\n ")
;; ;       ););)

 ;; header des réponses
 (autoload 'trivial-cite "tc" t t)
(add-hook 'mail-citation-hook 'trivial-cite) 
 (setq tc-debug-level 1
       mail-extr-ignore-single-names nil
       mail-extr-ignore-realname-equals-mailbox-name nil
       tc-normal-citemarks  ">|:"
       tc-fill-long-lines   't
       tc-time-format "%e %B %Y à %H:%m"
       tc-make-attribution 'GC-tc-attribution
       )

(defun gc-tc-attribution ()
  "tc-simple-attribution makes an attribution from email address and date."
  (let ((date (assoc "date" tc-strings-list))
        (name (assoc "email-addr" tc-strings-list)))
    (if (null name)
        "Une personne qui a préféré rester anonyme a écrit :\n\n"
      (if (null date)
          (concat (cdr name) " a écrit :\n\n")
        (concat "Le  " (cdr date) ", " (cdr name) " écrivait brillamment:\n\n")
        )
      )
    )
  )




 ;      tc-make-attribution 'tc-fancy-attribution
 ;     tc-groups-functions '(("alt.sysadmin.recovery" . nix-tc-bofh-group-attribution)
 ;                           ("bofh." . nix-tc-bofh-group-attribution))


;;    (setq message-citation-line-function 'my-citation-line)
;;  (defun my-citation-line ()
;;    "Function that inserts svengo a cool citation line."
;;    (when message-reply-headers
;;      (insert"\n Le " (mail-header-date message-reply-headers) "\n,  " (mail-header-from message-reply-headers) " s'est librement exprimé(e) ainsi :\n")
;;      )
;;    )




;; (setq message-citation-line-function 'sk-tc-attribution-fr)


 (defun GC-tc-attribution ()
   "Générer l'attribution."
   (let ((style (random 5))
         (date (cdr (assoc "date" tc-strings-list)))
         (email (cdr (assoc "email-addr" tc-strings-list)))
         (name (cdr (assoc "real-name" tc-strings-list))))
     (cond ((= style 0)
            (concat "Le " date ", " (or name email) " s'est librement exprimé ainsi :\n\n"))
           ((= style 1)
            (concat "Le " date ", " (or name email) "  a particulièrement retenu mon attention par le texte suivant  :\n\n"))
           ((= style 2)
            (concat "Le " date ", " (or name email) " m'a sorti de ma torpeur en écrivant ceci :\n\n"))
           ((= style 3)
            (concat "Le " date ", " (or name email) "  a formulé dans un style qui lui est propre l'idée suivante  :\n\n"))
           ((= style 4)
            (concat "Le " date ", " (or name email) " vraute ze foloving massage :\n\n")))))







;; (defun sk-tc-attribution-fr ()
;;    "Générer l'attribution."
;;    (let ((style (random 4))
;;          (date (cdr (assoc "date" tc-strings-list)))
;;          (email (cdr (assoc "email-addr" tc-strings-list)))
;;          (name (cdr (assoc "real-name" tc-strings-list))))
;;      (cond ((= style 0)
;;             (insert (mail-header-from message-reply-headers)  (concat "Le " date ", " (or name email) " s'est librement exprimé ainsi :\n\n")))
;;            ((= style 1)
;;             (concat "Le " date ", " (or name email) " a particulièrement retenu mon attention par le texte suivant  :\n\n"))
;;           ((= style 2)
;;             (concat "Le " date ", " (or name email) " m'a sorti de ma torpeur en écrivant ceci :\n\n"))
;;            ((= style 3)
;;             (concat "Le " date ", " (or name email) " a formulé dans un style qui lui est propre l'idée suivante :\n\n"))
;;            (t
;;             (concat "Le " date ", " (or name email) " vraute ze foloving sentence :\n\n")))))

; Lorsqu'on 'kill' un thread, celui-ci est caché
(setq gnus-thread-hide-killed t)






;;===== Quotage (de goret)===================================
; [Format] Snip des messages (W-W-c)
; Format disponible dans le chapitre 3.16.3 du manuel Gnus
(setq gnus-cited-closed-text-button-line-format
      "\[ Snip %n lines (%l Characters) \]\n")

; Couper les lignes trop longues
; (setq-default gnus-treat-fill-long-lines t)
(setq gnus-article-strip-blank-lines t)

; Mise en couleur de la signature
(setq gnus-treat-highlight-signature 'last)

; Veut pas des gorets !
;(add-hook 'gnus-part-display-hook 'gnus-article-hide-citation-maybe)

; Remplacer la date par X-Sent
(setq gnus-treat-date-lapsed 'head)
; Ne pas afficher les secondes défilées
(gnus-stop-date-timer)
; Remplace l'header Date:
(setq gnus-article-date-lapsed-new-header t);nil)

;; Ajouter des boutons
(setq gnus-treat-buttonize t)
(setq gnus-treat-buttonize-head 'head)


; Ne pas inclure la signature lors d'une réponse
;(setq message-cite-function 'message-cite-original-without-signature)

; Supprimer les messages en double
(setq gnus-suppress-duplicates t)

;; Nettoyer les messages d'un coup
;; http://my.gnus.org/node/view/94
(defun bhaak-wash-this-article ()
  (interactive)
  (gnus-article-outlook-deuglify-article)
  (gnus-article-fill-cited-article nil '70)
  (gnus-article-capitalize-sentences))
(define-key gnus-summary-mode-map "\C-c\w" 'bhaak-wash-this-article)


;;dictionnaire par défaut
(setq ispell-local-dictionary "francais");plutôt ispell-dictionary ?



;(add-hook 'gnus-article-display-hook 'gnus-article-highlight)
;; cache les cles PGP
;(add-hook 'gnus-article-display-hook 'gnus-article-hide-pgp)
;; cache les headers indésirables
;(add-hook 'gnus-article-display-hook 'gnus-article-hide-headers-if-wanted)
;; marre des gorets
;(add-hook 'gnus-article-display-hook  'gnus-treat-hide-citation-maybe)
;; vire certains headers s'ils sont vides
;(add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
;; vire le QP
;(add-hook 'gnus-article-display-hook 'gnus-article-de-quoted-unreadable)
;; met en valeur les *machins* et autres _trucs_
;(add-hook 'gnus-article-display-hook 'gnus-article-emphasize)

;; Pour ne pas afficher les tags débiles des ML...
(setq gnus-list-identifiers
      '("\\[spam\\]"
        "\\[exces\\]"
        "\\[ppm\\]"))

;; ne pas scroller le message si le reste n'est que quote+signature
;(setq gnus-article-skip-boring t)




; Mes ch'tits headers
;(setq gnus-ignored-headers ".*")
(setq gnus-visible-headers
      "^To:\\|^Reply-To:\\|^Cc:\\|^From:\\|^Date:\\|^Subject:\\|^X-Sent:\\|^X-Mailer:\\|^User-Agent:\\|^X-Newsreader:\\|^Organization:\\|^Newsgroups:\\|^Followup-to:\\|^X-Spam-Status:\\|^Approved:\\|^Message-ID:")

; Retirer les headers à dormir debout
(setq gnus-boring-article-headers '(empty many-to newsgroup))
(setq gnus-treat-hide-boring-header 'head)






(message "gnus.el: REPLY initialized")







;;;;NOUVEAU LOOK

(require 'gnus-cite) 
(set-face-foreground 'gnus-summary-normal-read-face "Blue")
(set-face-foreground 'gnus-signature-face "steelblue")
(copy-face 'default 'gnus-cite-face-1)
(set-face-foreground 'gnus-cite-face-1 "gray")
(copy-face 'default 'gnus-cite-face-2)
(set-face-foreground 'gnus-cite-face-2 "aquamarine")
(copy-face 'default 'gnus-cite-face-3)
(set-face-foreground 'gnus-cite-face-3 "steelblue")
(copy-face 'default 'gnus-header-content-face)
(set-face-foreground 'gnus-header-content-face "pink")
(copy-face 'default 'gnus-header-from-face)
(set-face-foreground 'gnus-header-from-face "violet")
(copy-face 'default 'gnus-header-name-face)
(set-face-foreground 'gnus-header-name-face "blue")
(copy-face 'italic 'gnus-header-subject-face)
(set-face-foreground 'gnus-header-subject-face "red")
(copy-face 'italic 'gnus-cite-attribution-face)
(set-face-foreground 'gnus-cite-attribution-face "yellow")
(copy-face 'bold 'gnus-emphasis-bold)
(set-face-foreground 'gnus-emphasis-bold "mediumturquoise")
(set-face-foreground 'message-header-other-face "pink")
(set-face-foreground 'message-cited-text-face "violet")

(copy-face 'bold 'gnus-group-news-3-face)
(set-face-foreground 'gnus-group-news-3-face "LightBlue")
(set-face-foreground 'gnus-group-news-3-empty-face "Blue")
(copy-face 'bold 'gnus-group-mail-3-face)
(set-face-foreground 'gnus-group-mail-3-face "lightblue")
(copy-face 'default 'gnus-group-mail-3-empty-face)
(set-face-foreground 'gnus-group-mail-3-empty-face "brown")

(copy-face 'default 'gnus-cite-face-1)
(set-face-foreground 'gnus-cite-face-1 "blue")

;(setq message-cite-function 'message-cite-original-without-signature)

(add-hook 'gnus-startup-hook 
          '(lambda ()
             (set-face-foreground 'bold "pink")
             ))

(add-hook 'gnus-article-display-hook
          '(lambda ()
             (gnus-article-de-quoted-unreadable)
             (gnus-article-emphasize)
             (gnus-article-hide-boring-headers)
             (gnus-article-hide-headers-if-wanted)
             (gnus-article-hide-pgp)
             (gnus-article-highlight)
             (gnus-article-highlight-citation)
             (gnus-article-date-local)              ; will actually convert timestamp from other timezones to yours
             ))






;;SPAM sur nnimap

;; (defun filter-spamassassin ()
;;   (save-excursion
;;     (widen)
;;     (if (eq 1 (call-process-region (point-min) (point-max)
;;                                    "spamc" nil nil nil "-c"))
;;         "spam")))


;; ; on dit quel repertoire on filtre
;; (setq nnimap-split-inbox '(INBOX))

;; ;on dit qu'elle fonction filtre quoi
;; (setq nnimap-split-rule
;;     '(("imap.free.fr" ("INBOX" nnimap-split-fancy))))

;; ; c'est ici qu'on apelle notre fonction
;; (setq nnimap-split-fancy
;; '(|
;;   (: filter-spamassassin)))

;; ; on relie la combinaison de touche C-c R s/h pour apprendre un spam/ham

;; (define-key gnus-summary-mode-map
;;         (read-kbd-macro "C-c R h")
;;         '(lambda () (interactive) (pfm-run-command-on-article "sa-learn --ham --no-rebuild"))
;; )



;; (define-key gnus-summary-mode-map
;;         (read-kbd-macro "C-c R s")
;;         '(lambda () (interactive) (pfm-run-command-on-article "sa-learn --spam --no-rebuild"))
;; )

;; ; apprentissage d'un spam
;; (defun learn-spam-spamassassin ()
;;   (save-excursion
;;     (widen)
;;     (call-process "sa-learn" nil 0 nil "--no-rebuild --spam")))

;; (defun learn-ham-spamassassin ()
;;   (save-excursion
;;     (widen)
;;     (call-process "sa-learn" nil 0 nil "--no-rebuild --ham")))