; ; ACM Technews ; (defun nndoc-technews-summary-type-p nil "Decide whether an article is an ACM TechNews digest" (let ((case-fold-search t)) (not (not (and (re-search-forward "^From: +\\(ACM \\)?TechNews" nil t) (re-search-forward "^Subject: +\\(ACM \\)?TechNews" nil t) ;(re-search-forward "^Dear ACM TechNews Subscriber:$" nil t) (re-search-forward "^ *Read the TechNews Online at:" nil t) ))) )) (defun nndoc-generate-technews-summary-head (article) "Generate headers for an ACM TechNews digest article" (let ((entry (cdr (assq article nndoc-dissection-alist))) from subject here) (save-excursion (set-buffer nndoc-current-buffer) (setq here (buffer-substring (car entry) (nth 3 entry))) (with-temp-buffer (insert here) (quoted-printable-decode-region (point-min) (point-max)) (goto-char (point-min)) (search-forward "") (setq here (point)) (search-forward "") (backward-char 4) (setq subject (buffer-substring here (point))) (if (re-search-forward ".*([01][0-9]/[0-3][0-9]/[0-9][0-9]) *" nil t) (progn (setq here (point)) (search-forward "") (backward-char 4) (skip-chars-backward " ") (if (equal here (point)) (setq from "ACM TechNews") (setq from (buffer-substring here (point))))) (setq from "ACM TechNews")) )) (insert "From: " from "\n" "Subject: " subject "\n") )) (defun nndoc-transform-technews-summary-article (article) "Transform a TechNews summary article so that it matches nndoc expectations." (let (here) (goto-char (point-min)) (quoted-printable-decode-region (point-min) (point-max)) (gnus-article-de-quoted-unreadable t) (replace-string "
" "" nil (point-min) (point-max)) (goto-char (point-min)) (search-forward "") (delete-region (point-min) (point)) (insert "Subject: ") (search-forward "") (delete-backward-char 4) (setq here (point)) (end-of-line) (delete-region here (point)) (forward-char 1) (setq here (point)) (if (re-search-forward " *" nil t) (progn (delete-region here (point)) (insert "From: ") (search-forward "") (backward-char 4) (skip-chars-backward " ") (setq here (point)) (end-of-line) (delete-region here (point))) (insert ("From: ACM TechNews"))) (forward-char 1) (insert "\n") (while (looking-at "\n") (delete-char 1)) (search-forward "
\n") (article-begin . "^\n") (head-end . "\n") (body-begin . "^

") (body-end . "^
") (file-end . "^Abstract News ©") (generate-head-function . nndoc-generate-technews-summary-head) (article-transform-function . nndoc-transform-technews-summary-article) ) t)