Mercurial > emacs
comparison lisp/gnus/nnrss.el @ 110333:c2883613e1b5
Fixed up nnrss group activation, and removed moreover stuff.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Tue, 14 Sep 2010 13:44:44 +0000 |
parents | 8d09094063d0 |
children | 5be11972ce6a |
comparison
equal
deleted
inserted
replaced
110332:3b63737368e5 | 110333:c2883613e1b5 |
---|---|
340 (t | 340 (t |
341 (nnheader-report 'nnrss "article %s retrieved" (car e)) | 341 (nnheader-report 'nnrss "article %s retrieved" (car e)) |
342 ;; we return the article number. | 342 ;; we return the article number. |
343 (cons nnrss-group (car e)))))) | 343 (cons nnrss-group (car e)))))) |
344 | 344 |
345 (deffoo nnrss-request-list (&optional server) | |
346 (nnrss-possibly-change-group nil server) | |
347 (nnrss-generate-active) | |
348 t) | |
349 | |
350 (deffoo nnrss-open-server (server &optional defs connectionless) | 345 (deffoo nnrss-open-server (server &optional defs connectionless) |
351 (nnrss-read-server-data server) | 346 (nnrss-read-server-data server) |
352 (nnoo-change-server 'nnrss server defs) | 347 (nnoo-change-server 'nnrss server defs) |
353 t) | 348 t) |
354 | 349 |
394 (erase-buffer) | 389 (erase-buffer) |
395 (dolist (elem nnrss-group-alist) | 390 (dolist (elem nnrss-group-alist) |
396 (if (third elem) | 391 (if (third elem) |
397 (insert (car elem) "\t" (third elem) "\n")))) | 392 (insert (car elem) "\t" (third elem) "\n")))) |
398 t) | 393 t) |
394 | |
395 (deffoo nnrss-retrieve-groups (groups &optional server) | |
396 (nnrss-possibly-change-group nil server) | |
397 (dolist (group groups) | |
398 (nnrss-check-group group server)) | |
399 (save-excursion | |
400 (set-buffer nntp-server-buffer) | |
401 (erase-buffer) | |
402 (dolist (group groups) | |
403 (let ((elem (assoc group nnrss-server-data))) | |
404 (insert (format "%S %s 1 y\n" group (or (cadr elem) 0))))) | |
405 'active)) | |
399 | 406 |
400 (nnoo-define-skeleton nnrss) | 407 (nnoo-define-skeleton nnrss) |
401 | 408 |
402 ;;; Internal functions | 409 ;;; Internal functions |
403 (eval-when-compile (defun xml-rpc-method-call (&rest args))) | 410 (eval-when-compile (defun xml-rpc-method-call (&rest args))) |
476 (not (nnrss-server-opened server))) | 483 (not (nnrss-server-opened server))) |
477 (nnrss-open-server server)) | 484 (nnrss-open-server server)) |
478 (when (and group (not (equal group nnrss-group))) | 485 (when (and group (not (equal group nnrss-group))) |
479 (nnrss-read-group-data group server) | 486 (nnrss-read-group-data group server) |
480 (setq nnrss-group group))) | 487 (setq nnrss-group group))) |
481 | |
482 (defvar nnrss-extra-categories '(nnrss-snarf-moreover-categories)) | |
483 | |
484 (defun nnrss-generate-active () | |
485 (when (y-or-n-p "Fetch extra categories? ") | |
486 (mapc 'funcall nnrss-extra-categories)) | |
487 (save-excursion | |
488 (set-buffer nntp-server-buffer) | |
489 (erase-buffer) | |
490 (dolist (elem nnrss-group-alist) | |
491 (insert (prin1-to-string (car elem)) " 0 1 y\n")) | |
492 (dolist (elem nnrss-server-data) | |
493 (unless (assoc (car elem) nnrss-group-alist) | |
494 (insert (prin1-to-string (car elem)) " 0 1 y\n"))))) | |
495 | 488 |
496 (autoload 'timezone-parse-date "timezone") | 489 (autoload 'timezone-parse-date "timezone") |
497 | 490 |
498 (defun nnrss-normalize-date (date) | 491 (defun nnrss-normalize-date (date) |
499 "Return a date string of DATE in the RFC822 style. | 492 "Return a date string of DATE in the RFC822 style. |
866 (defun nnrss-translate-file-chars (name) | 859 (defun nnrss-translate-file-chars (name) |
867 (let ((nnheader-file-name-translation-alist | 860 (let ((nnheader-file-name-translation-alist |
868 (append nnheader-file-name-translation-alist '((?' . ?_))))) | 861 (append nnheader-file-name-translation-alist '((?' . ?_))))) |
869 (nnheader-translate-file-chars name))) | 862 (nnheader-translate-file-chars name))) |
870 | 863 |
871 (defvar nnrss-moreover-url | |
872 "http://w.moreover.com/categories/category_list_rss.html" | |
873 "The url of moreover.com categories.") | |
874 | |
875 (defun nnrss-snarf-moreover-categories () | |
876 "Snarf RSS links from moreover.com." | |
877 (interactive) | |
878 (let (category name url changed) | |
879 (with-temp-buffer | |
880 (nnrss-insert nnrss-moreover-url) | |
881 (goto-char (point-min)) | |
882 (while (re-search-forward | |
883 "<a name=\"\\([^\"]+\\)\">\\|<a href=\"\\(http://[^\"]*moreover\\.com[^\"]+page\\?c=\\([^\"&]+\\)&o=rss\\)" nil t) | |
884 (if (match-string 1) | |
885 (setq category (match-string 1)) | |
886 (setq url (match-string 2) | |
887 name (mm-url-decode-entities-string | |
888 (rfc2231-decode-encoded-string | |
889 (match-string 3)))) | |
890 (if category | |
891 (setq name (concat category "." name))) | |
892 (unless (assoc name nnrss-server-data) | |
893 (setq changed t) | |
894 (push (list name 0 url) nnrss-server-data))))) | |
895 (if changed | |
896 (nnrss-save-server-data "")))) | |
897 | |
898 (defun nnrss-node-text (namespace local-name element) | 864 (defun nnrss-node-text (namespace local-name element) |
899 (let* ((node (assq (intern (concat namespace (symbol-name local-name))) | 865 (let* ((node (assq (intern (concat namespace (symbol-name local-name))) |
900 element)) | 866 element)) |
901 (text (if (and node (listp node)) | 867 (text (if (and node (listp node)) |
902 (nnrss-node-just-text node) | 868 (nnrss-node-just-text node) |