public static NicoNicoVitaApiVideoData GetVideoData(string cmsid) { if (cmsid.Contains("?")) { cmsid = cmsid.Substring(0, cmsid.IndexOf('?')); } string result = NicoNicoWrapperMain.Session.GetAsync(VideoDataApiUrl + cmsid).Result; var json = DynamicJson.Parse(result); var response = json.nicovideo_video_response; var ret = new NicoNicoVitaApiVideoData(); if (!response.video()) { ret.Success = false; return(ret); } ret.Id = response.video.id; ret.Title = response.video.title; ret.FirstRetrieve = NicoNicoUtil.DateFromVitaFormatDate(response.video.first_retrieve); ret.ViewCounter = int.Parse(response.video.view_counter); ret.CommentCounter = int.Parse(response.thread.num_res); ret.MylistCounter = int.Parse(response.video.mylist_counter); ret.Length = NicoNicoUtil.ConvertTime(long.Parse(response.video.length_in_seconds)); ret.Description = response.video.description; ret.ThumbnailUrl = response.video.thumbnail_url; return(ret); }
public override void Execute(NicoNicoCommentEntry target) { if (!Settings.Instance.DisableJumpCommand) { var seek = SeekPattern.Match(Entry.Content); if (seek.Success) { Owner.Owner.Handler.Seek(NicoNicoUtil.ConvertTime(seek.Groups[1].Value)); return; } var split = Entry.Content.Split(' '); if (Regex.IsMatch(split[1], "\\d")) { Owner.Owner.VideoUrl = "http://www.nicovideo.jp/watch/" + split[1]; Owner.Owner.Initialize(); } } }
//jsonをパースしてリストにする private void StoreItem(dynamic json, List <NicoNicoMylistData> ret) { foreach (var entry in json.mylistitem) { NicoNicoMylistData data = new NicoNicoMylistData(); data.CreateTime = UnixTime.FromUnixTime((long)entry.create_time).ToString(); data.Description = entry.description; data.ItemId = entry.item_id; var item = entry.item_data; data.Title = HttpUtility.HtmlDecode(item.title); if (entry.item_type is string) { data.Type = int.Parse(entry.item_type); } else if (entry.item_type is double) { data.Type = (int)entry.item_type; } //動画 if (data.Type == 0) { data.UpdateTime = UnixTime.FromUnixTime((long)item.update_time).ToString(); data.FirstRetrieve = UnixTime.FromUnixTime((long)item.first_retrieve).ToString(); data.Length = NicoNicoUtil.ConvertTime(long.Parse(item.length_seconds)); data.Id = item.video_id; data.ViewCounter = int.Parse(item.view_counter); data.CommentCounter = int.Parse(item.num_res); data.MylistCounter = int.Parse(item.mylist_counter); data.ThumbNailUrl = item.thumbnail_url; } else if (data.Type == 5) //静画 { data.UpdateTime = UnixTime.FromUnixTime((long)item.update_time).ToString(); data.FirstRetrieve = UnixTime.FromUnixTime((long)item.create_time).ToString(); data.Id = item.id.ToString(); data.ViewCounter = (int)item.view_count; data.CommentCounter = (int)item.comment_count; data.MylistCounter = (int)item.mylist_count; data.ThumbNailUrl = item.thumbnail_url; } else if (data.Type == 6) //書籍 { data.UpdateTime = UnixTime.FromUnixTime((long)entry.update_time).ToString(); data.FirstRetrieve = UnixTime.FromUnixTime((long)item.released_at).ToString(); data.Id = "bk" + item.id; data.ViewCounter = (int)item.view_count; data.CommentCounter = (int)item.comment_count; data.MylistCounter = (int)item.mylist_count; data.ThumbNailUrl = item.thumbnail; } else if (data.Type == 13) //ブロマガ { data.UpdateTime = UnixTime.FromUnixTime((long)item.commented_time).ToString(); data.FirstRetrieve = UnixTime.FromUnixTime((long)item.create_time).ToString(); data.Id = "ar" + item.id; data.CommentCounter = (int)item.comment_count; data.MylistCounter = int.Parse(item.mylist_count); data.ThumbNailUrl = item.thumbnail_url; } ret.Add(data); } }