Esempio n. 1
0
 public MiDOption(
     Nico2Color color   = Nico2Color.White,
     Nico2Size size     = Nico2Size.Medium,
     Nico2Locate locate = Nico2Locate.Middle
     )
 {
     this.Color  = color;
     this.Size   = size;
     this.Locate = locate;
 }
Esempio n. 2
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="data"></param>
        public MiDComment(
            Stream data
            )
        {
            if (data == default || data.Length <= 0)
            {
                throw new InvalidDataException("Commentデータの取得に失敗しました.");
            }

            // XMLデータを読み込む.
            data.Seek(0, SeekOrigin.Begin);
            var doc = XDocument.Load(data);

            if (doc.Elements("chat").Count() == 0)
            {
                throw new InvalidDataException($"{nameof(data)}: commentデータではありません.");
            }

            // rootデータの生成.
            var root = doc.Root;

            Text        = root.Value;
            Number      = int.Parse(root.Attribute("no")?.Value ?? "0");
            PostDateSec = long.Parse(root.Attribute("date")?.Value ?? "0");
            PostDate    = DateTimeOffset.FromUnixTimeSeconds(PostDateSec).LocalDateTime;
            UserID      = root.Attribute("user_id")?.Value;
            Anonymity   = (root.Attribute("anonymity")?.Value == default) || (root.Attribute("anonymity").Value != "1");
            IsPremium   = (root.Attribute("premium")?.Value == default) || (root.Attribute("premium").Value != "1");
            var commands = root.Attribute("mail")?.Value?.Split(' ');

            if (commands != default)
            {
                foreach (var cmd in commands)
                {
                    var c = cmd.ToLower();

                    if (c == "ue" || c == "naka" || c == "shita")
                    {
                        Locate = c.ToNico2Locate();
                    }
                    else if (c == "big" || c == "medium" || c == "small")
                    {
                        Size = c.ToNico2Size();
                    }
                    else if (c.Contains("white") || c.Contains("red") ||
                             c.Contains("pink") || c.Contains("orange") ||
                             c.Contains("yellow") || c.Contains("green") ||
                             c.Contains("cyan") || c.Contains("blue") ||
                             c.Contains("purple") || c.Contains("black"))
                    {
                        Color = c.ToNico2Color();
                    }
                }
            }
        }
Esempio n. 3
0
 public static System.Drawing.Color ToRGB(this Nico2Color color)
 {
     return(System.Drawing.Color.FromArgb((int)color));
 }
Esempio n. 4
0
        static async Task Main(string[] args)
        {
            /* ===================================================================== *
            * 001 : ニコニコ動画からCookie情報を取得する方法.
            * ===================================================================== */

            // 1 - login を利用するために必要なパラメータを用意.
            #region
            string email = "";      // ニコニコログイン用メールアドレス
            string pass  = "";      // ニコニコログイン用パスワード
            #endregion
            // 2 - login の実行.
            //   - Cookie情報を取得可能.
            CookieContainer cookie001 = Nico2API.Login(email, pass);



            /* ===================================================================== *
            * 002 : ニコニコAPIを利用するためのクライアントを生成する.
            * ===================================================================== */

            // 1 - クライアント生成に必要なパラメータを用意.
            CookieContainer cookie002 = cookie001;  // ニコニコ動画のCookie情報
            int             liveId    = 314829021;  // ニコニコ生放送の番組ID

            // 2 - クライアントの生成.
            Nico2API client001 = new Nico2API(cookie002, liveId);       // [方法 A] newを使用してのインスタンス化.
            Nico2API client002 = Nico2API.Create(cookie002, liveId);    // [方法 B] Createメソッドを使用してのインスタンス化.



            /* ===================================================================== *
            * 003 : ニコニコ生放送番組情報を取得する.
            * ===================================================================== */

            // 1 - 生放送番組情報を取得.
            PlayerStatus info = client001.GetPlayerStatus();

            // 2 - 取得した情報を表示してみる.
            Console.WriteLine($"コミュニティID      : {info.CommunityID}");
            Console.WriteLine($"生放送番組ID        : {info.LiveID}");
            Console.WriteLine($"生放送番組タイトル  : {info.Title}");
            Console.WriteLine($"生放送番組概要      : {info.Description}");
            Console.WriteLine($"生放送番組閲覧者数  : {info.WatchCount}");
            Console.WriteLine($"生放送番組コメント数: {info.CommentCount}");



            /* ===================================================================== *
            * 004 : ニコニコ生放送からコメントを取得する.
            * ===================================================================== */

            await client001.ConsumeCommentAsync(
                comment =>                                         // ここにコメント取得時の操作を記述する.
            {
                int no                    = comment.Number;        // コメント投稿番号.
                string userId             = comment.UserID;        // コメント投稿ユーザID.
                string text               = comment.Text;          // コメント内容.
                bool is184                = comment.Anonymity;     // 184コメントの場合, true.
                bool isPremium            = comment.IsPremium;     // コメント投稿ユーザがプレミアム会員の場合, true.
                Nico2Color color          = comment.Color;         // コメント色.
                Nico2Size commentSize     = comment.Size;          // コメントサイズ.
                Nico2Locate commentLocate = comment.Locate;        // コメントの位置.
                long pos                  = comment.VideoPosition; // コメント投稿時間(放送開始からの経過秒).
                DateTime postedDate       = comment.PostDate;      // コメント投稿時刻.

                System.Drawing.Color sysColor = color.ToRGB();     // MiDNico2API.Windows版限定. コメント色をRGBに変換する.

                // コメントを表示してみる.
                Console.WriteLine($"[{no.ToString("000")}] {text}\t({userId})");
            });


            //await Nico2API.Create(cookie001, liveId).ConsumeCommentAsync(c=>{Console.WriteLine($"[{c.Number.ToString("000")}] {c.Text}");});


            Console.ReadKey();
        }
Esempio n. 5
0
 internal static string ToValue(this Nico2Color color)
 {
     return(color.ToString().ToLower());
 }