示例#1
0
        /// <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;
                }
            }
        }
示例#2
0
        /// <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));
        }
示例#3
0
        /// <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));
        }
示例#4
0
        /// <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;
                }
            }
        }