public NicoNicoPublicMylistEntry GetMylist() { try { var a = NicoNicoWrapperMain.Session.GetAsync(MylistUrl).Result; //該当JavaScriptの部分から取得 var globals = a.Substring(a.IndexOf("Jarty.globals(")); //改行で分割 var splitted = globals.Split('\n'); //正規表現でダブルクォーテ内の名前を取得 var regex = new Regex("\"(.*)\""); string nickname = null; string userid = null; string mylistname = null; string description = null; string json = null; foreach(var text in splitted) { //マイリストオーナーだったら if(text.Contains("mylist_owner:")) { //マイリストオーナーのニックネームを取得 nickname = text.Substring(text.IndexOf("nickname: ")); var match = regex.Match(nickname); //グループから取得 nickname = match.Groups[1].Value; continue; } if(nickname != null && text.Contains("user_id:")) { userid = new Regex(@"\d+").Match(text).Value; continue; } if(userid != null && text.Contains("name:")) { mylistname = regex.Match(text).Groups[1].Value; continue; } if(mylistname != null && text.Contains("description:")) { description = regex.Match(text).Groups[1].Value; continue; } if(description != null && text.Contains("Mylist.preload(")) { //Json取得 json = text.Substring(text.IndexOf(",") + 1, text.Length - text.IndexOf(",") - 3); break; } } var ret = new NicoNicoPublicMylistEntry(); ret.NickName = @"<a href=""http://www.nicovideo.jp/user/" + userid + @""">" + nickname + "</a> さんの公開マイリスト"; ret.MylistName = mylistname; ret.Description = description; //\nを改行に置換 ret.Description = ret.Description.Replace("\\n", "<br>").Replace("\\r", ""); ret.Description = HyperLinkParser.Parse(ret.Description); var list = new List<MylistListEntryViewModel>(); var data = DynamicJson.Parse(json); StoreItem(data, list); ret.Data = list; return ret; } catch(RequestTimeout) { return null; } }
public NicoNicoPublicMylistEntry GetMylist() { try { var a = NicoNicoWrapperMain.Session.GetAsync(MylistUrl).Result; //該当JavaScriptの部分から取得 var globals = a.Substring(a.IndexOf("Jarty.globals(")); //改行で分割 var splitted = globals.Split('\n'); //正規表現でダブルクォーテ内の名前を取得 var regex = new Regex("\"(.*)\""); string nickname = null; string userid = null; string mylistname = null; string description = null; string json = null; foreach (var text in splitted) { //マイリストオーナーだったら if (text.Contains("mylist_owner:")) { //マイリストオーナーのニックネームを取得 nickname = text.Substring(text.IndexOf("nickname: ")); var match = regex.Match(nickname); //グループから取得 nickname = match.Groups[1].Value; continue; } if (nickname != null && text.Contains("user_id:")) { userid = new Regex(@"\d+").Match(text).Value; continue; } if (userid != null && text.Contains("name:")) { mylistname = regex.Match(text).Groups[1].Value; continue; } if (mylistname != null && text.Contains("description:")) { description = regex.Match(text).Groups[1].Value; continue; } if (description != null && text.Contains("Mylist.preload(")) { //Json取得 json = text.Substring(text.IndexOf(",") + 1, text.Length - text.IndexOf(",") - 3); break; } } var ret = new NicoNicoPublicMylistEntry(); ret.NickName = @"<a href=""http://www.nicovideo.jp/user/" + userid + @""">" + nickname + "</a> さんの公開マイリスト"; ret.MylistName = mylistname; ret.Description = description; //\nを改行に置換 ret.Description = ret.Description.Replace("\\n", "<br>").Replace("\\r", ""); ret.Description = HyperLinkParser.Parse(ret.Description); var list = new List <MylistListEntryViewModel>(); var data = DynamicJson.Parse(json); StoreItem(data, list); ret.Data = list; return(ret); } catch (RequestTimeout) { return(null); } }