diff lisp/gnus/webmail.el @ 88155:d7ddb3e565de

sync with trunk
author Henrik Enberg <henrik.enberg@telia.com>
date Mon, 16 Jan 2006 00:03:54 +0000
parents 53eebdb81828
children
line wrap: on
line diff
--- a/lisp/gnus/webmail.el	Sun Jan 15 23:02:10 2006 +0000
+++ b/lisp/gnus/webmail.el	Mon Jan 16 00:03:54 2006 +0000
@@ -1,5 +1,7 @@
 ;;; webmail.el --- interface of web mail
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: hotmail netaddress my-deja netscape
@@ -18,8 +20,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -48,21 +50,16 @@
 (require 'gnus)
 (require 'nnmail)
 (require 'mm-util)
+(require 'mm-url)
 (require 'mml)
 (eval-when-compile
   (ignore-errors
-    (require 'w3)
     (require 'url)
-    (require 'url-cookie)
-    (require 'w3-forms)
-    (require 'nnweb)))
+    (require 'url-cookie)))
 ;; Report failure to find w3 at load time if appropriate.
 (eval '(progn
-	 (require 'w3)
 	 (require 'url)
-	 (require 'url-cookie)
-	 (require 'w3-forms)
-	 (require 'nnweb)))
+	 (require 'url-cookie)))
 
 ;;;
 
@@ -144,14 +141,12 @@
     (my-deja
      (paranoid cookie post)
      (address . "www.my-deja.com")
-     (open-url "http://www.deja.com/my/pr.xp")
-     (open-snarf . webmail-my-deja-open)
+     ;;(open-snarf . webmail-my-deja-open)
      (login-url
       content
-      ("%s" webmail-aux)
-      "member_name=%s&pw=%s&go=&priv_opt_MyDeja99="
+      ("http://mydeja.google.com/cgi-bin/deja/maillogin.py")
+      "userid=%s&password=%s"
       user password)
-     (list-url "http://www.deja.com/rg_gotomail.xp")
      (list-snarf . webmail-my-deja-list)
      (article-snarf . webmail-my-deja-article)
      (trash-url webmail-aux id))))
@@ -203,7 +198,7 @@
     (insert "\n---------------- A bug at " str " ------------------\n")
     (mapcar #'(lambda (sym)
 		(if (boundp sym)
-		    (pp `(setq ,sym ',(eval sym)) (current-buffer))))
+		    (gnus-pp `(setq ,sym ',(eval sym)))))
 	    '(webmail-type user))
     (insert "---------------- webmail buffer ------------------\n\n")
     (insert-buffer-substring webmail-buffer)
@@ -228,31 +223,6 @@
 	  (set (intern (concat "webmail-" (symbol-name var))) (cdr pair))
 	(set (intern (concat "webmail-" (symbol-name var))) nil)))))
 
-(defun webmail-encode-www-form-urlencoded (pairs)
-  "Return PAIRS encoded for forms."
-  (mapconcat
-   (function
-    (lambda (data)
-      (concat (w3-form-encode-xwfu (car data)) "="
-	      (w3-form-encode-xwfu (cdr data)))))
-   pairs "&"))
-
-(defun webmail-fetch-simple (url content)
-  (let ((url-request-data content)
-	(url-request-method "POST")
-	(url-request-extra-headers
-	 '(("Content-type" . "application/x-www-form-urlencoded"))))
-    (nnweb-insert url))
-  t)
-
-(defun webmail-fetch-form (url pairs)
-  (let ((url-request-data (webmail-encode-www-form-urlencoded pairs))
-	(url-request-method "POST")
-	(url-request-extra-headers
-	 '(("Content-type" . "application/x-www-form-urlencoded"))))
-    (nnweb-insert url))
-  t)
-
 (defun webmail-eval (expr)
   (cond
    ((consp expr)
@@ -267,15 +237,15 @@
     (cond
      ((eq (car xurl) 'content)
       (pop xurl)
-      (webmail-fetch-simple (if (stringp (car xurl))
+      (mm-url-fetch-simple (if (stringp (car xurl))
 				(car xurl)
 			      (apply 'format (webmail-eval (car xurl))))
 			    (apply 'format (webmail-eval (cdr xurl)))))
      ((eq (car xurl) 'post)
       (pop xurl)
-      (webmail-fetch-form (car xurl) (webmail-eval (cdr xurl))))
+      (mm-url-fetch-form (car xurl) (webmail-eval (cdr xurl))))
      (t
-      (nnweb-insert (apply 'format (webmail-eval xurl)))))))
+      (mm-url-insert (apply 'format (webmail-eval xurl)))))))
 
 (defun webmail-init ()
   "Initialize buffers and such."
@@ -317,7 +287,7 @@
     (let ((url (match-string 1)))
       (erase-buffer)
       (mm-with-unibyte-current-buffer
-	(nnweb-insert url)))
+	(mm-url-insert url)))
     (goto-char (point-min))))
 
 (defun webmail-fetch (file subtype user password)
@@ -359,7 +329,7 @@
 	(message "Fetching mail #%d..." (setq n (1+ n)))
 	(erase-buffer)
 	(mm-with-unibyte-current-buffer
-	  (nnweb-insert (cdr item)))
+	  (mm-url-insert (cdr item)))
 	(setq id (car item))
 	(if webmail-article-snarf
 	    (funcall webmail-article-snarf file id))
@@ -461,9 +431,8 @@
     (if (not (search-forward "</pre>" nil t))
 	(webmail-error "article@3.1"))
     (delete-region (match-beginning 0) (point-max))
-    (nnweb-remove-markup)
-    (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-      (nnweb-decode-entities))
+    (mm-url-remove-markup)
+    (mm-url-decode-entities-nbsp)
     (goto-char (point-min))
     (while (re-search-forward "\r\n?" nil t)
       (replace-match "\n"))
@@ -494,9 +463,8 @@
 	(setq p (match-beginning 0))
 	(search-forward "</a>" nil t)
 	(delete-region p (match-end 0)))
-      (nnweb-remove-markup)
-      (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	(nnweb-decode-entities))
+      (mm-url-remove-markup)
+      (mm-url-decode-entities-nbsp)
       (goto-char (point-min))
       (delete-blank-lines)
       (goto-char (point-min))
@@ -516,7 +484,7 @@
 	      (delete-region p (match-end 0))
 	      (save-excursion
 		(set-buffer (generate-new-buffer " *webmail-att*"))
-		(nnweb-insert attachment)
+		(mm-url-insert attachment)
 		(push (current-buffer) webmail-buffer-list)
 		(setq bufname (buffer-name)))
 	      (setq mime t)
@@ -551,9 +519,8 @@
 	    (goto-char (match-end 0))
 	    (if (looking-at "$") (forward-char))
 	    (delete-region (point-min) (point))
-	    (nnweb-remove-markup)
-	    (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	      (nnweb-decode-entities))
+	    (mm-url-remove-markup)
+	    (mm-url-decode-entities-nbsp)
 	    nil)
 	   (t
 	    (setq mime t)
@@ -648,9 +615,8 @@
 	(setq p (match-beginning 0))
 	(search-forward "</a>" nil t)
 	(delete-region p (match-end 0)))
-      (nnweb-remove-markup)
-      (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	(nnweb-decode-entities))
+      (mm-url-remove-markup)
+      (mm-url-decode-entities-nbsp)
       (goto-char (point-min))
       (delete-blank-lines)
       (goto-char (point-max))
@@ -666,9 +632,8 @@
 	  (if (not (search-forward "</table>" nil t))
 	      (webmail-error "article@5"))
 	  (narrow-to-region p (match-end 0))
-	  (nnweb-remove-markup)
-	  (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	    (nnweb-decode-entities))
+	  (mm-url-remove-markup)
+	  (mm-url-decode-entities-nbsp)
 	  (goto-char (point-min))
 	  (delete-blank-lines)
 	  (setq ct (mail-fetch-field "content-type")
@@ -681,7 +646,7 @@
 	  (widen)
 	  (save-excursion
 	    (set-buffer (generate-new-buffer " *webmail-att*"))
-	    (nnweb-insert (concat webmail-aux attachment))
+	    (mm-url-insert (concat webmail-aux attachment))
 	    (push (current-buffer) webmail-buffer-list)
 	    (setq bufname (buffer-name)))
 	  (insert "<#part")
@@ -776,9 +741,8 @@
     (goto-char (point-min))
     (while (re-search-forward "<br>" nil t)
       (replace-match "\n"))
-    (nnweb-remove-markup)
-    (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-      (nnweb-decode-entities))
+    (mm-url-remove-markup)
+    (mm-url-decode-entities-nbsp)
     nil)
    (t
     (insert "<#part type=\"text/html\" disposition=inline>")
@@ -806,9 +770,8 @@
       (goto-char (point-min))
       (while (search-forward "<b>" nil t)
 	(replace-match "\n"))
-      (nnweb-remove-markup)
-      (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	(nnweb-decode-entities))
+      (mm-url-remove-markup)
+      (mm-url-decode-entities-nbsp)
       (goto-char (point-min))
       (delete-blank-lines)
       (goto-char (point-min))
@@ -850,7 +813,7 @@
 	      (let (bufname);; Attachment
 		(save-excursion
 		  (set-buffer (generate-new-buffer " *webmail-att*"))
-		  (nnweb-insert (concat (car webmail-open-url) attachment))
+		  (mm-url-insert (concat (car webmail-open-url) attachment))
 		  (push (current-buffer) webmail-buffer-list)
 		  (setq bufname (buffer-name)))
 		(insert "<#part type=" type)
@@ -934,9 +897,8 @@
       (goto-char (point-min))
       (while (search-forward "<b>" nil t)
 	(replace-match "\n"))
-      (nnweb-remove-markup)
-      (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	(nnweb-decode-entities))
+      (mm-url-remove-markup)
+      (mm-url-decode-entities-nbsp)
       (goto-char (point-min))
       (delete-blank-lines)
       (goto-char (point-min))
@@ -978,7 +940,7 @@
 	      (let (bufname);; Attachment
 		(save-excursion
 		  (set-buffer (generate-new-buffer " *webmail-att*"))
-		  (nnweb-insert (concat (car webmail-open-url) attachment))
+		  (mm-url-insert (concat (car webmail-open-url) attachment))
 		  (push (current-buffer) webmail-buffer-list)
 		  (setq bufname (buffer-name)))
 		(insert "<#part type=" type)
@@ -1045,7 +1007,7 @@
 (defun webmail-my-deja-open ()
   (webmail-refresh-redirect)
   (goto-char (point-min))
-  (if (re-search-forward "action=\"\\([^\"]+login_confirm\\.xp[^\"]*\\)\""
+  (if (re-search-forward "action=\"\\([^\"]+maillogin\\.py[^\"]*\\)\""
 			 nil t)
       (setq webmail-aux (match-string 1))
     (webmail-error "open@1")))
@@ -1058,7 +1020,7 @@
       (let ((url (match-string 1)))
 	(setq base (match-string 2))
 	(erase-buffer)
-	(nnweb-insert url)))
+	(mm-url-insert url)))
     (goto-char (point-min))
     (when (re-search-forward
 	   "(\\([0-9]+\\) Message.?-[^>]*\\([0-9]+\\) New"
@@ -1095,9 +1057,8 @@
 			      (match-beginning 0)
 			    (point-max)))
 	(goto-char (point-min))
-	(nnweb-remove-markup)
-	(let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	  (nnweb-decode-entities))
+	(mm-url-remove-markup)
+	(mm-url-decode-entities-nbsp)
 	(goto-char (point-max))))
      ((looking-at "[\t\040\r\n]*<TABLE")
       (save-restriction
@@ -1126,7 +1087,7 @@
 	  (delete-region (point-min) (point-max))
 	  (save-excursion
 	    (set-buffer (generate-new-buffer " *webmail-att*"))
-	    (nnweb-insert url)
+	    (mm-url-insert url)
 	    (push (current-buffer) webmail-buffer-list)
 	    (setq bufname (buffer-name)))
 	  (insert "<#part type=\"" type "\"")
@@ -1159,9 +1120,8 @@
       (narrow-to-region (point-min) (point))
       (while (search-forward "\r\n" nil t)
 	(replace-match "\n"))
-      (nnweb-remove-markup)
-      (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)))
-	(nnweb-decode-entities))
+      (mm-url-remove-markup)
+      (mm-url-decode-entities-nbsp)
       (goto-char (point-min))
       (while (re-search-forward "\n\n+" nil t)
 	(replace-match "\n"))
@@ -1191,4 +1151,5 @@
 
 (provide 'webmail)
 
+;;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
 ;;; webmail.el ends here