rebol[ Title: "xword.r" Author: "Tim Wylie" Date: "May 23, 2007" Description: "This is a gui to wrap the xanga.r script" ] ;linux #include %"/home/timwylie/programs/rebol/rebol-sdk/gfx-colors.r" #include %"/home/timwylie/programs/rebol/rebol-sdk/gfx-funcs.r" #include %"/home/timwylie/programs/rebol/rebol-sdk/prot.r" ;windows ;#include %"/c/program files/rebol/rebol-sdk/source/gfx-colors.r" ;#include %"/c/program files/rebol/rebol-sdk/source/gfx-funcs.r" ;#include %"/c/program files/rebol/rebol-sdk/source/prot.r" #include %"rebgui.r" #include %"xanga.r" unless value? 'display [do %"rebgui.r"] unless value? 'xanga [do %xanga.r] ext-output: func[str[string!] ][append xstatus/text rejoin[str newline] all[xstatus/pane/ratio < 1 set-data xstatus/pane 1.0] show xstatus] display "Xanga XML Exporter" [ tab-panel data[ "Main" [ group-box "Site" #L data[ text 20 "Xanga URL:" xsite: field 60 "http://www.xanga.com/user-name" return text 20 "Site Title:" xtitle: field 60 return text 20 "Output File:" xfilename: field 60 "xanga-export.xml" return button "Clear Data" [xanga/clear-data clear xlist/data clear xpcom/data xptitle/text: none xpdate/text: none xptext/text: none xstatus/text: none xlist/redraw xpcom/redraw show xptitle show xpdate show xptext show xstatus] button "Get Data"[ either exists? to-url xsite/text [ xanga/export to-url xsite/text ;xanga/get-pagelist to-url xsite/text xanga/get-posts clear xlist/data xi: 1 foreach xpost xanga/posts[ xlist/add-row to-block reduce[xi xpost/date] xi: xi + 1 ] ][ext-output "Site does not exist."] ] button "Export" [ either xanga/post-data? [xanga/export-wpxml/title/url to-file xfilename/text xtitle/text to-url xsite/text] [ext-output "No data"] ] ] return group-box "Status" #LV data [ xstatus: area options[info] #LV ;77x50 ] ] "Posts" [ group-box "List" #L data[ xlist: table 85 options["Post #" left .3 "Date" left .7] data [] [xrow: xlist/picked/1 clear xpcom/data xpost: xanga/posts/:xrow xptitle/text: either none? xpost/title["No Title"][xpost/title] xpdate/text: xpost/date xptext/text: xpost/text foreach xcom xpost/comments[unless none? xcom[xpcom/add-row to-block reduce[xcom/user xcom/date xcom/text]]] show xptitle show xpdate show xptext xpcom/redraw ] ] return group-box "Post" #L data [ xpdate: text 40 "Date" xptitle: text 40 "Title" return ;bar #L return xptext: area options[info] #L return xpcom: table 85 options ["Comment by" left .4 "Date" left .2 "Text" left .4] data [] ] ] "Config" [ text "File:" xsavefile: field "posts.r" return button "Save" [if xanga/post-data?[xanga/save-posts to-file xsavefile/text]] text "Save posts in a data format." return button "Load" [if xf: request-file [ xanga/load-posts to-file xf clear xlist/data xi: 1 foreach xpost xanga/posts[ xlist/add-row to-block reduce[xi xpost/date] xi: xi + 1 ] ] ] text "Load a past saved file posts." return group-box "About" #L data [ text 20 "Author:" text "Tim Wylie" return text 20 "Date:" text "May 23, 2007" ] ] ] ] do-events ;to use simply do x: load %filename load-markup: func[str[string!] /locals tag_val str_val][ return_block: copy [] parse/all str [ any[ ["<" copy tag_val to ">"(if error? try[append return_block to-tag tag_val] [append return_block rejoin["<" tag_val ">"]])] |[">" copy str_val to "<"(append return_block str_val)]] ] return_block ]