示例#1
0
        public bool TwitterLogin(string mail, string password)
        {
            GetHeader header1 = new GetHeader()
                                .setHost("lobi.co")
                                .setConnection(true)
                                .setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            string source               = this.NetworkAPI.get("https://lobi.co/signup/twitter", header1);
            string authenticity_token   = Pattern.get_string(source, Pattern.authenticity_token, "\"");
            string redirect_after_login = Pattern.get_string(source, Pattern.redirect_after_login, "\"");
            string oauth_token          = Pattern.get_string(source, Pattern.oauth_token, "\"");

            string     post_data = string.Format("authenticity_token={0}&redirect_after_login={1}&oauth_token={2}&session%5Busername_or_email%5D={3}&session%5Bpassword%5D={4}", authenticity_token, WebUtility.UrlEncode(redirect_after_login), oauth_token, mail, password);
            PostHeader header2   = new PostHeader()
                                   .setHost("api.twitter.com")
                                   .setConnection(true)
                                   .setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                                   .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                   .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6")
                                   .setOrigin("https://api.twitter.com");

            string source2 = this.NetworkAPI.post_x_www_form_urlencoded("https://api.twitter.com/oauth/authorize", post_data, header2);

            if (source2.IndexOf("Twitterにログイン") > -1)
            {
                return(false);
            }

            return(this.NetworkAPI.get(Pattern.get_string(source2, Pattern.twitter_redirect_to_lobi, "\""), header1).IndexOf("ログインに失敗しました") == -1);
        }
示例#2
0
文件: Http.cs 项目: nattu74/LobiAPI
        public string post_form_data(string url, string boundary, string[] data, PostHeader header)
        {
            string post_data = "";

            foreach (string cdata in data)
            {
                post_data += "--" + boundary + "\r\n" + cdata + "\r\n";
            }
            post_data += "--" + boundary + "--";

            byte[]         data_bytes = Encoding.UTF8.GetBytes(post_data);
            HttpWebRequest req        = (HttpWebRequest)WebRequest.Create(url);

            req.Method = "POST";
            if (header.Host != "")
            {
                req.Host = header.Host;
            }
            req.KeepAlive = header.Connection;
            if (header.Accept != "")
            {
                req.Accept = header.Accept;
            }
            if (header.Origin != "")
            {
                req.Headers.Add("Origin", header.Origin);
            }
            if (header.UserAgent != "")
            {
                req.UserAgent = header.UserAgent;
            }
            req.ContentType = "multipart/form-data; boundary=" + boundary;
            if (header.Referer != "")
            {
                req.Referer = header.Referer;
            }
            if (header.AcceptEncoding != "")
            {
                req.Headers.Add("Accept-Encoding", header.AcceptEncoding);
            }
            if (header.AcceptLanguage != "")
            {
                req.Headers.Add("Accept-Language", header.AcceptLanguage);
            }
            req.CookieContainer = this.cookie;
            using (Stream stream = req.GetRequestStream())
                stream.Write(data_bytes, 0, data_bytes.Length);

            string result = "";

            using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
            {
                using (StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
                    result = reader.ReadToEnd();
            }

            return(result);
        }
示例#3
0
 // no optional parameter support :( https://stackoverflow.com/questions/44208838/viewcomponent-with-optional-parameters
 public IViewComponentResult Invoke(PostHeader Post, bool IsDeletable, int DeletePostId = 0, int UserId = 0)
 {
     return(View(new PostSpecification
     {
         Post = Post,
         IsDeletable = IsDeletable,
         DeletePostId = DeletePostId,
         UserId = UserId
     }));
 }
示例#4
0
        public void ChangeProfile(string name, string description)
        {
            PostHeader header = new PostHeader()
                                .setHost("web.lobi.co")
                                .setConnection(true)
                                .setAccept("application/json, text/plain, */*")
                                .setOrigin("https://web.lobi.co")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            this.NetworkAPI.post_form_data("https://web.lobi.co/api/me/profile", "----WebKitFormBoundary" + Guid.NewGuid().ToString("N").Substring(0, 16), new string[] { "Content-Disposition: form-data; name=\"name\"\r\n\r\n" + name, "Content-Disposition: form-data; name=\"description\"\r\n\r\n" + description }, header);
        }
示例#5
0
        public MakePrivateGroupResult MakePrivateGroup(string user_id)
        {
            PostHeader header = new PostHeader()
                                .setHost("web.lobi.co")
                                .setConnection(true)
                                .setAccept("application/json, text/plain, */*")
                                .setOrigin("https://web.lobi.co")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            return(JsonConvert.DeserializeObject <MakePrivateGroupResult>(this.NetworkAPI.post_form_data("https://web.lobi.co/api/groups/1on1s", "----WebKitFormBoundary" + Guid.NewGuid().ToString("N").Substring(0, 16), new string[] { "Content-Disposition: form-data; name=\"user\"\r\n\r\n" + user_id }, header)));
        }
示例#6
0
        public void RemoveGroup(string group_id)
        {
            PostHeader header = new PostHeader()
                                .setHost("web.lobi.co")
                                .setConnection(true)
                                .setAccept("application/json, text/plain, */*")
                                .setOrigin("https://web.lobi.co")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            this.NetworkAPI.post_x_www_form_urlencoded("https://web.lobi.co/api/group/" + group_id + "/remove", "", header);
        }
示例#7
0
        public void UnBoo(string group_id, string chat_id)
        {
            PostHeader header = new PostHeader()
                                .setHost("web.lobi.co")
                                .setConnection(true)
                                .setAccept("application/json, text/plain, */*")
                                .setOrigin("https://web.lobi.co")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            this.NetworkAPI.post_form_data("https://web.lobi.co/api/group/" + group_id + "/chats/unboo", "----WebKitFormBoundary" + Guid.NewGuid().ToString("N").Substring(0, 16), new string[] { "Content-Disposition: form-data; name=\"id\"\r\n\r\n" + chat_id }, header);
        }
示例#8
0
文件: Http.cs 项目: nattu74/LobiAPI
        public string post(string url, PostHeader header, string data)
        {
            byte[]         data_bytes = Encoding.UTF8.GetBytes(data);
            HttpWebRequest req        = (HttpWebRequest)WebRequest.Create(url);

            req.Method = "POST";
            if (header.Host != "")
            {
                req.Host = header.Host;
            }
            req.KeepAlive = header.Connection;
            if (header.Accept != "")
            {
                req.Accept = header.Accept;
            }
            if (header.Origin != "")
            {
                req.Headers.Add("Origin", header.Origin);
            }
            if (header.UserAgent != "")
            {
                req.UserAgent = header.UserAgent;
            }
            if (header.ContentType != "")
            {
                req.ContentType = header.ContentType;
            }
            if (header.Referer != "")
            {
                req.Referer = header.Referer;
            }
            if (header.AcceptEncoding != "")
            {
                req.Headers.Add("Accept-Encoding", header.AcceptEncoding);
            }
            if (header.AcceptLanguage != "")
            {
                req.Headers.Add("Accept-Language", header.AcceptLanguage);
            }
            req.CookieContainer = this.cookie;
            using (Stream stream = req.GetRequestStream())
                stream.Write(data_bytes, 0, data_bytes.Length);

            string result = "";

            using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
            {
                using (StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
                    result = reader.ReadToEnd();
            }

            return(result);
        }
示例#9
0
        public void MakeThread(string group_id, string message, bool shout = false)
        {
            PostHeader header = new PostHeader()
                                .setHost("web.lobi.co")
                                .setConnection(true)
                                .setAccept("application/json, text/plain, */*")
                                .setOrigin("https://web.lobi.co")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");


            this.NetworkAPI.post_form_data("https://web.lobi.co/api/group/" + group_id + "/chats", "----WebKitFormBoundary" + Guid.NewGuid().ToString("N").Substring(0, 16), new string[] { "Content-Disposition: form-data; name=\"type\"\r\n\r\n" + (shout ? "shout" : "normal"), "Content-Disposition: form-data; name=\"lang\"\r\n\r\nja", "Content-Disposition: form-data; name=\"message\"\r\n\r\n" + message }, header);
        }
示例#10
0
        internal static PostHeaderEntity Convert(this PostHeader dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new PostHeaderEntity
            {
                Id = dto.Id,
                Title = dto.Title
            });
        }
示例#11
0
        public static IEnumDataPages<PostHeader> GetHeaderPageData(WebResult webResult)
        {
            XXElement xeSource = new XXElement(webResult.Http.zGetXDocument().Root);
            string url = webResult.WebRequest.HttpRequest.Url;
            PostHeaderDataPage<PostHeader> data = new PostHeaderDataPage<PostHeader>();
            data.SourceUrl = url;
            data.LoadFromWebDate = webResult.LoadFromWebDate;
            data.Id = GetPageKey(webResult.WebRequest.HttpRequest);

            data.UrlNextPage = null;

            // <div id="vba_news4">
            IEnumerable<XXElement> xeHeaders = xeSource.XPathElements("//div[@id='vba_news4']//div[@class='collapse']");
            List<PostHeader> headers = new List<PostHeader>();
            foreach (XXElement xeHeader in xeHeaders)
            {
                PostHeader header = new PostHeader();
                header.SourceUrl = url;
                header.LoadFromWebDate = webResult.LoadFromWebDate;

                //XXElement xe = xeHeader.XPathElement(".//h2[@class='blockhead']//a[@class!='mcbadge mcbadge_r']");
                XXElement xe = xeHeader.XPathElement(".//h2[@class='blockhead']//a[2]");
                header.Title = xe.XPathValue(".//text()");
                header.UrlDetail = xe.XPathValue("./@href");

                //header.images = xeHeader.XPathImages(xeImg => new UrlImage(zurl.GetUrl(url, xeImg.zAttribValue("src")))).ToList();

                //XXElement xe = xeHeader.XPathElement(".//*[@class='shd']//a");
                //header.urlDetail = zurl.GetUrl(url, xe.XPathValue("@href"));
                //header.title = RapideDdl.ExtractTextValues(header.infos, xe.XPathValue(".//text()", RapideDdl.TrimFunc1));

                //xe = xeHeader.XPathElement(".//div[@class='shdinfo']");
                //header.postAuthor = xe.XPathValue(".//span[@class='arg']//a//text()");
                //// Aujourd'hui, 17:13
                //header.creationDate = RapideDdl.ParseDateTime(xe.XPathValue(".//span[@class='date']//text()"), loadDataFromWeb.loadFromWebDate);

                //xe = xeHeader.XPathElement(".//div[@class='maincont']");
                //header.images = xe.XPathImages(xeImg => new UrlImage(zurl.GetUrl(url, xeImg.zAttribValue("src")))).ToList();

                //RapideDdl.SetTextValues(header, xe.DescendantTextList());

                //xe = xeHeader.XPathElement(".//div[@class='morelink']//span[@class='arg']");
                //header.category = xe.DescendantTextList(".//a").Select(RapideDdl.TrimFunc1).Where(s => !s.StartsWith("Commentaires")).zToStringValues("/");

                //pb.Trace.WriteLine(header.Title);

                headers.Add(header);
            }
            data.Headers = headers.ToArray();
            return data;
        }
示例#12
0
        public static HeaderViewModel Convert(this PostHeader dto)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new HeaderViewModel
            {
                BodyId = dto.BodyId,
                Id = dto.Id,
                Title = dto.Title,
                Tags = dto.Tags.Select(t => t.Text)
            });
        }
示例#13
0
        public static List <PostHeader> HeaderCombin(Dictionary <string, string> HeadSetValue)
        {
            List <PostHeader> headerList = new List <PostHeader>();
            PostHeader        data       = new PostHeader();

            foreach (var head in HeadSetValue)
            {
                data.HeaderKey     = head.Key;
                data.HeaderContent = head.Value;
            }
            //data.HeaderKey = "Authorization";
            //data.HeaderContent = $"Bearer {this._Token}";
            headerList.Add(data);
            return(headerList);
        }
示例#14
0
        public bool Login(string mail, string password)
        {
            GetHeader header1 = new GetHeader()
                                .setHost("lobi.co")
                                .setConnection(true)
                                .setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                                .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6");

            string source     = this.NetworkAPI.get("https://lobi.co/signin", header1);
            string csrf_token = Pattern.get_string(source, Pattern.csrf_token, "\"");

            string     post_data = string.Format("csrf_token={0}&email={1}&password={2}", csrf_token, mail, password);
            PostHeader header2   = new PostHeader()
                                   .setHost("lobi.co")
                                   .setConnection(true)
                                   .setAccept("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                                   .setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36")
                                   .setAcceptLanguage("ja,en-US;q=0.8,en;q=0.6")
                                   .setOrigin("https://lobi.co")
                                   .setReferer("https://lobi.co/signin");

            return(this.NetworkAPI.post_x_www_form_urlencoded("https://lobi.co/signin", post_data, header2).IndexOf("ログインに失敗しました") == -1);
        }
示例#15
0
        // header get data
        protected override IEnumDataPages <IHeaderData> GetHeaderPageData(WebResult webResult)
        {
            XXElement             xeSource = new XXElement(webResult.Http.zGetXDocument().Root);
            string                url      = webResult.WebRequest.HttpRequest.Url;
            PostHeaderDataPage_v1 data     = new PostHeaderDataPage_v1();

            //PostHeaderDataPage<PostHeader> data = new PostHeaderDataPage<PostHeader>();
            data.SourceUrl       = url;
            data.LoadFromWebDate = webResult.LoadFromWebDate;
            data.Id = GetPageKey(webResult.WebRequest.HttpRequest);

            // <div id="page">
            // <div id="wrapper">
            // <table id="layout">
            // <tr>
            // <td></td>
            // <td>
            // <div id="left-col">
            // <div id="content-padding">
            // <div id="content">
            //   <div style="height:264px;" class="cover_global" data-zt="divbyzt">...</div>
            //   ...
            // </div>

            data.UrlNextPage = zurl.GetUrl(url, xeSource.XPathValue("//div[@class='page-nav']//li[last()]//a[text()='>']/@href"));

            IEnumerable <XXElement> xeHeaders = xeSource.XPathElements("//table[@id='layout']//div[@id='content']/div");
            //List<Vosbooks_PostHeader> headers = new List<Vosbooks_PostHeader>();
            List <PostHeader> headers = new List <PostHeader>();

            foreach (XXElement xeHeader in xeHeaders)
            {
                //Vosbooks_PostHeader header = new Vosbooks_PostHeader();
                PostHeader header = new PostHeader();
                header.SourceUrl       = url;
                header.LoadFromWebDate = webResult.LoadFromWebDate;

                if (xeHeader.XPathValue("@class") == "page-nav")
                {
                    continue;
                }

                // <div style="" data-zt="divbyzt">
                // <div data-zt="divbyzt">
                // <div data-zt="divbyzt">
                // <center>
                // <strong>
                // <a href="http://www.vosbooks.net/74231-journaux/pack-journaux-francais-du-28-janvier-2015.html" title="">
                // Pack Journaux Français Du 28 Janvier 2015
                // <span class="detail_release" data-zt="spanbyzt"></span>
                // </a>
                // </strong>
                // </center>
                // </div>
                // </div>
                // </div>

                XXElement xe = xeHeader.XPathElement(".//div/div/div//a");
                header.Title     = xe.XPathValue(".//text()");
                header.UrlDetail = xe.XPathValue("./@href");

                //header.images = xeHeader.XPathImages(xeImg => new UrlImage(zurl.GetUrl(url, xeImg.zAttribValue("src")))).ToList();

                //XXElement xe = xeHeader.XPathElement(".//*[@class='shd']//a");
                //header.urlDetail = zurl.GetUrl(url, xe.XPathValue("@href"));
                //header.title = RapideDdl.ExtractTextValues(header.infos, xe.XPathValue(".//text()", RapideDdl.TrimFunc1));

                //xe = xeHeader.XPathElement(".//div[@class='shdinfo']");
                //header.postAuthor = xe.XPathValue(".//span[@class='arg']//a//text()");
                //// Aujourd'hui, 17:13
                //header.creationDate = RapideDdl.ParseDateTime(xe.XPathValue(".//span[@class='date']//text()"), loadDataFromWeb.loadFromWebDate);

                //xe = xeHeader.XPathElement(".//div[@class='maincont']");
                //header.images = xe.XPathImages(xeImg => new UrlImage(zurl.GetUrl(url, xeImg.zAttribValue("src")))).ToList();

                //RapideDdl.SetTextValues(header, xe.DescendantTextList());

                //xe = xeHeader.XPathElement(".//div[@class='morelink']//span[@class='arg']");
                //header.category = xe.DescendantTextList(".//a").Select(RapideDdl.TrimFunc1).Where(s => !s.StartsWith("Commentaires")).zToStringValues("/");

                headers.Add(header);
            }
            data.Headers = headers.ToArray();
            return(data);
        }