[REBOL] Re: REBOL Script to convert REBOL format to RSS XML
From: premshree::pillai::gmail::com at: 31-Dec-2004 14:56
On Fri, 31 Dec 2004 00:01:54 -0700, Gregg Irwin
<[greggirwin--mindspring--com]> wrote:
> Thanks Carl,
>
> CR> There's an RSS validator here...
>
> CR> http://feedvalidator.org/
>
> CR> which should tell you when you give it the feed. I think I found
> CR> TO-IDATE wanting with some Net stuff in the past - may have been
> CR> RSS.
>
> Looks like it wants time values in there, then it's OK. So, here's
> another real quick rewrite.
>
> Carl wants a link to a reader too. Not my area, but he should know about
>
http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=rss.r
> in addition to others.
>
> Not sure on the Apache question. Just an AddType for rss+xml or
> something? Sunanda? Premshree?
Yes, just an addtype application/rss+xml .rss
> I'll leave my contributions here and let someone take the next step(s)
> for Carl if they would.
>
> -- Gregg
>
> REBOL [
> Title: "RSS Generator for Carl's Blog"
> Date: 31-Dec-2004
> File: %carl-rss.r
> Home: http://www.livejournal.com/~premshree
> Author: ["Premshree Pillai" "Gregg Irwin"]
> Version: 0.0.3
> Purpose: {Generate valid RSS 2.0 feeds for Carl's blogs}
> Comment: {
> 0.0.2 Massive code changes for instructional purposes. --Gregg
> 0.0.3 More changes, knowing Carl actually wants to use it. :) --Gregg
> }
> ]
>
> make-rss-ctx: context [
>
> make-entry: func [series key] [
> rejoin [tab to tag! :key series/:key to tag! join #"/" :key newline]
> ]
>
> channel-entries: func [keys [block!] /local result] [
> result: copy ""
> foreach key keys [append result make-entry channel :key]
> result
> ]
>
> set 'make-rss func [channel items /local output] [
> output: copy ""
>
> repend output [
> <?xml version='1.0' encoding='utf-8' ?> <rss version='2.0'> newline
> <channel> newline
> channel-entries [title link description language copyright generator]
> newline
> ]
>
> foreach item items [
> repend output [
> tab <item> newline
> tab make-entry item 'title
> tab make-entry item 'link
> tab make-entry item 'description
> tab tab <guid isPermaLink='true'> item/link </guid> newline
> tab tab <pubDate> to-idate item/pubdate </pubDate> newline
> tab </item> newline newline
> ]
> ]
>
> repend output [</channel> newline </rss>]
> ]
> ]
>
> ;; Test Code below ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> comment {
> ;; channel data
> channel: [
> title "Carl's REBOL Blog - Vive la REBOLution"
> link http://www.rebol.net/
> description "describes this blog channel"
> language "en" ;"English"
> copyright "2005 Carl Sassenrath"
> generator "REBOL"
> ]
>
> ;; blog items go here
> items: [
> [
> title "Blog item title...."
> link http://www.rebol.net/cgi-bin/blog.r?view=0080
> description "synopsis of the blog goes here"
> author "Carl Sassenrath"
> pubdate 30-Dec-2004/23:24:32-7:00
> ]
> [
> title "Blog item title 2...."
> link http://www.rebol.net/cgi-bin/blog.r?view=0081
> description "synopsis of the blog goes here"
> author "Carl Sassenrath"
> pubdate 31-Dec-2004/23:24:32-7:00
> ]
> ]
>
> print make-rss channel items
> halt
> ;write %carl-rss2.xml output
> }
>
> --
> To unsubscribe from the list, just send an email to rebol-request
> at rebol.com with unsubscribe as the subject.
>
--
Premshree Pillai
http://www.livejournal.com/~premshree