private TeaseDelay GetDelay(CommonTree delayNode) { if (delayNode == null) { return null; } var result = new TeaseDelay(); var timeNode = delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.TIME) as CommonTree; if (timeNode != null) { var minNode = (CommonTree)timeNode.GetFirstChildWithType(FlashTeaseScriptLexer.MIN); int minSecs = Convert.ToInt32(minNode.GetChild(0).Text); if (minNode.ChildCount > 1) { var minUnit = minNode.GetChild(1).Text; switch (minUnit) { case "hrs": { minSecs = minSecs * 60 * 60; break; } case "min": { minSecs = minSecs * 60; break; } default: break; } } var maxNode = timeNode.GetFirstChildWithType(FlashTeaseScriptLexer.MAX) as CommonTree; int maxSecs = -1; if (maxNode != null) { maxSecs = Convert.ToInt32(maxNode.GetChild(0).Text); if (maxNode.ChildCount > 1) { var maxUnit = maxNode.GetChild(1).Text; switch (maxUnit) { case "hrs": { maxSecs = maxSecs * 60 * 60; break; } case "min": { maxSecs = maxSecs * 60; break; } default: break; } } } result.Seconds = (maxSecs > minSecs) ? String.Format("({0}..{1})", minSecs, maxSecs) : String.Format("{0}", minSecs); } result.Target = GetPageId(delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.TARGET).GetChild(0) as CommonTree); var styleNode = delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.STYLE) as CommonTree; if (styleNode != null && styleNode.ChildCount > 0) { switch (styleNode.GetChild(0).Text.ToLowerInvariant()) { case "hidden": result.Style = DelayStyle.Hidden; break; case "secret": result.Style = DelayStyle.Secret; break; default: result.Style = DelayStyle.Normal; break; } } return result; }
private TeaseDelay CreateDelay(XmlNode pageNode) { var delayLengthNode = pageNode.SelectSingleNode("delaylength"); if (delayLengthNode != null) { var delayLengthMin = delayLengthNode.Attributes["rdmMin"].Value; var delayLengthMax = delayLengthNode.Attributes["rdmMax"].Value; var delaySecondsNode = delayLengthNode.SelectSingleNode("delayseconds"); if (delaySecondsNode != null) { int seconds; if (Int32.TryParse(delaySecondsNode.InnerText, out seconds) && seconds > 0) { var result = new TeaseDelay(); if (delayLengthMin == "0" && delayLengthMax == "0") { result.Seconds = seconds.ToString(); } else { result.Seconds = String.Format("({0}..{1})", delayLengthMin, delayLengthMax); } var delayVisibleNode = pageNode.SelectSingleNode("delayvisible"); if (delayVisibleNode != null) { result.Style = delayVisibleNode.InnerText.Equals("0") ? DelayStyle.Secret : DelayStyle.Normal; } var targetNode = pageNode.SelectSingleNode("delaytarget"); if (targetNode != null) { var delayTargetMin = targetNode.Attributes["rdmMin"].Value; var delayTargetMax = targetNode.Attributes["rdmMax"].Value; var delayTargetId = targetNode["delaytargetid"].InnerText; if (delayTargetMin == "0" && delayTargetMax == "0") { result.Target = delayTargetId; } else { result.Target = String.Format("{0}({1}..{2})", delayTargetId, delayTargetMin, delayTargetMax); } } return result; } } } return null; }
private TeaseDelay GetDelay(CommonTree delayNode) { if (delayNode == null) { return null; } var result = new TeaseDelay(); var timeNode = delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.TIME) as CommonTree; if (timeNode != null) { int secs = System.Convert.ToInt32(timeNode.GetChild(0).Text); if (timeNode.GetChild(1).Text == "min") { secs = secs * 60; } result.Seconds = secs.ToString(); } result.Target = GetPageId(delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.TARGET).GetChild(0) as CommonTree); var styleNode = delayNode.GetFirstChildWithType(FlashTeaseScriptLexer.STYLE) as CommonTree; if (styleNode != null && styleNode.ChildCount > 0) { switch (styleNode.GetChild(0).Text) { case "hidden": result.Style = DelayStyle.Hidden; break; case "secret": result.Style = DelayStyle.Secret; break; default: result.Style = DelayStyle.Normal; break; } } return result; }