Mercurial > emacs
comparison lisp/gnus/nnrss.el @ 90180:62afea0771d8
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-51
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 289-301)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 68)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 12 May 2005 03:41:19 +0000 |
parents | d1245d218964 |
children | 88db2adda4b7 |
comparison
equal
deleted
inserted
replaced
90179:b745036dab36 | 90180:62afea0771d8 |
---|---|
193 (text (if (nth 6 e) | 193 (text (if (nth 6 e) |
194 (mapconcat 'identity | 194 (mapconcat 'identity |
195 (delete "" (split-string (nth 6 e) "\n+")) | 195 (delete "" (split-string (nth 6 e) "\n+")) |
196 " "))) | 196 " "))) |
197 (link (nth 2 e)) | 197 (link (nth 2 e)) |
198 (enclosure (nth 7 e)) | |
198 ;; Enable encoding of Newsgroups header in XEmacs. | 199 ;; Enable encoding of Newsgroups header in XEmacs. |
199 (default-enable-multibyte-characters t) | 200 (default-enable-multibyte-characters t) |
200 (rfc2047-header-encoding-alist | 201 (rfc2047-header-encoding-alist |
201 (if (mm-coding-system-p 'utf-8) | 202 (if (mm-coding-system-p 'utf-8) |
202 (cons '("Newsgroups" . utf-8) | 203 (cons '("Newsgroups" . utf-8) |
203 rfc2047-header-encoding-alist) | 204 rfc2047-header-encoding-alist) |
204 rfc2047-header-encoding-alist)) | 205 rfc2047-header-encoding-alist)) |
205 rfc2047-encode-encoded-words body) | 206 rfc2047-encode-encoded-words body) |
206 (when (or text link) | 207 (when (or text link enclosure) |
207 (insert "\n") | 208 (insert "\n") |
208 (insert "<#multipart type=alternative>\n" | 209 (insert "<#multipart type=alternative>\n" |
209 "<#part type=\"text/plain\">\n") | 210 "<#part type=\"text/plain\">\n") |
210 (setq body (point)) | 211 (setq body (point)) |
211 (if text | 212 (when text |
212 (progn | 213 (insert text "\n") |
213 (insert text "\n") | 214 (when (or link enclosure) |
214 (when link | 215 (insert "\n"))) |
215 (insert "\n" link "\n"))) | 216 (when link |
216 (when link | 217 (insert link "\n")) |
217 (insert link "\n"))) | 218 (when enclosure |
219 (insert (car enclosure) " " | |
220 (nth 2 enclosure) " " | |
221 (nth 3 enclosure) "\n")) | |
218 (setq body (buffer-substring body (point))) | 222 (setq body (buffer-substring body (point))) |
219 (insert "<#/part>\n" | 223 (insert "<#/part>\n" |
220 "<#part type=\"text/html\">\n" | 224 "<#part type=\"text/html\">\n" |
221 "<html><head></head><body>\n") | 225 "<html><head></head><body>\n") |
222 (when text | 226 (when text |
223 (insert text "\n")) | 227 (insert text "\n")) |
224 (when link | 228 (when link |
225 (insert "<p><a href=\"" link "\">link</a></p>\n")) | 229 (insert "<p><a href=\"" link "\">link</a></p>\n")) |
230 (when enclosure | |
231 (insert "<p><a href=\"" (car enclosure) "\">" | |
232 (cadr enclosure) "</a> " (nth 2 enclosure) | |
233 " " (nth 3 enclosure) "</p>\n")) | |
226 (insert "</body></html>\n" | 234 (insert "</body></html>\n" |
227 "<#/part>\n" | 235 "<#/part>\n" |
228 "<#/multipart>\n")) | 236 "<#/multipart>\n")) |
229 (condition-case nil | 237 (condition-case nil |
230 (mml-to-mime) | 238 (mml-to-mime) |
516 (buffer-string))) | 524 (buffer-string))) |
517 | 525 |
518 ;;; Snarf functions | 526 ;;; Snarf functions |
519 | 527 |
520 (defun nnrss-check-group (group server) | 528 (defun nnrss-check-group (group server) |
521 (let (file xml subject url extra changed author | 529 (let (file xml subject url extra changed author date |
522 date rss-ns rdf-ns content-ns dc-ns) | 530 enclosure rss-ns rdf-ns content-ns dc-ns) |
523 (if (and nnrss-use-local | 531 (if (and nnrss-use-local |
524 (file-exists-p (setq file (expand-file-name | 532 (file-exists-p (setq file (expand-file-name |
525 (nnrss-translate-file-chars | 533 (nnrss-translate-file-chars |
526 (concat group ".xml")) | 534 (concat group ".xml")) |
527 nnrss-directory)))) | 535 nnrss-directory)))) |
565 (nnrss-node-text dc-ns 'creator item) | 573 (nnrss-node-text dc-ns 'creator item) |
566 (nnrss-node-text dc-ns 'contributor item))) | 574 (nnrss-node-text dc-ns 'contributor item))) |
567 (setq date (or (nnrss-node-text dc-ns 'date item) | 575 (setq date (or (nnrss-node-text dc-ns 'date item) |
568 (nnrss-node-text rss-ns 'pubDate item) | 576 (nnrss-node-text rss-ns 'pubDate item) |
569 (message-make-date))) | 577 (message-make-date))) |
578 (when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item))) | |
579 (let ((url (cdr (assq 'url enclosure))) | |
580 (len (cdr (assq 'length enclosure))) | |
581 (type (cdr (assq 'type enclosure))) | |
582 (name)) | |
583 (setq len | |
584 (if (and len (integerp (setq len (string-to-number len)))) | |
585 ;; actually already in `ls-lisp-format-file-size' but | |
586 ;; probably not worth to require it for one function | |
587 (do ((size (/ len 1.0) (/ size 1024.0)) | |
588 (post-fixes (list "" "k" "M" "G" "T" "P" "E") | |
589 (cdr post-fixes))) | |
590 ((< size 1024) | |
591 (format "%.1f%s" size (car post-fixes)))) | |
592 "0")) | |
593 (setq url (or url "")) | |
594 (setq name (if (string-match "/\\([^/]*\\)$" url) | |
595 (match-string 1 url) | |
596 "file")) | |
597 (setq type (or type "")) | |
598 (setq enclosure (list url name len type)))) | |
570 (push | 599 (push |
571 (list | 600 (list |
572 (incf nnrss-group-max) | 601 (incf nnrss-group-max) |
573 (current-time) | 602 (current-time) |
574 url | 603 url |
575 (and subject (nnrss-mime-encode-string subject)) | 604 (and subject (nnrss-mime-encode-string subject)) |
576 (and author (nnrss-mime-encode-string author)) | 605 (and author (nnrss-mime-encode-string author)) |
577 date | 606 date |
578 (and extra (nnrss-decode-entities-string extra))) | 607 (and extra (nnrss-decode-entities-string extra)) |
608 enclosure) | |
579 nnrss-group-data) | 609 nnrss-group-data) |
580 (gnus-sethash (or url extra) t nnrss-group-hashtb) | 610 (gnus-sethash (or url extra) t nnrss-group-hashtb) |
581 (setq changed t)) | 611 (setq changed t)) |
582 (setq extra nil)) | 612 (setq extra nil)) |
583 (when changed | 613 (when changed |