OPML Editor code updateshttp://editor.opml.org/
New features and fixes for users of the OPML Editor, in an RSS 2.0 'codecasting' feed.en-usCopyright 2007-2009 Scripting News, Inc.Wed, 25 Feb 2015 17:11:30 GMTWed, 25 Feb 2015 17:11:30 GMThttp://rsscloud.org/rssCodeupdates.htmlOPML Editor v0.75workspace.userlandSamples.textToOutlineTake a string of text separated by \n chars and break it up into an outline.Wed, 25 Feb 2015 17:10:45 GMThttp://bits.codecasting.org/opml.root/02213.partserverMonitorSuite.utilities.exportServersCreated.Thu, 19 Feb 2015 01:20:17 GMThttp://bits.codecasting.org/serverMonitor.root/00045.partuser.webserver.prefs.ext2MIME.jsThe content type for JS files is application/javascript. No longer an experimental format.Wed, 24 Dec 2014 19:06:20 GMThttp://bits.codecasting.org/opml.root/02212.partmanilaInfo.homePageUrlPoint to frontiernews.wordpress.com, the old domain expired.Sun, 16 Nov 2014 17:12:22 GMThttp://bits.codecasting.org/manila.root/00018.partsystem.verbs.builtins.radio.prefs.seeAlsoCheck for existence of pta^.radioResponder instead of assuming it when running in Radio.Mon, 10 Nov 2014 02:32:16 GMThttp://bits.codecasting.org/opml.root/02211.partsystem.verbs.builtins.radio.prefs.browserCheck for existence of pta^.radioResponder instead of assuming it when running in Radio.Mon, 10 Nov 2014 02:32:00 GMThttp://bits.codecasting.org/opml.root/02210.partsystem.verbs.builtins.radio.prefs.browseHttpFileInstead of looking at environment variable, look for pta^.macroStartCharacters, and neuter accordingly.Mon, 10 Nov 2014 02:31:47 GMThttp://bits.codecasting.org/opml.root/02209.partsystem.verbs.builtins.radio.prefs.stringPrefOn POST, check the responder, not environment to determine where to pick up postArgs.Mon, 10 Nov 2014 02:31:33 GMThttp://bits.codecasting.org/opml.root/02208.partsystem.verbs.builtins.radio.prefs.numberPrefOn POST, check the responder, not environment to determine where to pick up postArgs.Mon, 10 Nov 2014 02:31:18 GMThttp://bits.codecasting.org/opml.root/02207.part["#installer"].onInstallAdded root update, and call to manilaSuite.init on installation.Mon, 10 Nov 2014 02:30:45 GMThttp://bits.codecasting.org/manila.root/00017.partmanilaSuite.discuss.getRootFromSiteAddressIf pta^.allowVirtualDiscussionGroupRoot is defined and true, and mainResponder can't find the discussion group, return the address of #discussionGroup from the site's root table.Mon, 10 Nov 2014 02:29:06 GMThttp://bits.codecasting.org/manila.root/00016.partmanilaSuite.discuss.getMessageTableTry to set adrSite to obviate having to call mainResponder.discuss.getMessageTable, and instead call manilaSuite.discuss.getMessageTableFromSiteAddress (which is faster).Mon, 10 Nov 2014 02:28:50 GMThttp://bits.codecasting.org/manila.root/00015.partmanilaMacros.includeMessageGet message table from manilaSuite.discuss.getMessageTable instead of mainResponder.Mon, 10 Nov 2014 02:28:34 GMThttp://bits.codecasting.org/manila.root/00014.partmanilaSuite.directory.viewDirectoryUse manilaSuite.discuss.getMessageTableFromSiteAddress instead of mainResponder.discuss.getMessageTable, to make it easier to evaluate this macro outside of the mainResponder.respond context.Mon, 10 Nov 2014 02:28:13 GMThttp://bits.codecasting.org/manila.root/00013.partmanilaMacros.pictureRefUpdate shortcuts for pictures that have static URLs but dynamic shortcuts.Mon, 10 Nov 2014 02:27:56 GMThttp://bits.codecasting.org/manila.root/00012.partmanilaMacros.viewNewsItemsflSuppressAnchors parameter turns off anchor tags, useful when showing a list of recent post titles, for exampleMon, 10 Nov 2014 02:27:40 GMThttp://bits.codecasting.org/manila.root/00011.partmanilaSuite.news.formatLastNItemsPass through flSuppressAnchors.Mon, 10 Nov 2014 02:27:21 GMThttp://bits.codecasting.org/manila.root/00010.partmanilaSuite.news.formatNewsItemBug fix: No more double anchor links!Mon, 10 Nov 2014 02:27:05 GMThttp://bits.codecasting.org/manila.root/00009.partmanilaSuite.menuCan't set admin password because user.prefs.mailAddress is not setMon, 10 Nov 2014 02:26:37 GMThttp://bits.codecasting.org/manila.root/00008.partmanilaSuite.initMake sure the admin site is installed in the WSF docTreeMon, 10 Nov 2014 02:26:17 GMThttp://bits.codecasting.org/manila.root/00007.partmanilaSuite.hosting.createSiteFormMake the macro work in the admin site, as running in Manila.root tool.Mon, 10 Nov 2014 02:25:54 GMThttp://bits.codecasting.org/manila.root/00006.partmanilaSuite.filters.firstFilterSet pta^.flFakedError = true, to force mainResponder.respond to handle scriptError ("!return") and scriptError ("!redirect...") mechanism, even if user.prefs.flMainResponderHandlesErrors is true.Mon, 10 Nov 2014 02:24:57 GMThttp://bits.codecasting.org/manila.root/00005.partmanilaSuite.adminSiteCopied mainResponder.adminSite to here, since it's really part of Manila more than mainResponder.Mon, 10 Nov 2014 02:24:30 GMThttp://bits.codecasting.org/manila.root/00004.partmanilaInfo.releaseDateChange the release date.Mon, 10 Nov 2014 02:23:50 GMThttp://bits.codecasting.org/manila.root/00003.partmanilaInfo.versionBumped to 1.1Mon, 10 Nov 2014 02:23:22 GMThttp://bits.codecasting.org/manila.root/00002.partmanilaWebsiteCopied admin site's WSF table here from mainResponder.adminSite.website so Tools framework will install/uninstall properlyMon, 10 Nov 2014 02:22:34 GMThttp://bits.codecasting.org/manila.root/00001.partsystem.verbs.builtins.export.importFolderAvoid importing .DS_Store (an invisible Mac file). Use system.environment.isMac to determine if we're running on the Mac instead of doing a string comparison on the result of sys.os.Mon, 10 Nov 2014 02:16:03 GMThttp://bits.codecasting.org/opml.root/02206.partradio2Suite.utilities.exportPostsinJsonCreated. I used this script to export all of my Radio2 posts to a JSON structure.Mon, 01 Sep 2014 14:37:05 GMThttp://bits.codecasting.org/radio2.root/00665.partradio2Suite.utilities.titleNoiseToJsonCreates JavaScript source for the titleNoise table.Thu, 28 Aug 2014 14:51:10 GMThttp://bits.codecasting.org/radio2.root/00664.partradio2Suite.data.titleNoise.[" - Vox"]Title noise record for Vox.Wed, 20 Aug 2014 18:45:06 GMThttp://bits.codecasting.org/radio2.root/00663.partradio2Suite.data.titleNoise.[" - Quartz"]Add Quartz to titleNoise table.Fri, 15 Aug 2014 17:31:16 GMThttp://bits.codecasting.org/radio2.root/00662.partworkspace.userlandSamples.parseFontAwesomeIconsWhen a new version of Font Awesome comes out, we need to rebuild the JSON that Fargo uses to create the Choose Icon dialog. The parser routine here does that.Fri, 01 Aug 2014 18:43:56 GMThttp://bits.codecasting.org/opml.root/02205.partserverMonitorSuite.background.everyMinuteOnly deal with servers that are enabled.Tue, 22 Jul 2014 15:18:40 GMThttp://bits.codecasting.org/serverMonitor.root/00044.partserverMonitorSuite.resetAllServersOnly reset servers if they are enabled.Tue, 22 Jul 2014 15:18:27 GMThttp://bits.codecasting.org/serverMonitor.root/00043.partsystem.verbs.apps.s3.newFrontierObjectSometimes you want to upload a script or table to S3. Now you don't have to remember how to do it! :-)Mon, 21 Jul 2014 02:05:30 GMThttp://bits.codecasting.org/opml.root/02204.partradio2Suite.buildRssThe "rss5" namespace changes its name to the "source" namespace. Not changing the name of the pref at this time, so that may be a bit confusing. The important thing is to have the feed itself have the updated name.Mon, 14 Jul 2014 14:33:32 GMThttp://bits.codecasting.org/radio2.root/00661.partworldOutlineSuite.utilities.searchOutlinesA utility to run on the server that loops over all the outlines searching for a string you provide.Sat, 28 Jun 2014 18:27:30 GMThttp://bits.codecasting.org/worldOutline.root/00791.partsystem.verbs.apps.s3.uploadFolderNew optional param, type -- if specified, the type of all files uploaded. Useful if the files don't have extensions and you know the type.Sat, 31 May 2014 16:01:30 GMThttp://bits.codecasting.org/opml.root/02203.partsystem.verbs.builtins.Frontier.tools.commands.addFeedIf there's an error reading the feed, offer the user a chance to add it anyway.Tue, 27 May 2014 13:17:57 GMThttp://bits.codecasting.org/opml.root/02202.partsystem.verbs.apps.s3.visitReverseChronologicParallel to mainresponder.calendar.visitReverseChronologic.Fri, 14 Mar 2014 18:29:56 GMThttp://bits.codecasting.org/opml.root/02201.partsystem.verbs.apps.s3.testing.outlineFolderImprovements.Fri, 14 Mar 2014 18:16:51 GMThttp://bits.codecasting.org/opml.root/02200.partsystem.verbs.apps.s3.testing.outlineFolderOutline an S3 structure. A nice utility I can't believe we didn't have.Fri, 14 Mar 2014 17:19:00 GMThttp://bits.codecasting.org/opml.root/02199.partriver3Suite.readAllFeedsAt the end of a scan, don't delete system.temp.river3.ctFeedsReadThisScan if it doesn't exist.Fri, 28 Feb 2014 09:23:05 GMThttp://bits.codecasting.org/river3.root/00012.partsuperSyncSuite.initPointInitialize opmlUrl pref.Fri, 21 Feb 2014 20:59:58 GMThttp://bits.codecasting.org/superSync.root/00006.partsuperSyncWebsite.["#template"]Reduce template to only include the returned text.Fri, 21 Feb 2014 20:59:27 GMThttp://bits.codecasting.org/superSync.root/00005.partsuperSyncWebsite.pingCreated.Fri, 21 Feb 2014 20:59:02 GMThttp://bits.codecasting.org/superSync.root/00004.partserverMonitorSuite.pingOneServerThe json protocol now has support for hits-all-time and hits-today.Wed, 12 Feb 2014 16:14:13 GMThttp://bits.codecasting.org/serverMonitor.root/00042.partserverMonitorSuite.pingOneServerAdd a new protocol -- "json" -- which is supported by Fargo Publisher. It returns status info about the server, so we can better tell if it's awake. The earlier version would report it was awake even if we were getting the error screen put up by Heroku. OTue, 11 Feb 2014 16:41:10 GMThttp://bits.codecasting.org/serverMonitor.root/00041.partserverMonitorSuite.pingOneServerAdd support for "http" protocol so we can test a unix server.Wed, 29 Jan 2014 02:15:25 GMThttp://bits.codecasting.org/serverMonitor.root/00040.partworkspace.userlandSamples.smallPictRedirectAdded stats.Tue, 28 Jan 2014 17:34:18 GMThttp://bits.codecasting.org/opml.root/02198.partworkspace.userlandSamples.smallPictRedirectA redirector that works for smallpict.com with the new way our "database" works.Tue, 28 Jan 2014 17:25:08 GMThttp://bits.codecasting.org/opml.root/02197.partsuperSyncSuite.updatePointLook for XML files as well as HTML files.Mon, 20 Jan 2014 19:00:52 GMThttp://bits.codecasting.org/superSync.root/00003.partworkspace.userlandSamples.deleteBTSyncExtrasI use BitTorrent Sync to manage scripting.com on S3. Sometimes it leaves around these old files, and they annoy me. This script deletes them. ;-)Thu, 09 Jan 2014 14:22:22 GMThttp://bits.codecasting.org/opml.root/02196.partsystem.verbs.builtins.Frontier.tools.isEnabledcheckBoolean looks in user.tools.databases to find out if a tool is enabled. But the tool might have been re-enabled, by deleting the #enabled boolean at the top level of the file, or by setting it true. The way it worked, basically once a tool has been dWed, 08 Jan 2014 14:14:25 GMThttp://bits.codecasting.org/opml.root/02195.partsystem.verbs.builtins.opmlEditor.worldOutline.saveArchivedOutlineIf flDialogAfterSave pref is true, we use dialog.notify instead of speaker.beep to signal completion of the save.Thu, 19 Dec 2013 14:11:43 GMThttp://bits.codecasting.org/opml.root/02194.partsystem.verbs.builtins.opmlEditor.worldOutline.initInit prefs.flDialogAfterSave to false. Useful when working in libraries -- no beeps. ;-)Thu, 19 Dec 2013 14:10:28 GMThttp://bits.codecasting.org/opml.root/02193.partriver3Suite.scannerAdd callback after each JSON file is built.Tue, 17 Dec 2013 11:33:16 GMThttp://bits.codecasting.org/river3.root/00011.partriver3Suite.initInit callback table for afterJsonBuild.Tue, 17 Dec 2013 11:32:51 GMThttp://bits.codecasting.org/river3.root/00010.partriverJsToRssSuite.buildRssAt most 25 items in the feed.Sun, 15 Dec 2013 02:30:38 GMThttp://bits.codecasting.org/riverJsToRss.root/00002.partriverJsToRssSuite.buildRssAt most 25 items in the feed.Sun, 15 Dec 2013 02:28:03 GMThttp://bits.codecasting.org/riverJsToRss.root/00001.partsuperSyncSuite.updatePointFixed a bug where we'd go to the summit of the outline even if we logged nothing. Would make the OPML Editor basically unusuable. Sorry about that! ;-(Sat, 14 Dec 2013 14:39:05 GMThttp://bits.codecasting.org/superSync.root/00002.partsuperSyncSuite.initNew pref, flLogEnabled, if false, no logs are maintained.Sat, 14 Dec 2013 14:38:57 GMThttp://bits.codecasting.org/superSync.root/00001.partworkspace.userlandSamples.exportConfigTableExports all of the sub-tables of config.root to your export folder, user.opmlEditor.prefs.exportFolder, which you should be sure to set before running this script. Very useful to have this kind of backup when re-installing the OPML Editor freshly.Sat, 14 Dec 2013 13:23:53 GMThttp://bits.codecasting.org/opml.root/02192.partriver3Suite.scannerDelete system.temp.river3.idScanThread at the end. Move the setting of adrdata^.stats.whenLastScanComplete to the very end.Sat, 07 Dec 2013 00:12:49 GMThttp://bits.codecasting.org/river3.root/00009.partriver3Suite.initInit system.temp.river3.threads.Fri, 06 Dec 2013 22:26:41 GMThttp://bits.codecasting.org/river3.root/00008.partsystem.verbs.builtins.fileSynch.thread.scriptMaintain a new stat, system.temp.filesynch.whenLastCheck.Wed, 20 Nov 2013 00:38:29 GMThttp://bits.codecasting.org/opml.root/02191.partriver3Suite.data.tabbedRiverTemplateUse our copy of the Bootswatch "readable" style sheet. Theirs is changing and has arleady cause breakage.Sat, 16 Nov 2013 21:50:23 GMThttp://bits.codecasting.org/river3.root/00007.partsystem.verbs.builtins.opmlEditor.rpcHandlers.respondToServerMonitorPingReturn a table of info about domains.Sun, 13 Oct 2013 16:05:43 GMThttp://bits.codecasting.org/opml.root/02190.partserverMonitorSuite.background.everyMinuteSave the files opml file after each scan.Sun, 13 Oct 2013 01:32:54 GMThttp://bits.codecasting.org/serverMonitor.root/00039.partserverMonitorSuite.saveFilesOpmlCreated.Sun, 13 Oct 2013 01:32:44 GMThttp://bits.codecasting.org/serverMonitor.root/00038.partserverMonitorSuite.saveFilesOpmlCreated.Sun, 13 Oct 2013 01:15:25 GMThttp://bits.codecasting.org/serverMonitor.root/00037.partsystem.verbs.builtins.op.render.viewOutlineIn addlevel, we were building "relpath" out of canonical names, even if there was a name attribute present. This would result in incorrect links to docs in index outlines.Sat, 12 Oct 2013 21:50:48 GMThttp://bits.codecasting.org/opml.root/02189.partworkspace.userlandSamples.countOpmlDateAttsThis script loops over an outline and gathers the date attributes into a table, allowing you to quickly see if there are duplicates. I needed to find out if this was happening because I had built the Find command on the assumption that the created att madFri, 06 Sep 2013 14:45:49 GMThttp://bits.codecasting.org/opml.root/02188.partsystem.verbs.apps.s3.redirectObjectCreated.Sat, 24 Aug 2013 16:28:42 GMThttp://bits.codecasting.org/opml.root/02187.partsystem.verbs.apps.s3.setObjectMetadataCreated. Not efficient, but gets the job done. I needed this in order to be able to set a bunch of documents to redirect.Sat, 24 Aug 2013 16:28:11 GMThttp://bits.codecasting.org/opml.root/02186.partsystem.verbs.apps.s3.httpClientIf the metadata key is website-redirect-location, then we special-case the addition of the header so as not to add the string "meta-" -- which causes it to break. Not sure if the setting metadata feature ever worked, but this is the most conservative apprSat, 24 Aug 2013 16:27:43 GMThttp://bits.codecasting.org/opml.root/02185.partradio2Suite.pingRssCloudChange the domain of our cloud server to rsscloud.scripting.com. Add a ping to twitterfeed, in case you're using that service.Sun, 18 Aug 2013 21:05:44 GMThttp://bits.codecasting.org/radio2.root/00660.partworkspace.userlandSamples.genMonthlyArchivesScript to generate monthly blog archives. Not likely others will need this but I want it backed up. DWFri, 09 Aug 2013 15:10:40 GMThttp://bits.codecasting.org/opml.root/02184.partworkspace.userlandSamples.convertLinksExample script that converts an outline from HTML links to OPML links.Thu, 08 Aug 2013 17:08:03 GMThttp://bits.codecasting.org/opml.root/02183.partsystem.verbs.builtins.xml.rss.getFeedItemsIf the items table is undefined, create it. I got burned by this today, the error message said it's not a feed, but I hadn't created the items table. Hard to see how anything could break if we create it if it doesn't exist. ;-)Mon, 05 Aug 2013 01:23:44 GMThttp://bits.codecasting.org/opml.root/02182.partsystem.verbs.builtins.prefs2.bootstrap.xstructToTabsChange the way IDs are generated for panels.Sat, 03 Aug 2013 15:33:57 GMThttp://bits.codecasting.org/opml.root/02181.partworkspace.userlandSamples.convertWorknotesIt's time to convert the worknotes site for Fargo from the OPML Editor to Fargo itself.Tue, 30 Jul 2013 20:45:08 GMThttp://bits.codecasting.org/opml.root/02180.partradio2Suite.buildRssSupport for the <rss5:account> element, as well as the shift from "microblog" to "rss5" for the namespace (only turned on in my feeds at this time).Tue, 30 Jul 2013 17:40:12 GMThttp://bits.codecasting.org/radio2.root/00659.partradio2Suite.initUserInit accounts prefs table, and the flRss5Namespace pref.Tue, 30 Jul 2013 17:39:12 GMThttp://bits.codecasting.org/radio2.root/00658.partsystem.verbs.builtins.op.render.viewOutlineSupport for the img attribute that was supported first in Trex. Nice to be porting functionality back this way. ;-)Tue, 30 Jul 2013 17:35:09 GMThttp://bits.codecasting.org/opml.root/02179.partsystem.verbs.builtins.xml.opml.getHtmlFromOpmlNew optional param, flStartWithLevel2. If true, we skip the top level, and start generating with the second level. Reason -- when Trex returns OPML for a blog post, we get the title and the subs. This results in badly formatted HTML in the Scripting NewsWed, 24 Jul 2013 14:31:26 GMThttp://bits.codecasting.org/opml.root/02178.partriver3Suite.scannerDon't read list files whose name contains the string "conflicted copy".Mon, 22 Jul 2013 00:37:12 GMThttp://bits.codecasting.org/river3.root/00006.partriver3Suite.viewJsonNewsAdd check for a body that contains only blanks.Sat, 13 Jul 2013 19:49:42 GMThttp://bits.codecasting.org/river3.root/00005.partriver3Suite.buildFeedListIf there are no lists, don't try to build the feed list.Mon, 24 Jun 2013 23:36:20 GMThttp://bits.codecasting.org/river3.root/00004.partriver3Suite.buildHtmlFilesIf we're not saving to S3 then use a relative URL for the location of the JSON file.Mon, 24 Jun 2013 00:50:23 GMThttp://bits.codecasting.org/river3.root/00003.partriver3Suite.scannerUpdate river3.root and opml.root after each scan. Updates are RSS-based, so it's just like checking 2 more feeds.Mon, 24 Jun 2013 00:50:12 GMThttp://bits.codecasting.org/river3.root/00002.partriver3Suite.menuScan Now and Open Folder commands added to the menu.Mon, 24 Jun 2013 00:49:56 GMThttp://bits.codecasting.org/river3.root/00001.partsystem.verbs.builtins.html.directory.buildOpmlReturnWhen we generate the OPML text, the <?xml> element has encoding and version in the wrong order because the table is sorted lexically by name. We fix that on the way out so that it's valid XML.Thu, 13 Jun 2013 19:56:56 GMThttp://bits.codecasting.org/opml.root/02177.partworldOutlineSuite.data.html.smallPictureStylesNew styles to go with Small Picture sites.Sat, 08 Jun 2013 17:48:16 GMThttp://bits.codecasting.org/worldOutline.root/00790.partsystem.verbs.builtins.xml.rss.getOpmlFeedsNew optional param, flProcessIncludes. If true, we dive into includes.Sat, 18 May 2013 21:59:12 GMThttp://bits.codecasting.org/opml.root/02176.partworkspace.userlandSamples.threadsA pair of sample scripts that illustrate thread management with ids.Fri, 17 May 2013 16:11:57 GMThttp://bits.codecasting.org/opml.root/02175.partsystem.verbs.apps.s3.newObjectIf the type is not specified, and the extension is .opml, and there is no entry for that type in the ext2MIME table, use the type "text/xml".Sun, 12 May 2013 00:24:32 GMThttp://bits.codecasting.org/opml.root/02174.partsystem.verbs.builtins.json.decompileIn the 11/14/12 change we only replaced the first backslash. What if the line contains more than one? Now we replace them all. Wish us luck! :-)Wed, 08 May 2013 06:10:02 GMThttp://bits.codecasting.org/opml.root/02173.partsystem.verbs.builtins.date.secondsSinceCreated.Sat, 13 Apr 2013 00:06:20 GMThttp://bits.codecasting.org/opml.root/02172.partsystem.verbs.builtins.date.minutesSinceCreated.Sat, 13 Apr 2013 00:06:01 GMThttp://bits.codecasting.org/opml.root/02171.part