Example #1
0
        /// <summary>
        /// publishstatusの取得を開始します。
        /// </summary>
        private static void BeginGetPublishStatus(long liveId,
                                                  InternalData internalData,
                                                  AutoResetEvent ev)
        {
            WebUtil.RequestHttpAsync(
                NicoString.GetPublishStatusUrl(liveId),
                null,
                internalData.Cookie,
                (result, data) =>
            {
                try
                {
                    // publishstatusは放送主でないと取得できません。
                    var v = PublishStatus.CreateFromXml(liveId, NicoUtil.GetXml(data));

                    internalData.LiveStreamInfo.PublishStatus = v;
                }
                catch (Exception ex)
                {
                    internalData.Exception = ex;
                }

                ev.Set();
            });
        }
Example #2
0
        /// <summary>
        /// ニコニコ生放送の情報を取得します。
        /// </summary>
        public static PublishStatus Create(long liveId, CookieContainer cc)
        {
            // 生放送IDから放送情報を取得します。
            var node = NicoUtil.GetXml(
                NicoString.GetPublishStatusUrl(liveId),
                cc);

            if (node == null)
            {
                throw new NicoLiveException(
                          NicoStatusCode.NetworkError,
                          NicoString.LiveIdString(liveId));
            }

            return(CreateFromXml(liveId, node));
        }