/// <summary> /// コンストラクタ /// </summary> private PublishStatus(long liveId, XmlNode node) : base(node, "getpublishstatus", LiveUtil.LiveIdString(liveId)) { this.Stream = new StreamType(); this.User = new UserType(); this.RTMP = new RTMPType(); foreach (var childObj in RootNode.ChildNodes) { var child = (XmlNode)childObj; switch (child.Name) { case "stream": this.Stream = new StreamType(child); break; case "user": this.User = new UserType(child); break; case "rtmp": this.RTMP = new RTMPType(child); break; } } }
/// <summary> /// ニコニコ生放送の情報を取得します。 /// </summary> public static PlayerStatus Create(long liveId, CookieContainer cc) { // 生放送IDから放送情報を取得します。 var node = LiveUtil.GetXml( NicoString.GetPlayerStatusUrl(liveId), cc); if (node == null) { throw new NicoLiveException( LiveStatusCode.NetworkError, LiveUtil.LiveIdString(liveId)); } return(CreateFromXml(liveId, node)); }
/// <summary> /// Urlから生放送情報を取得します。 /// </summary> public static LiveInfo Create(long liveId, CookieContainer cc) { // urlを取得します。 var responseData = WebUtil.RequestHttp( NicoString.GetLiveUrl(liveId), null, cc); // 失敗;; エラー時はレスポンスが空になります。 if (responseData == null) { throw new NicoException( "放送ページの取得に失敗しました。", LiveUtil.LiveIdString(liveId)); } var text = Encoding.UTF8.GetString(responseData); return(CreateFromHtml(LiveUtil.LiveIdString(liveId), text)); }
/// <summary> /// コンストラクタ /// </summary> private Heartbeat(long liveId, XmlNode node) : base(node, "heartbeat", LiveUtil.LiveIdString(liveId)) { foreach (var childObj in RootNode.ChildNodes) { var child = (XmlNode)childObj; var value = child.InnerText; switch (child.Name) { case "watchCount": this.WatchCount = StrUtil.ToInt(value, -1); break; case "commentCount": this.CommentCount = StrUtil.ToInt(value, -1); break; case "ticket": this.Ticket = value; break; } } }