*emacsЗа что люблю емакс, так за то, что любые идиотские идеи можно реализовать достаточно быстро. Вот например захотелось мне покачать музло из.. UseNET :] Стандартный X m немного не удобен тем, что не следит за последовательностью кусков, о которых упоминается в заголовке. Нет проблем! Немного дотюним:
(defun gnus-summary-save-parts-1 (type dir handle reverse)
(if (stringp (car handle))
(mapcar (lambda (h) (gnus-summary-save-parts-1 type dir h reverse))
(cdr handle))
(when (if reverse
(not (string-match type (mm-handle-media-type handle)))
(string-match type (mm-handle-media-type handle)))
(let ((file
(expand-file-name
(format
"%s%s"
(let ((header-subject
(mail-header-subject
(gnus-summary-article-header
(cdr gnus-article-current)))))
(if (string-match "(\\([0-9]+\\)/\\([0-9]+\\))" header-subject)
(format "%03d.%03d "
(string-to-number
(substring header-subject (match-beginning 1) (match-end 1)))
(string-to-number
(substring header-subject (match-beginning 2) (match-end 2))))
""))
(gnus-map-function
mm-file-name-rewrite-functions
(file-name-nondirectory
(or
(mail-content-type-get
(mm-handle-disposition handle) 'filename)
(mail-content-type-get
(mm-handle-type handle) 'name)
(format "%s.%d.%d" gnus-newsgroup-name
(cdr gnus-article-current)
gnus-summary-save-parts-counter)))))
dir)))
(incf gnus-summary-save-parts-counter)
(print file)
(if (not (file-exists-p file))
(mm-save-part-to-file handle file)
(mm-save-part-to-file handle (format "%d.%s" file (cdr gnus-article-current))))))))
#595626
from Home,
22 months agoRecommended by (1): @tiradoir