<%@LANGUAGE="JSCRIPT"%> <% // // Produce RSS feed from RSSJournal.txt. Format of each line is // date|title|message. // // History // // 01-Nov-2006 rbd 5.0 Initial edit // 05-May-2008 rbd 5.1 (HF6) - Fix path for alternate web roots // var fso = new ActiveXObject("Scripting.FileSystemObject"); var iRetry = 0; // Lock/retry counter do { try { var js = fso.OpenTextFile(Util.Prefs.WebRoot + "\\RSSJournal.txt", 1); // forRead break; // Got it! } catch(ex) { Util.WaitForMilliseconds(500); iRetry += 1; if(iRetry >= 20) { // 10 SECONDS?????? Response.Clear(); Response.Status = "503 RSS feed source locked or missing"; Response.End(); } } } while(true); var port = ":" + Request.ServerVariables("SERVER_PORT"); if(port == ":80") port = ""; var ourUri = "http://" + Request.ServerVariables("SERVER_NAME") + port + "/"; Response.ContentType = "text/xml"; Response.Expires = 0; // Immediate Expires: header Response.AddHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); Response.Clear(); // Assure clean start Response.Write("\r\n\r\n"); Response.Write("\r\n\r\n"); Response.Write(" \r\n"); Response.Write(" Observing at " + Prefs.SiteName + "\r\n"); Response.Write(" " + ourUri + "\r\n"); Response.Write(" A feed of significant observing events at " + Prefs.SiteName + ". Event times are the article times.\r\n"); Response.Write(" " + new Date().toUTCString() + "\r\n"); Response.Write(" ACP Observatory Control Software\r\n"); Response.Write(" en-us\r\n"); while(!js.atEndOfStream) { var l = js.ReadLine(); var bits = l.split("|"); // date|title|message Response.Write(" \r\n"); Response.Write(" " + bits[1] + "\r\n"); Response.Write(" " + bits[0] + "\r\n"); Response.Write(" " + Prefs.LocalUser.Name + "\r\n"); Response.Write(" acp-" + Date.parse(bits[0]) + "-rss\r\n"); Response.Write(" \r\n"); Response.Write(" \r\n"); } js.Close(); fso = null; Response.Write(" \r\n\r\n"); %>