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)