Tuesday, August 18, 2009 at 7:35 PM.

photoFanSuite.background.everyMinute

<<Changes
	<<11/30/08; 2:36:01 PM by DW
		<<Maintenence check to convert to static feeds.
	<<3/30/08; 12:17:09 PM by DW
		<<Init the bookmarks menu.
	<<3/23/08; 12:46:06 PM by DW
		<<flickrToTwitter hookup.
	<<3/17/08; 1:25:42 PM by DW
		<<Check feeds at the appointed minute in a separate thread.
	<<3/15/08; 8:37:28 PM by DW
		<<If the default feeds aren't present there was an error initializing, so we re-init them. 
	<<3/6/08; 10:17:40 PM by DW
		<<Some users report that AP and AFP feeds aren't updating. Try the relocation routine again.
	<<2/20/08; 6:41:38 PM by DW
		<<Some downloaded pics have pubDates in the future, fix them.
	<<2/19/08; 9:42:50 AM by DW
		<<Download podcatcher.root into the Tools folder.
	<<2/6/08; 7:08:42 PM by DW
		<<New maintenence check.
	<<2/5/08; 10:17:51 AM by DW
		<<Relocate AFP feed.
	<<2/2/08; 10:03:21 PM by DW
		<<Install AFP feed.
	<<1/20/08; 8:11:04 AM by DW
		<<Updates for new Events page. 
	<<1/10/08; 10:56:28 AM by DW
		<<Ping after detecting an update.
	<<12/31/07; 10:15:55 AM by DW
		<<Only publish the feed if it's already been published. 
	<<12/31/07; 10:07:12 AM by DW
		<<One-time code. Rebuild the feed so the corner turns on the username problem.
	<<12/31/07; 4:32:21 AM by DW
		<<One-time code. Delete all feed tables that don't have a title. These are created when we attempt to subscribe to a feed and fail. It won't happen in the future (knock wood) so this code needs to run just once to fix installations that were broken by previous errant code.
	<<12/17/07; 1:02:11 PM by DW
		<<Add log message to Events page for new or updated parts. See Frontier.tools.data.updateCommandScript for code that implements.
	<<12/4/07; 11:38:57 AM by DW
		<<Work around installation problem.
	<<12/1/07; 9:43:58 AM by DW
		<<If photoFanSuite.myFeed.publish is true, publish the feed and set it false.
	<<11/28/07; 11:38:17 AM by DW
		<<Created. Just calls photoFanSuite.init.
local (minute = date.minute ());
photoFanSuite.init ();
bundle { //flickrToTwitter
	if user.photoFan.prefs.flickrToTwitter.enabled {
		if (minute % user.photoFan.prefs.flickrToTwitter.minutesBetweenChecks) == 0 {
			photoFanSuite.flickrToTwitter.checkFeed ()}}};
bundle { //if it's the minute for scans, check feeds in a separate thread
	if minute == user.photoFan.prefs.minuteToDownload {
		thread.callscript (@photoFanSuite.checkFeeds, {})}};
bundle { //do maintenence checks
	if not defined (user.photoFan.prefs.flags.flMoveFeeds3) { //11/30/08 by DW
		try {
			table.rename (@user.photofan.feeds.[photoFanSuite.data.urls.afp], photoFanSuite.data.urls.afpStatic)};
		try {
			table.rename (@user.photofan.feeds.[photoFanSuite.data.urls.ap], photoFanSuite.data.urls.apStatic)};
		user.photoFan.prefs.flags.flMoveFeeds3 = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flFixBookmarkMenu) { //3/30/08 by DW
		try {
			try {delete (@user.menus.bookmarksMenu)};
			user.menus.bookmarksMenu = bookmarksMenu.init ();
			user.prefs.flBookmarkMenu = true;
			menus.buildMenuBar ()};
		user.photoFan.prefs.flags.flFixBookmarkMenu = clock.now ();
		filemenu.save ()};
	if not defined (user.photoFan.prefs.flags.flFixDefaultSubs) { //3/15/08 by DW
		on check (url) {
			try {
				if not defined (user.photofan.feeds.[url]) {
					photoFanSuite.addFeed (url)}}};
		check (photoFanSuite.data.urls.ap);
		check (photoFanSuite.data.urls.afp); //2/5/08; 12:15:14 PM by DW
		check ("http://xml.flickrfan.org/river/defaultReadingList.opml");
		user.photoFan.prefs.flags.flFixDefaultSubs = clock.now ();
		filemenu.save ()};
	if not defined (user.photoFan.prefs.flags.flFixPictureDates) { //2/20/08 by DW
		try {
			photoFanSuite.utilities.fixPictureDates ()};
		user.photoFan.prefs.flags.flFixPictureDates = clock.now ();
		filemenu.save ()};
	if not defined (user.photoFan.prefs.flags.flDownloadPodcatcher) { //2/19/08 by DW
		try {
			photoFanSuite.utilities.downloadPodcatcher ()};
		user.photoFan.prefs.flags.flDownloadPodcatcher = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flMoveApFeed2) { //2/6/08 by DW
		try {
			table.rename (@user.photofan.feeds.["http://static.flickrfan.org/ap2/rss.xml"], photoFanSuite.data.urls.ap)};
		user.photoFan.prefs.flags.flMoveApFeed2 = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flMoveAfpFeed2) { //2/5/08 by DW
		try {
			table.rename (@user.photofan.feeds.["http://static.flickrfan.org/afp/rss.xml"], photoFanSuite.data.urls.afp)};
		user.photoFan.prefs.flags.flMoveAfpFeed2 = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flAddAgenceFrancePresse) { //2/2/08 by DW
		try {
			if not defined (user.photoFan.feeds.[photoFanSuite.data.urls.afp]) {
				photoFanSuite.addFeed (photoFanSuite.data.urls.afp)}};
		user.photoFan.prefs.flags.flAddAgenceFrancePresse = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flRebuildMyFeed) { //12/31/07 by DW
		try {
			if sizeof (user.photoFan.prefs.myFeed.url) > 0 { //it's been published before
				photoFanSuite.myFeed.publish ();
				photoFanSuite.ping ()}};
		user.photoFan.prefs.flags.flRebuildMyFeed = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flCheckBrokenFeedsPage) { //12/31/07 by DW
		local (i, adrfeed);
		for i = sizeof (user.photoFan.feeds) downto 1 {
			adrfeed = @user.photoFan.feeds [i];
			if not defined (adrfeed^.title) {
				delete (adrfeed)}};
		user.photoFan.prefs.flags.flCheckBrokenFeedsPage = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flApFeedMove) { //1/2/08 by DW
		local (adrfeed = @user.photofan.feeds.["http://static.flickrfan.org/ap/rss.xml"]);
		if defined (adrfeed^) {
			table.rename (adrfeed, photoFanSuite.data.urls.ap)};
		user.photoFan.prefs.flags.flApFeedMove = clock.now ()};
	if not defined (user.photoFan.prefs.flags.flNewEventsPage) { //1/20/08 by DW
		photoFanSuite.utilities.mergeLogs ();
		user.photoFan.prefs.flags.flNewEventsPage = clock.now ()}};
if user.photoFan.prefs.myFeed.fldirty {
	photoFanSuite.myFeed.publish ();
	user.photoFan.prefs.myFeed.fldirty = false};
bundle { //log new parts
	if defined (system.temp.ctNewParts) {
		if system.temp.ctNewParts > 0 {
			local (s = system.temp.ctNewParts + " new or updated parts.");
			photoFanSuite.addToLog ("Code Update", s, clock.ticks ());
			system.temp.ctNewParts = 0;
			thread.callscript (@photoFanSuite.ping, {})}}} //1/10/08 by DW
<<bundle //12/4/07 by DW -- work around installation problem
	<<In photoFanThread.script, we called photoFanSuite.init too early. When it would set up the initial feeds, it would fail to read the feed and the title wouldn't be set, causing lots of breakage elsewhere. It may have happened on some initial users systems, rather than make them reinstall, we fix it here.
	<<on checkfeed (url)
		<<local (adrfeed = @user.photoFan.feeds.[url])
		<<if not defined (adrfeed^.title)
			<<photoFanSuite.getFeedInfo (adrfeed)
	<<checkfeed (photoFanSuite.data.urls.ap)
	<<checkfeed (photoFanSuite.data.urls.defaultReadingList)



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.