示例#1
0
        static async Task <string> GetUserName(CookieImportResult importObj)
        {
            try
            {
                var url       = new Uri("http://www.nicovideo.jp/my/channel");
                var container = new CookieContainer();
                var client    = new HttpClient(new HttpClientHandler()
                {
                    CookieContainer = container
                });
                if (importObj.AddTo(container) != CookieImportState.Success)
                {
                    return(null);
                }

                var res = await client.GetStringAsync(url);

                if (string.IsNullOrEmpty(res))
                {
                    return(null);
                }
                var namem = Regex.Match(res, "nickname = \"([^<>]+)\";", RegexOptions.Singleline);
                if (namem.Success)
                {
                    return(namem.Groups[1].Value);
                }
                else
                {
                    return(null);
                }
            }
            catch (System.Net.Http.HttpRequestException) { return(null); }
        }
示例#2
0
        async private Task <CookieContainer> getBrowserCookie(bool isSub)
        {
            var si = SourceInfoSerialize.load(isSub);

//			var importer = await SunokoLibrary.Application.CookieGetters.Default.GetInstanceAsync(si, false);
            ICookieImporter importer = await SunokoLibrary.Application.CookieGetters.Default.GetInstanceAsync(si, false).ConfigureAwait(false);

//			var importers = new SunokoLibrary.Application.CookieGetters(true, null);
//			var importera = (await SunokoLibrary.Application.CookieGetters.Browsers.IEProtected.GetCookiesAsync(TargetUrl));
//			foreach (var rr in importer.Cookies)
//				util.debugWriteLine(rr);
            //importer = await importers.GetInstanceAsync(si, true);
            if (importer == null)
            {
                return(null);
            }

            CookieImportResult result = await importer.GetCookiesAsync(TargetUrl).ConfigureAwait(false);

            if (result.Status != CookieImportState.Success)
            {
                return(null);
            }

            //if (result.Cookies["user_session"] == null) return null;
            //var cookie = result.Cookies["user_session"].Value;

            //util.debugWriteLine("usersession " + cookie);

            var cc = new CookieContainer();

            cc.PerDomainCapacity = 200;
            foreach (Cookie _c in result.Cookies)
            {
                try {
                    if (_c.Name == "age_auth" || _c.Name.IndexOf("user_session") > -1)
                    {
                        cc.Add(new Cookie(_c.Name, _c.Value, "/", ".nicovideo.jp"));
                    }
                } catch (Exception e) {
                    util.debugWriteLine("cookie add browser " + _c.ToString() + e.Message + e.Source + e.StackTrace + e.TargetSite);
                }
            }
//			result.AddTo(cc);

            var c       = cc.GetCookies(TargetUrl)["user_session"];
            var secureC = cc.GetCookies(TargetUrl)["user_session_secure"];

            //cc = setUserSession(cc, c, secureC);


            return(cc);
        }