コード例 #1
0
ファイル: NicoUtil.cs プロジェクト: tdenc/nicorank
        public string GetMyMylistList()
        {
            List <MylistInfo> mylist_info_list = niconico_network_.GetMylistInfoListFromMypage();
            StringBuilder     buff             = new StringBuilder();

            for (int i = 0; i < mylist_info_list.Count; ++i)
            {
                buff.Append(mylist_info_list[i].mylist_id).Append("\t");
                if (mylist_info_list[i].is_public)
                {
                    buff.Append("公開\t");
                }
                else
                {
                    buff.Append("非公開\t");
                }
                buff.Append(mylist_info_list[i].title).Append("\t").Append(mylist_info_list[i].description).Append("\r\n");
            }
            return(buff.ToString());
        }
コード例 #2
0
        public void MylistTest()
        {
            int wait_millisecond = int.Parse(TestUtility.TestData[TestUtility.KEY_ACCESS_WAIT_MILLISECONDS]);

            string timestamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            string video_id1 = "sm9";
            string video_id2 = "sm1097445";

            // {"id":(?<mylist_id>\d+),"status":"ok"}
            Regex mylist_id_regex = new Regex("{\"id\":(?<mylist_id>\\d+),\"status\":\"ok\"}");

            TestUtility.EnsureLogin(network_);

            string mylist_id1 = null;
            string mylist_id2 = null;
            string mylist_id3 = null;
            string token      = null;

            bool test_succeeded = false;

            try
            {
                // ()
                // -> (mylist1())

                TestUtility.Message("Running MylistTest - Create new mylist");
                string mylist_title1 = "まいりすと_1_" + timestamp;
                string result        = network_.MakeNewMylistGroup(mylist_title1);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest1-1");
                mylist_id1 = mylist_id_regex.Match(result).Groups["mylist_id"].Value;
                string str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(mylist_title1), "MylistTest1-2");


                TestUtility.Wait(5);

                // (mylist1())
                // -> (mylist1() mylist2())

                TestUtility.Message("Running MylistTest - Create new mylist with token");
                string mylist_title2  = "マイリスト_2_" + timestamp;
                string my_mylist_page = network_.GetMylistPageFromMyPage();
                token  = Regex.Match(my_mylist_page, "NicoAPI.token = \"([-0-9a-f]+)\";").Groups[1].Value;
                result = network_.MakeNewMylistGroup(mylist_title2, token);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest2-1");
                mylist_id2 = mylist_id_regex.Match(result).Groups["mylist_id"].Value;
                str        = network_.GetMylistHtml(mylist_id2, true);
                Assert.That(str, Text.Contains(mylist_title2), "MylistTest2-2");


                TestUtility.Wait(5);

                // (mylist1() mylist2())
                // -> (*mylist1() mylist2())

                TestUtility.Message("Running MylistTest - Update mylist information");
                bool mylist_visibility1 = false;
                mylist_title1 = mylist_title1 + "_mod";
                string mylist_description1 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order1       = 16;
                int    mylist_color1       = 3;
                result = network_.UpdateMylistGroup(mylist_id1, mylist_visibility1, mylist_title1, mylist_description1, mylist_order1, mylist_color1);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest3-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(mylist_description1), "MylistTest3-2");



                TestUtility.Wait(5);

                // (*mylist1() mylist2())
                // -> (*mylist1() *mylist2())

                TestUtility.Message("Running MylistTest - Update mylist information with token");
                bool mylist_visibility2 = false;
                mylist_title2 = mylist_title2 + "_mod";
                string mylist_description2 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order2       = 15;
                int    mylist_color2       = 2;
                result = network_.UpdateMylistGroup(mylist_id2, mylist_visibility2, mylist_title2, mylist_description2, mylist_order2, mylist_color2, token);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest4-1");
                str = network_.GetMylistHtml(mylist_id2, true);
                Assert.That(str, Text.Contains(mylist_description2), "MylistTest4-2");

                TestUtility.Wait(5);

                // (*mylist1() *mylist2())
                // -> (*mylist1() *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Create mylist with mylist information");
                bool   mylist_visibility3  = false;
                string mylist_title3       = "᧠᧡᧢᧣᧥᧥᧼_3_" + timestamp;
                string mylist_description3 = Guid.NewGuid().ToString() + "テスト";
                int    mylist_order3       = 17;
                int    mylist_color3       = 4;
                result = network_.MakeNewAndUpdateMylistGroup(mylist_visibility3, mylist_title3, mylist_description3, mylist_order3, mylist_color3, out mylist_id3);
                TestUtility.Message(result);
                Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTest5-1");
                str = network_.GetMylistHtml(mylist_id3, true);
                Assert.That(str, Text.Contains(mylist_description3), "MylistTest5-2");

                TestUtility.Wait(5);

                // (*mylist1() *mylist2() *mylist3())
                // -> (*mylist1(video1) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add video to mylist");
                result = network_.AddMylist(mylist_id1, video_id1);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest6-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_id1), "MylistTest6-2");

                TestUtility.Wait(5);

                // (*mylist1(video1) *mylist2() *mylist3())
                // -> (*mylist1(video1,video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add video to mylist with token");
                result = network_.AddMylist(mylist_id1, video_id2);
                TestUtility.Message(result);
                Assert.That(result, Is.EqualTo("{\"status\":\"ok\"}"), "MylistTest7-1");
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_id2), "MylistTest7-2");

                TestUtility.Wait(5);

                // (*mylist1(video1,video2) *mylist2() *mylist3())
                // -> (*mylist1(*video1,*video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Update description of videos in mylist");
                List <string> video_id_list = new List <string>();
                video_id_list.Add(video_id1);
                video_id_list.Add(video_id2);
                List <string> description_list   = new List <string>();
                string        video_description1 = Guid.NewGuid().ToString();
                string        video_description2 = Guid.NewGuid().ToString();
                description_list.Add(video_description1);
                description_list.Add(video_description2);
                network_.UpdateMylistDescription(mylist_id1, video_id_list, description_list, wait_millisecond);
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_description1), "MylistTest8-1");
                Assert.That(str, Text.Contains(video_description2), "MylistTest8-2");


                TestUtility.Wait(5);

                // (*mylist1(*video1,*video2) *mylist2() *mylist3())
                // -> (*mylist1(**video1,**video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Update description of videos in mylist with delegate");
                description_list   = new List <string>();
                video_description1 = Guid.NewGuid().ToString();
                video_description2 = Guid.NewGuid().ToString();
                description_list.Add(video_description1);
                description_list.Add(video_description2);
                NicoNetwork.NetworkWaitDelegate on_wait = delegate(string message, int current, int total)
                {
                    TestUtility.Message("{0}({1}/{2})", message, current, total);
                };
                network_.UpdateMylistDescription(mylist_id1, video_id_list, description_list, on_wait);
                str = network_.GetMylistHtml(mylist_id1, true);
                Assert.That(str, Text.Contains(video_description1), "MylistTest9-1");
                Assert.That(str, Text.Contains(video_description2), "MylistTest9-2");

                TestUtility.Wait(5);

                // (*mylist1(*video1,*video2) *mylist2() *mylist3())
                // -> (*mylist1(**video1,**video2) *mylist2() *mylist3())

                TestUtility.Message("Running MylistTest - Add same video.");
                try
                {
                    result = network_.AddMylist(mylist_id1, video_id1);
                    TestUtility.Message(result);
                    Assert.Fail("MylistTest10-1");
                }
                catch (NiconicoAddingMylistExistException e)
                {
                    TestUtility.Message(e.ToString());
                }

                TestUtility.Wait(5);

                TestUtility.Message("Running MylistTest - Fetch my mylist information.");
                List <MylistInfo> mylist_info_list = network_.GetMylistInfoListFromMypage();
                // mylist1, mylist2, mylist3, mylist_id
                Assert.That(mylist_info_list.Count, Is.GreaterThanOrEqualTo(4), "MylistTest10-1");
                MylistInfo mylist_info1 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id1); });
                Assert.That(mylist_info1, Is.Not.Null, "MylistTest10-2");
                Assert.That(mylist_info1.description, Is.EqualTo(mylist_description1), "MylistTest10-3");
                Assert.That(mylist_info1.is_public, Is.EqualTo(mylist_visibility1), "MylistTest10-4");
                //TODO Assert.That(mylist_info1.number_of_item, Is.EqualTo(2), "MylistTest10-5");
                Assert.That(mylist_info1.title, Is.EqualTo(mylist_title1), "MylistTest10-6");
                MylistInfo mylist_info2 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id2); });
                Assert.That(mylist_info2, Is.Not.Null, "MylistTest10-2");
                Assert.That(mylist_info2.description, Is.EqualTo(mylist_description2), "MylistTest10-7");
                Assert.That(mylist_info2.is_public, Is.EqualTo(mylist_visibility2), "MylistTest10-8");
                //TODO Assert.That(mylist_info2.number_of_item, Is.EqualTo(0), "MylistTest10-9");
                Assert.That(mylist_info2.title, Is.EqualTo(mylist_title2), "MylistTest10-10");
                MylistInfo mylist_info3 = mylist_info_list.Find(delegate(MylistInfo mi) { return(mi.mylist_id == mylist_id3); });
                Assert.That(mylist_info3, Is.Not.Null, "MylistTest10-11");
                Assert.That(mylist_info3.description, Is.EqualTo(mylist_description3), "MylistTest10-12");
                Assert.That(mylist_info3.is_public, Is.EqualTo(mylist_visibility3), "MylistTest10-13");
                //TODO Assert.That(mylist_info3.number_of_item, Is.EqualTo(0), "MylistTest10-14");
                Assert.That(mylist_info3.title, Is.EqualTo(mylist_title3), "MylistTest10-15");


                // TODO Move video.
                // (*mylist1(**video1,**video2) *mylist2() *mylist3())
                // -> (*mylist1(**video2) *mylist2(**video1) *mylist3())

                // TODO Copy video.
                // (*mylist1(**video2) *mylist2(**video1) *mylist3())
                // -> (*mylist1(**video2) *mylist2(**video1, **video2) *mylist3())

                // TODO Delete video.
                // (*mylist1(**video2) *mylist2(**video1, **video2) *mylist3())
                // -> (*mylist1() *mylist2(**video1, **video2) *mylist3())

                test_succeeded = true;
            }
            finally
            {
                bool delete_succeeded = true;

                if (token == null)
                {
                    string my_mylist_page = network_.GetMylistPageFromMyPage();
                    token = Regex.Match(my_mylist_page, "NicoAPI.token = \"([-0-9a-f]+)\";").Groups[1].Value;
                }

                if (!string.IsNullOrEmpty(mylist_id1))
                {
                    // (*mylist1() *mylist2(**video1, **video2) *mylist3())
                    // -> (*mylist2(**video1, **video2) *mylist3())
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist1");
                        string result = RemoveMylistGroup(network_, mylist_id1, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestI-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (!string.IsNullOrEmpty(mylist_id2))
                {
                    // (*mylist2(**video1, **video2) *mylist3())
                    // -> (*mylist3())
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist2");
                        string result = RemoveMylistGroup(network_, mylist_id2, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestII-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (!string.IsNullOrEmpty(mylist_id3))
                {
                    // (*mylist3())
                    // -> ()
                    try
                    {
                        TestUtility.Wait(5);
                        TestUtility.Message("Running MylistTest - Delete mylist3");
                        string result = RemoveMylistGroup(network_, mylist_id3, token);
                        TestUtility.Message(result);
                        Assert.That(result, Text.Contains("\"status\":\"ok\""), "MylistTestIII-1");
                    }
                    catch (Exception e)
                    {
                        delete_succeeded = false;
                        TestUtility.Message(e.ToString());
                    }
                }

                if (test_succeeded && !delete_succeeded)
                {
                    Assert.Fail("MylistTest delete");
                }
            }
        }