;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\207" [require rx subr-x dom shr cl-lib] 2) (defalias 'webfeeder-has-libxml-p #[0 "\300\301!\207" [fboundp libxml-parse-html-region] 2]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315%\207" [custom-declare-group webfeeder nil "Predefined configurations for `webfeeder'." :group nxml custom-declare-variable webfeeder-default-author funcall function #[0 "\300\207" [#1="Unknown author"] 1 #1#] "When input files don't provide an author and it is required, use this value." :type string] 6) #@49 Function to fetch the author from an HTML file. (defvar webfeeder-author-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-author-libxml webfeeder-author-default] 1) (#$ . 999)) #@47 Function to fetch the date from an HTML file. (defvar webfeeder-date-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-date-libxml webfeeder-date-default] 1) (#$ . 1217)) #@48 Function to fetch the title from an HTML file. (defvar webfeeder-title-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-title-libxml webfeeder-title-default] 1) (#$ . 1428)) #@51 Function to fetch the subtitle from an HTML file. (defvar webfeeder-subtitle-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-subtitle-libxml webfeeder-subtitle-default] 1) (#$ . 1643)) #@90 Function to fecth the HTML body. This can be customized to choose which part to include. (defvar webfeeder-body-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-body-libxml webfeeder-body-default] 1) (#$ . 1870)) #@49 Function to fecth the categories from the HTML. (defvar webfeeder-categories-function 'ignore (#$ . 2124)) #@52 Function to fetch the generator from an HTML file. (defvar webfeeder-generator-function (byte-code "\300 \203\301\207\302\207" [webfeeder-has-libxml-p webfeeder-generator-libxml webfeeder-generator-default] 1) (#$ . 2237)) #@130 Return the author from the HTML-FILE, or nil if not found. This is less reliable than `webfeeder-author-libxml'. (fn HTML-FILE) (defalias 'webfeeder-author-default #[257 "\301\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210eb\210\314\315!\210\316\317\320!!*\262)\207" [case-fold-search t generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents search-forward-regexp "^" match-string 1 date-to-time " DummyDateSuffix"] 8 (#$ . 3780)]) #@166 Return the date from the HTML-FILE. The date is returned as time value. See `current-time-string'. This requires Emacs to be linked against libxml. (fn HTML-FILE) (defalias 'webfeeder-date-libxml #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210\312ed\"\313\314\315\"@!\316\2035\317\320\"\2035\321\322\"\206<\313\323\324\"@!\325P!\266\202*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents libxml-parse-html-region dom-text dom-by-class "date" date-to-time string-match "\\([[:digit:]]\\{4\\}-[[:digit:]]\\{2\\}-[[:digit:]]\\{2\\}\\)" match-string 1 dom-by-tag comment " DummyDateSuffix"] 9 (#$ . 4412)]) #@107 Return the title from the HTML-FILE. This is less reliable than `webfeeder-title-libxml'. (fn HTML-FILE) (defalias 'webfeeder-title-default #[257 "\301\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210eb\210\314\315!\210\316\317\320!!*\262)\207" [case-fold-search t generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents search-forward-regexp "^\\([^<]*\\)" webfeeder--parse-xml-string match-string 1] 8 (#$ . 5156)]) #@103 Return the title from the HTML-FILE. This requires Emacs to be linked against libxml. (fn HTML-FILE) (defalias 'webfeeder-title-libxml #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210\312ed\"\313\314\315\"@!\211\316\230?\205*\211\266\202*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents libxml-parse-html-region dom-text dom-by-tag title ""] 8 (#$ . 5702)]) #@113 Return the subtitle from the HTML-FILE. This is less reliable than `webfeeder-subtitle-libxml'. (fn HTML-FILE) (defalias 'webfeeder-subtitle-default #[257 "\301\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210eb\210\314\315!\210\316\317\320!!*\262)\207" [case-fold-search t generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents search-forward-regexp "^\\([^<]*\\)" webfeeder--parse-xml-string match-string 1] 8 (#$ . 6195)]) #@106 Return the subtitle from the HTML-FILE. This requires Emacs to be linked against libxml. (fn HTML-FILE) (defalias 'webfeeder-subtitle-libxml #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210\312ed\"\313\314\315\"@!\211\316\230?\205*\211\266\202*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents libxml-parse-html-region dom-text dom-by-class "subtitle" ""] 8 (#$ . 6767)]) #@212 Return the body of HTML-FILE as a string. If EXCLUDE-TOC is non-nil, the table-of-contents is not included in the body. This requires Emacs to be linked against libxml. (fn HTML-FILE &optional URL EXCLUDE-TOC) (defalias 'webfeeder-body-libxml #[769 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210\312ed\"\313\2032\314\315\"\206+\316\317\"\320@\"\266\314\321\"\206=\322\323\"\320@\"\266\316\324\"@\262\325!\266\202*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents libxml-parse-html-region nil dom-by-tag nav dom-by-id "table-of-contents" dom-remove-node header dom-by-class "title" "content" shr-dom-to-xml] 10 (#$ . 7273)]) #@256 Return the body of HTML-FILE as a string. Relative links are made absolute to URL. If EXCLUDE-TOC is non-nil, the table-of-contents is not included in the body. This is less reliable than `webfeeder-body-libxml'. (fn HTML-FILE &optional URL EXCLUDE-TOC) (defalias 'webfeeder-body-default #[769 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210eb\210\312\313\314\315#\203B\316\317!\320\321\"\204>\317\224b\210\322\323\324#\325Pc\210\303\225b\210\210\202\326eb\210\203R\327\330\314\331#\204Yeb\210\327\332!\210`db\210\333\334!\210`\"*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents re-search-forward "href=\"\\([^\"]*\\)\"" nil t match-string 1 string-match "://" replace-regexp-in-string "/*$" "" "/" buffer-substring-no-properties search-forward "" noerror "" search-backward "
\204\303\304\305D\"\210\306H\205H\307\302!>\204&\303\304\305D\"\210\306H!\211A@\205F\310A@@\203C\311\312\313@!\"\202D\314\315R\262\316\302!>\204Y\303\304\305D\"\210\317H\320\321\302!>\204o\303\304\305 D\"\210\322H\323\302 !>\204\205\303\304\305 D\"\210\324H\205\245\325\326\302 !>\204\237\303\304\305 D\"\210\n\324H\327#\330\302 !>\204\267\303\304\305 D\"\210\n\331H\332\311\333\302!>\204\317\303\304\305D\"\210\331H\"\334\335\302!>\204\347\303\304\305D\"\210\336H\206\357\337!\340\341\260\207" [cl-struct-webfeeder-item-tags "\n" type-of signal wrong-type-argument webfeeder-item 1 webfeeder--extract-name+email " " format " (%s)" xml-escape-string "" "\n" " " 3 "\n" " \n" 7 mapconcat #[257 "\300\301Q\207" [" " ""] 4 "\n\n(fn CAT)"] "\n" " " 6 "\n" " %s\n" " " webfeeder--date-to-rfc822 2 0 "\n" "\n"] 20 (#$ . 10600)]) #@230 Like `mail-extract-address-components' but does not set the address part if email is missing. For instance, calling this function on "foo" returns ("foo" nil). Calling it on foo@bar.abc returns (nil "foo@bar.abc"). (fn ADDRESS) (defalias 'webfeeder--extract-name+email #[257 "\300!\301\302A@\"\204\211A@\240\210\211\303\241\210\211@A@\230\203#\211\303\241\210\211\207" [mail-extract-address-components string-match "@" nil] 5 (#$ . 11825)]) #@15 (fn AUTHOR) (defalias 'webfeeder--format-atom-author #[257 "\300\301!\211@\203\211A@\203\302\303\304@!A@#\2020\211@\203*\302\305\304!\"\2020\302\306\304!\"\262\307Q\207" ["" webfeeder--extract-name+email format "%s%s" xml-escape-string "%s" "%s" "\n"] 7 (#$ . 12280)]) #@95 Return an atom ITEM as a string. The date is set to epoch if the item date is nil. (fn ITEM) (defalias 'webfeeder-item-to-atom #[257 "\302\303\304!>\204\305\306\307D\"\210\310H\311\312\313\304!>\204(\305\306\307 D\"\210\314H\2060 !P\304!>\204C\305\306\307D\"\210\315H\205a\316\304!>\204[\305\306\307 D\"\210\315H\317Q\320\304!>\204s\305\306\307\nD\"\210\321H\322\304\n!>\204\211\305\306\307\fD\"\210 \323H\205\251\324\325\304\f!>\204\243\305\306\307D\"\210 \323H\326#\327\304\f!>\204\273\305\306\307D\"\210 \330H\331\332\304!>\204\322\305\306\307D\"\210\330H\333\334\335\304!>\204\352\305\306\307D\"\210\336H\206\362\337!\340\341\260\207" [cl-struct-webfeeder-item-tags webfeeder-default-author "\n" " " type-of signal wrong-type-argument webfeeder-item 3 "\n" " " webfeeder--format-atom-author 1 4 " " "\n" " \n" 7 mapconcat #[257 "\300\301Q\207" [" " ""] 4 "\n\n(fn CAT)"] "\n" " \n" " " "\n" " " webfeeder--date-to-rfc3339 2 0 "\n" "\n"] 23 (#$ . 12643)]) #@73 compiler-macro for inlining `webfeeder-item-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-p (and (memq (type-of cl-x) cl-struct-webfeeder-item-tags) t)) nil] 9 (#$ . 13860)]) (put 'webfeeder-item-p 'compiler-macro 'webfeeder-item-p--cmacro) #@13 (fn CL-X) (defalias 'webfeeder-item-p #[257 "\301!>\205 \302\207" [cl-struct-webfeeder-item-tags type-of t] 3 (#$ . 14219)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put webfeeder-item-p side-effect-free error-free put webfeeder-item cl-deftype-satisfies] 5) #@78 compiler-macro for inlining `webfeeder-item-author'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-author--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-author (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 1)) nil] 9 (#$ . 14510)]) (put 'webfeeder-item-author 'compiler-macro 'webfeeder-item-author--cmacro) #@66 Access slot "author" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-author #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 1] 5 (#$ . 14935)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-author side-effect-free t] 4) #@76 compiler-macro for inlining `webfeeder-item-date'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-date--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-date (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 2)) nil] 9 (#$ . 15294)]) (put 'webfeeder-item-date 'compiler-macro 'webfeeder-item-date--cmacro) #@64 Access slot "date" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-date #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 2] 5 (#$ . 15709)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-date side-effect-free t] 4) #@77 compiler-macro for inlining `webfeeder-item-title'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-title--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-title (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 3)) nil] 9 (#$ . 16062)]) (put 'webfeeder-item-title 'compiler-macro 'webfeeder-item-title--cmacro) #@65 Access slot "title" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-title #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 3] 5 (#$ . 16482)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-title side-effect-free t] 4) #@80 compiler-macro for inlining `webfeeder-item-subtitle'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-subtitle--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-subtitle (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 4)) nil] 9 (#$ . 16838)]) (put 'webfeeder-item-subtitle 'compiler-macro 'webfeeder-item-subtitle--cmacro) #@68 Access slot "subtitle" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-subtitle #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 4] 5 (#$ . 17273)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-subtitle side-effect-free t] 4) #@76 compiler-macro for inlining `webfeeder-item-body'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-body--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-body (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 5)) nil] 9 (#$ . 17638)]) (put 'webfeeder-item-body 'compiler-macro 'webfeeder-item-body--cmacro) #@64 Access slot "body" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-body #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 5] 5 (#$ . 18053)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-body side-effect-free t] 4) #@75 compiler-macro for inlining `webfeeder-item-url'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-url--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-url (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 6)) nil] 9 (#$ . 18406)]) (put 'webfeeder-item-url 'compiler-macro 'webfeeder-item-url--cmacro) #@63 Access slot "url" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-url #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 6] 5 (#$ . 18816)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-url side-effect-free t] 4) #@82 compiler-macro for inlining `webfeeder-item-categories'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-categories--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-categories (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 7)) nil] 9 (#$ . 19166)]) (put 'webfeeder-item-categories 'compiler-macro 'webfeeder-item-categories--cmacro) #@70 Access slot "categories" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-categories #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 7] 5 (#$ . 19611)]) (byte-code "\300\301\302\303#\300\207" [function-put webfeeder-item-categories side-effect-free t] 4) #@81 compiler-macro for inlining `webfeeder-item-generator'. (fn CL-WHOLE-ARG CL-X) (defalias 'webfeeder-item-generator--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block webfeeder-item-generator (or (webfeeder-item-p cl-x) (signal 'wrong-type-argument (list 'webfeeder-item cl-x))) (aref cl-x 8)) nil] 9 (#$ . 19982)]) (put 'webfeeder-item-generator 'compiler-macro 'webfeeder-item-generator--cmacro) #@69 Access slot "generator" of `webfeeder-item' struct CL-X. (fn CL-X) (defalias 'webfeeder-item-generator #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-webfeeder-item-tags type-of signal wrong-type-argument webfeeder-item 8] 5 (#$ . 20422)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put webfeeder-item-generator side-effect-free t defalias copy-webfeeder-item copy-sequence] 4) #@139 compiler-macro for inlining `make-webfeeder-item'. (fn CL-WHOLE &cl-quote &key AUTHOR DATE TITLE SUBTITLE BODY URL CATEGORIES GENERATOR) (defalias 'make-webfeeder-item--cmacro #[385 "\300\301\"A@\300\302\"\206\303A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\300\311\"A@\211\203d\211@\312>\203L\211AA\262\2029\313\n>A@\203[\314\262\2029\315\316@\"\210\2029\210\317\320\321\314 \314        & \207" [plist-member :author :date (nil 0) :title :subtitle :body :url :categories :generator (:author :date :title :subtitle :body :url :categories :generator :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:author :date :title :subtitle :body :url :categories :generator)" cl--defsubst-expand (author date title subtitle body url categories generator) (cl-block make-webfeeder-item (record 'webfeeder-item author date title subtitle body url categories generator))] 24 (#$ . 20844)]) (put 'make-webfeeder-item 'compiler-macro 'make-webfeeder-item--cmacro) #@119 Constructor for objects of type `webfeeder-item'. (fn &key AUTHOR DATE TITLE SUBTITLE BODY URL CATEGORIES GENERATOR) (defalias 'make-webfeeder-item #[128 "\300\301\"A@\300\302\"\206\303A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\300\311\"A@\211\203d\211@\312>\203L\211AA\262\2029\313\n>A@\203[\314\262\2029\315\316@\"\210\2029\210\317\320        & \207" [plist-member :author :date (nil 0) :title :subtitle :body :url :categories :generator (:author :date :title :subtitle :body :url :categories :generator :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:author :date :title :subtitle :body :url :categories :generator)" record webfeeder-item] 19 (#$ . 21883)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-webfeeder-item side-effect-free t cl-struct-define webfeeder-item nil cl-structure-object record ((cl-tag-slot) (author) (date 0) (title) (subtitle) (body) (url) (categories) (generator)) cl-struct-webfeeder-item-tags] 11) #@62 Like `xml-escape-string' but return nil on nil. (fn STRING) (defalias 'webfeeder--xml-escape-string #[257 "\211\205\300!\207" [xml-escape-string] 3 (#$ . 22956)]) #@49 Call `xml-parse-string' on string. (fn STRING) (defalias 'webfeeder--parse-xml-string #[257 "\211\205\"\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216c\210eb\210\311 *\262\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 xml-parse-string] 8 (#$ . 23129)]) #@509 Parse the source HTML-FILES and return a list of webfeeder-items. PROJECT-DIR is where HTML files are also assumed to reside. PROJECT-DIR is the local root of the website hosted at URL. HTML parsing details can be customized through the following variables: - `webfeeder-author-function' - `webfeeder-date-function' - `webfeeder-title-function' - `webfeeder-subtitle-function' - `webfeeder-body-function'. - `webfeeder-categories-function'. - `webfeeder-generator-function'. (fn PROJECT-DIR URL HTML-FILES) (defalias 'webfeeder-html-files-to-items #[771 "\211\306\211\211\211\211\211\211\211\211\211\211 :\203\212 @\262 \307 \"\262\n\310\311\312#\313\fQ\262 \n!\262 \307\f\"!\206=\314\262\315\n !!\206J\262\315  !!\262\f\n\n\316#\262 \n!\262\n!\262\317\320     \n\n& B\262 A\262\f\202\f\211\237\207" [webfeeder-author-function webfeeder-date-function webfeeder-title-function webfeeder-subtitle-function webfeeder-body-function webfeeder-categories-function nil expand-file-name replace-regexp-in-string "/*$" "" "/" 0 webfeeder--xml-escape-string exclude-toc record webfeeder-item webfeeder-generator-function] 25 (#$ . 23483)]) #@698 Return a webfeed string in RSS format that contains every FEED-ITEMS. WEBFEED is the path where the feed is intended to be stored, relative to URL. A feed can have a TITLE and DESCRIPTION: if not, the URL will be used. When BUILD-DATE is nil, use `current-time'. Otherwise it can be a time expression as in `current-time'. 0 means EPOCH. When provided, FEED-ITEMS are only added if (PREDICATE FEED-ITEM) returns non-nil. The number of items is limited to MAX-ENTRIES. When nil, all items are included. FEED-ITEMS can be generated with `webfeeder-html-files-to-items'. (fn WEBFEED URL FEED-ITEMS &key TITLE DESCRIPTION AUTHOR GENERATOR BUILD-DATE PREDICATE MAX-ENTRIES &allow-other-keys) (defalias 'webfeeder-make-rss #[899 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\2063 \262\310\311!r\211q\210\312\313\314\315\316!\317\"\320$\216\321\322\323\203X\324 \325Q\202Y\326\327\f\330\331\206e\332\333\206m\334\335Q\336\337\340\341\342\343\344\206\345\346Q\"\203\221\347\326\350\211$\266\202\202\224\266\202#\351\352\206\240\353 !\354\261\210\355\n\356\"\206\260\211G\357S\211\262\313Y\203\335:\203\335@\262\203\321!\203\326\360!c\210A\262\202\262\266\361\362\261\210\363 *\262\207" [plist-member :title :description :author :generator :build-date :predicate :max-entries generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n" "\n" "\n" "" "\n" "" "" "\n" "" "\n" "" "Emacs webfeeder.el" "\n" "" "\n" format "\n" "/" string-match "\\(?:" "[ \n ]+" "\\)\\'" replace-match t "" webfeeder--date-to-rfc822 current-time "\n" sort #[514 "\301\302!>\204\303\304\305D\"\210\306H\302!>\204#\303\304\305D\"\210\306H\"\207" [cl-struct-webfeeder-item-tags time-less-p type-of signal wrong-type-argument webfeeder-item 2] 8 "\n\n(fn X Y)"] nil webfeeder-item-to-rss "\n" "\n" buffer-string] 35 (#$ . 24667)]) #@680 Return a webfeed string in Atom format that contains every FEED-ITEMS. WEBFEED is the path where the feed is intended to be stored, relative to URL. A feed can have a TITLE: if not, the URL will be used. When BUILD-DATE is nil, use `current-time'. Otherwise it can be a time expression as in `current-time'. 0 means EPOCH. When provided, FEED-ITEMS are only added if (PREDICATE FEED-ITEM) returns non-nil. The number of items is limited to MAX-ENTRIES. When nil, all items are included. FEED-ITEMS can be generated with `webfeeder-html-files-to-items'. (fn WEBFEED URL FEED-ITEMS &key TITLE SUBTITLE AUTHOR GENERATOR BUILD-DATE PREDICATE MAX-ENTRIES &allow-other-keys) (defalias 'webfeeder-make-atom #[899 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\2063 \262\310\311!r\211q\210\312\313\314\315\316!\317\"\320$\216\n\321\322\323\206R\324\325Q\"\203d\326\327\330\211$\266\202\202g\266\202\321 Q\331\332\203y\333 !\202z\327\334\f\335 \203\213\336\337Q\202\214\327\340 \206\223\341\342Q\343\344\345\346 \"\347 \350\351\352\206\253\353 !\354\261\266\355\n\356\"\206\274\211G\357S\211\262\313Y\203\351:\203\351@\262\203\335!\203\342\360!c\210A\262\202\276\266\361c\210\362 *\262\207" [plist-member :title :subtitle :author :generator :build-date :predicate :max-entries generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "/" string-match "\\(?:" "[ \n ]+" "\\)\\'" replace-match "" t "\n" "" webfeeder--format-atom-author "" "\n" "" "\n" "" "Emacs webfeeder.el" "\n" "\n" format "\n" "" "\n" "" webfeeder--date-to-rfc3339 current-time "\n" sort #[514 "\301\302!>\204\303\304\305D\"\210\306H\302!>\204#\303\304\305D\"\210\306H\"\207" [cl-struct-webfeeder-item-tags time-less-p type-of signal wrong-type-argument webfeeder-item 2] 8 "\n\n(fn X Y)"] nil webfeeder-item-to-atom "\n" buffer-string] 31 (#$ . 27010)]) #@494 Build a WEBFEED out of HTML-FILES. The WEBFEED is an XML file that contains every blog post in a machine-readable format. The WEBFEED file is stored in PROJECT-DIR where HTML-FILES are also assumed to reside. For more details on the other arguments, see `webfeeder-make-atom', `webfeeder-make-rss' and `webfeeder-html-files-to-items'. (fn WEBFEED PROJECT-DIR URL HTML-FILES &key TITLE SUBTITLE DESCRIPTION AUTHOR GENERATOR BUILD-DATE PREDICATE MAX-ENTRIES (BUILDER \='webfeeder-make-atom)) (defalias 'webfeeder-build #[1156 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\300 \311\"\206<\312A@ \211\203k\211@\313>\203S\211AA\262\202@\314 >A@\203b\315\262\202@\316\317@\"\210\202@\210\320   #\321\"\322\323\324!!\325\326\327\330\331!\332\"\333$\216r\211q\210\304 \301\302\303\305\306\307\310&c)rq\210\334\315\211\315\326%\210*\266\202\262\207" [plist-member :title :subtitle :description :author :generator :build-date :predicate :max-entries :builder (nil webfeeder-make-atom) (:title :subtitle :description :author :generator :build-date :predicate :max-entries :builder :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:title :subtitle :description :author :generator :build-date :predicate :max-entries :builder)" webfeeder-html-files-to-items expand-file-name get-buffer-create generate-new-buffer-name " *temp file*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 write-region] 37 (#$ . 29261)]) (provide 'webfeeder)