diff options
Diffstat (limited to 'files/config.scm')
-rw-r--r-- | files/config.scm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/files/config.scm b/files/config.scm new file mode 100644 index 0000000..9b20bcf --- /dev/null +++ b/files/config.scm @@ -0,0 +1,52 @@ +(define-module (config) + :export (feeds)) + +(use-modules + (sxml xpath) + (ice-9 regex) + + (rss-filter feed-handler) + + ((ice-9 i18n) :select (make-locale)) + ((texinfo string-utils) :select (escape-special-chars)) + + ((calp util) :select (->)) + ((datetime) :select (datetime datetime->string + string->datetime))) + + +(define feeds + (list + (make-feed + "https://lwn.net/headlines/Features" + `((rss:item + . ,(lambda (key . children) + (define tag (cons key children)) + (call-with-values (lambda () (apply values ((sxpath '(rss:title *text*)) tag))) + (case-lambda (() tag) + ((title . _) + (if (string-match (escape-special-chars "^[$]" "[]$" #\\) + title) + '() tag)))))))) + + (make-feed + "https://swordscomic.com/comic/feed/" + `((rss:pubDate + . ,(lambda (key . children) + (list key + (-> (car children) + (string->datetime "~b. ~d, ~Y, ~H:~M ~p" (make-locale LC_TIME "en_US.UTF-8")) + (datetime->string "~Y-~m-~dT~H:~M:~S"))))) + + (rss:description + . ,(lambda (key . children) + (cons key + ;; Each entry has a <style/> tag at the + ;; beggining, which brakes the short preview on + ;; NetNewsWire. This removes it + (cond ((string-match "</style>" (car children)) + => (lambda (m) + (list (string-drop (car children) (match:end m))))) + (else children))))) + )) + )) |