public MiDOption( Nico2Color color = Nico2Color.White, Nico2Size size = Nico2Size.Medium, Nico2Locate locate = Nico2Locate.Middle ) { this.Color = color; this.Size = size; this.Locate = locate; }
/// <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(); } } } }
public static System.Drawing.Color ToRGB(this Nico2Color color) { return(System.Drawing.Color.FromArgb((int)color)); }
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(); }
internal static string ToValue(this Nico2Color color) { return(color.ToString().ToLower()); }