KfXFFFF000000060001001777AA000000000075000000001001710000001-7FFB6FBE1800000480048061C200-11821182102061C222FFFF0103680000100000037000000010BF4084061C22271028C0001161C16D00002000000C400000000BF,This Tool makes it easy use Radio 8 to maintain a weblog with multiple authors, by automatically posting new items from selected news feeds to your home page, or to a category of your choice.00040000000A0000000201C1100050000000A0000000201C100006000000640000000210920FFFF0900000 20 10920FFFF0A00000 20 00070000002F00000002010180101200008000001320000000240,Verdana40,401C230 1040,Arial40,407D10 100009000000150000000235121F35121F000A000000150000000261C22261C222000B00000005000000020000C00000016000000016823AAD01E00000F0000002100000000400 10 00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAr۸sgy"Vs  !6 BN Z s author Dave Winer authorEmaildave@userland.com descriptionX homePageUrl/http://radio.userland.com/multiAuthorWeblogToolnameMulti-Author Weblog releaseDateversion1.0"bjVerdana B  lLANDmac on configurationPage () Changes 5/6/02; 2:22:17 PM by JES Created. Run the configuration page for the multiAuthorWeblog Tool. local (pta = html.getPageTableAddress ()) local (adrblog = radio.weblog.init ()) local (adrdata = multiAuthorWeblogSuite.init ()) local (xmlImg = radio.images.systemImageRef ("icons/xml", flFileUrl:pta^.radioResponder.flSameMachine)) pta^.title = "Multi-Author Weblog Tool" local (htmltext = "", indentlevel = 0) on add (s) htmltext = htmltext + (string.filledstring ("\t", indentlevel) + s + "\r\n"); bundle //intro text add ("

On this page you can configure Radio 8 to maintain a weblog with multiple authors. Each author uses their own copy of Radio to edit their content, and your copy of Radio automatically posts their items to your multi-author weblog, when the news aggregator picks up the authors' new posts. You can choose to post new items to your home page, or to a category.

") if pta^.method == "POST" workspace.pt = pta^; edit (@workspace.pt) local (adrargs = @pta^.radioResponder.postArgs) if defined (adrargs^.submit) adrdata^.multiAuthorWeblog.prefs.outputCategory = string.urlDecode (adrargs^.category) local (adrfeeds = @adrdata^.multiAuthorWeblog.feeds) local (adr) for adr in @adrdata^.services //handle all of the checkboxes local (url = nameOf (adr^)) if defined (adrfeeds^.[url]) //check for unchecked feed if not defined (adrargs^.[string.urlEncode (url)] ) //unchecked delete (@adrfeeds^.[url]) continue else //check for newly checked feed if defined (adrargs^.[string.urlEncode (url)] ) //checked local (adrfeed = @adrfeeds^.[url]) new (tableType, adrfeed) multiAuthorWeblogSuite.initFeed (adrfeed) bundle //configuration form add ("
"); indentlevel++ bundle //add category popup add ("Choose a category to route new items to: ") add (""); indentlevel-- bundle //explanation of the subscriptions table add ("


The following table lists the news feeds you've subscribed to. To add a feed to your multi-author weblog, check it and then click the Submit button at the bottom of the page. When the news aggregator does its hourly scan, any new items in the checked feeds will be posted to your multi-author weblog.") add ("
"); indentlevel++ bundle //add subscriptions bundle //start the table add ("
"); indentlevel++ add (""); indentlevel++ local (adr, adrsort, sortedtable) bundle //fill sorted table local (adrsort) new (tabletype, @sortedtable) for adr in @adrdata^.services if defined (adr^.compilation) if sizeof (adr^.compilation) > 0 try //missing channeltitle doesn't stop us -- 3/20/02 DW local (channeltitle = adr^.compilation.channeltitle) if sizeof (channeltitle) > 0 adrsort = @sortedtable.[adr^.compilation.channeltitle] if defined (adrsort^) //collision local (ct = 1) loop adrsort = @sortedtable.[adr^.compilation.channeltitle + "." + ct++] if not defined (adrsort^) break adrsort^ = nameof (adr^) for adrsort in @sortedtable adr = @adrdata^.services.[adrsort^] local (url = nameOf (adr^)) local (title = url, link = "", description = "") try {title = adr^.compilation.channeltitle} try {description = adr^.compilation.channeldescription} try {link = adr^.compilation.channellink} if link != "" //hot up the title title = "" + radio.string.decodeEntities (title) + "" local (checked = "") if defined (adrdata^.multiAuthorWeblog.feeds.[url]) checked = " checked" add (""); indentlevel++ add ("") add ("") add ("") add ("") add ("") add (""); indentlevel-- bundle //close the table add ("
" + radio.string.decodeEntities (title, false, false) + "" + radio.string.getDateString (adr^.timeLastChange, false) + "" + adr^.ctChanges + "" + xmlimg + "
"); indentlevel-- add ("
"); indentlevel-- bundle //submit button add ("
") add ("
"); indentlevel-- add ("
"); indentlevel-- return (htmltext) b#r9Arial Ѹ!xRLANDmac Changes 5/8/02; 12:27:16 AM by JES Changed the default outputCategory to the empty string, meaning that posts are routed to the home page. local (adrdata = xml.aggregator.init ()) if not defined (adrdata^.callbacks.storyArrived.multiAuthorWeblog) adrdata^.callbacks.storyArrived.multiAuthorWeblog = @multiAuthorWeblogSuite.storyArrivedCallback if not defined (adrdata^.callbacks.preScan.multiAuthorWeblog) adrdata^.callbacks.preScan.multiAuthorWeblog = @multiAuthorWeblogSuite.preScanCallback if not defined (adrdata^.callbacks.postScan.multiAuthorWeblog) adrdata^.callbacks.postScan.multiAuthorWeblog = @multiAuthorWeblogSuite.postScanCallback if not defined (adrdata^.multiAuthorWeblog) new (tabletype, @adrdata^.multiAuthorWeblog) if not defined (adrdata^.multiAuthorWeblog.feeds) new (tabletype, @adrdata^.multiAuthorWeblog.feeds) if not defined (adrdata^.multiAuthorWeblog.prefs) new (tabletype, @adrdata^.multiAuthorWeblog.prefs) if not defined (adrdata^.multiAuthorWeblog.prefs.outputCategory) adrdata^.multiAuthorWeblog.prefs.outputCategory = "" return (adrdata) #1Arial LANDmac on initFeed (adrfeed) if not defined (adrfeed^.ctposts) adrfeed^.ctposts = 0 if not defined (adrfeed^.whenLastPost) adrfeed^.whenLastPost = date (0) 1 TArial qm_'-LANDmac local (adrdata = multiAuthorWeblogSuite.init ()) edit (@adrdata^.multiAuthorWeblog) Arial qT<_'-LANDmac MultiAuthorWeblog Open Data (ip)M`\Arial AEp*NArial 3 BO LANDmac Changes 5/8/02; 12:18:51 AM by JES Call radio.weblog.publishAllUnpublishedPosts instead of radio.weblog.publish. if system.temp.multiAuthorWeblog.flNewPosts local (adrdata = multiAuthorWeblogSuite.init ()) radio.weblog.publish (catname:adrdata^.multiAuthorWeblog.prefs.outputCategory) radio.weblog.publishAllUnpublishedPosts ()  aArial 33L=LANDmac new (tabletype, @system.temp.multiAuthorWeblog) system.temp.multiAuthorWeblog.flNewPosts = false `Arial {xb]LANDmac This script returns a string which appears in the Status Center on the Radio UserLand home page. local (adrdata = multiAuthorWeblogSuite.init ()) local (ctfeeds = sizeOf (adrdata^.multiAuthorWeblog.feeds)) if ctfeeds == 0 return ("No feeds are currently being routed.") local (outputCategory = adrdata^.multiAuthorWeblog.prefs.outputCategory) if outputCategory == "" outputCategory = "the Home Page" else local (adrblog = radio.weblog.init ()) local (adrcat = @adrblog^.categories.[outputCategory]) outputCategory = "the \"" + adrcat^.displayName + "\" category" if ctfeeds == 1 return (ctfeeds + " feed is being routed to " + outputCategory + ".") else return (ctfeeds + " feeds are being routed to " + outputCategory + ".") C)Arial DLANDmac on storyArrivedCallback (adrservice, adritem) Changes 5/6/02; 1:09:07 PM by JES If the output category is the empty string, post new items to the home page. Call through radio.weblog.addPostToCategory to add posts to the category. local (adrdata = multiAuthorWeblogSuite.init ()) local (adrfeed = @adrdata^.multiAuthorWeblog.feeds.[nameof (adrservice^)]) if defined (adrfeed^) local (adrblog = radio.weblog.init ()) local (adrpost = radio.weblog.post (adritem^.title, adrblog)) adrpost^.sourceName = adrservice^.compilation.channeltitle adrpost^.sourceUrl = adrservice^.compilation.channellink if adrdata^.multiAuthorWeblog.prefs.outputCategory != "" //post to category, not to home page adrpost^.flNotOnHomePage = true radio.weblog.addPostToCategory (adrpost, adrdata^.multiAuthorWeblog.prefs.outputCategory, adrblog) bundle //old code new (tabletype, @adrpost^.categories) adrpost^.categories.[adrdata^.multiAuthorWeblog.prefs.outputCategory] = true local (adrcat = @adrblog^.categories.[adrdata^.multiAuthorWeblog.prefs.outputCategory]) adrcat^.storyList = adrcat^.storyList + number (nameOf (adrpost^)) multiAuthorWeblogSuite.initFeed (adrfeed) adrfeed^.ctposts++ adrfeed^.whenLastPost = clock.now () system.temp.multiAuthorWeblog.flNewPosts = true bundle //test code local (adrservice = @aggregatorData.services.["http://radio.weblogs.com/0001015/rss.xml"]) local (adritem = @aggregatorData.services.["http://radio.weblogs.com/0001015/rss.xml"].compilation.items.["00017"]) storyArrivedCallback (adrservice, adritem) C3`q  #/ 8D IU fr configurationPageHinitH!initFeedH',menuH*postScanCallbackH*preScanCallbackH,|statusCenterMessageH-mstoryArrivedCallbackH1.VVerdana 5=<'XtArial FF2LANDwinon finalFilter (pta) pta^.renderedText = string.replace (pta^.renderedText, "[[title]]", "") return (true) ����������������������������� ���-���� MS Sans Serif��������������������� ��������������Eu`Q�������2LAND�������win������������on firstFilter (adrPageTable) return (true) �����������������������*��[���� MS Sans Serif��������������������� ��������������Eu7a���m���L�3*lLAND�������win������������on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "<title>", "[[title]]") html.addPageToGlossary (pta) return (true) �����������������������������������������������y���.���EF�������� ���� ��� ����$���0 ����; finalFilter����(��: firstFilter����(��; pagefilter����(��;��VGeneva���������������������������� �����������P�E��$����������������������������M�������I������7�������� ����url���#http://127.0.0.1/multiAuthorWeblog/���M���O�������K���$���@7@7�������� ���� ��� ����linetext���Homepath��� index.wsf���O����������/����������@7�������� ����Home����(��?��VArial����������������������������� ����������������������������������������������������������W����������������������space���/GIFfGIF89a�������!����,�������D�;��VArial����������������������������� ������������������������������������������������������������V��������������� ������� �������"�������+ ����0���: ����C���L ����Q���[ ����aalink���008000bgcolor���FFFFFFflRenderlink���0000FFspaceGif���spacetext���000000vlink���800080��VArial����������������������������� ��������������������������������������������������n�����������������8>������VArial����������������������������� ������������������������������������������������n������FFFF000000060001001777AA000000000065000000001001710000001-77FB6FFE18000004800480616200-10616222FFFF01032F00001000000330000000102F40840616222048E000616138000020000003400000000�2F,<%multiAuthorWeblogSuite.configurationPage ()%>000400000009000000020310000500000009000000020310000600000032000000010C310FFFF0C00000 20 000700000019000000010201600008000000A500000001�40,Geneva����������������������������������������������������������40,����������������������������������������������������������������1040304E40101000090000001500000002393174393174000A0000001500000002616222616222000B00000005000000020000C00000016000000012F369AF01320000F0000005200000000400 10 �4,appn�4,send�4,8�4,&����4,8�4,3�4,800130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��������������.��'��"��������������FFFF0FFFF0FFFE000000060001001777AA�PĸJ��� ���������������������������������������/�����������}�5#������/��������������������������������������������������������@����������V���7J#�������� ���� ��� �������* ����4���@ ����H���T ����[���g ����n���z ����#filters����H��=#ftpSite����H��> #glossary����H��?y#images����H��@#prefs����H��@#tools����H��Aindex����H��Bp��VVerdana��������������������������� ������������??8������������������������@��u����������.���s�������� �������" ����9���E ����^multiAuthorWeblogInfo�������amultiAuthorWeblogSuite�������8}multiAuthorWeblogWebsite�������G/��V Lucida Grande���������������������������������=� � ������������������������J�������Arial����������������������������� �����������������8��_'-LAND������mac ������������multiAuthorWeblogInfo multiAuthorWeblogSuite configurationPage init initFeed menu postScanCallback preScanCallback statusCenterMessage storyArrivedCallback multiAuthorWeblogWebsite ������ d� 0������������������� d� 0�������������������� d� <��������������������� d� <��������������������� d� <��������������������� d� <��������������������� d� <��������������������� d� <��������������������� d� <��������������������� d� <�������������������� d� 0���������������u���������H{x4Arial����������������������������� ����������������Geneva����������������������������� ����������������Y��bTimes New Roman������������������� ����������������/Arial����������������������������� ����������������>Arial����������������������������� ����������������Geneva����������������������������� ��������������������������������������������������������������������������������