Exemple #1
0
 public static string Rename(string oldName, string newName)
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.TAG_RENAME));
     query.Add("old", oldName);
     query.Add("new", newName);
     return query.ToString();
 }
Exemple #2
0
        public static string Rename(string oldName, string newName)
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.TAG_RENAME));

            query.Add("old", oldName);
            query.Add("new", newName);
            return(query.ToString());
        }
Exemple #3
0
        public async Task <bool> UpdateShopThread(int threadId, Player player, string content)
        {
            string editThreadPage = await GetEditThreadPage(threadId, player.SessionId);

            if (editThreadPage == null)
            {
                return(false);
            }

            string csrfToken = Utils.GetCsrfToken(editThreadPage, "hash");

            if (string.IsNullOrEmpty(csrfToken))
            {
                return(false);
            }

            string title = Utils.FindTextBetween(editThreadPage, "<input type=\"text\" name=\"title\" id=\"title\" onkeypress=\"return&#x20;event.keyCode&#x21;&#x3D;13\" value=\"", "\">");

            UrlQuery data = new UrlQuery();

            data.Add("hash", csrfToken);
            data.Add("title", title);
            data.Add("content", content);
            data.Add("submit", "Submit");

            var uri             = new Uri(Url_MainPoEPage);
            var cookieContainer = new CookieContainer();

            using (var handler = new HttpClientHandler()
            {
                CookieContainer = cookieContainer
            })
                using (var client = new HttpClient(handler)
                {
                    BaseAddress = uri
                }) {
                    cookieContainer.Add(uri, new Cookie(PoESessionIdCookieName, player.SessionId));
                    var baseUrl = BaseUrlTemplate_EditThread.Replace("$threadId$", threadId.ToString());
                    try {
                        var response = await client.PostAsync(baseUrl, new StringContent(data.Build(), Encoding.UTF8, "application/x-www-form-urlencoded"));

                        if (response.IsSuccessStatusCode)
                        {
                            if (await NotifyPoETrade(threadId, player.SessionId))
                            {
                                return(true);
                            }
                        }
                    } catch (HttpRequestException e) {
                        MessageController.Instance().Log($"[Error][API] Error while updating shop thread {threadId}: {e.Message}");
                        return(false);
                    }
                }

            return(false);
        }
Exemple #4
0
        public async Task <int> GenerateShopThread(string league, Player player)
        {
            string html = await GetForumPage();

            string forumId = GetForumId(html, league);

            if (!string.IsNullOrEmpty(forumId))
            {
                var newThreadPage = await GetNewThreadPage(forumId, player.SessionId);

                string csrfToken = Utils.GetCsrfToken(newThreadPage, "hash");

                UrlQuery data = new UrlQuery();
                data.Add("hash", csrfToken);
                data.Add("title", $"{player.AccountName}'s {league} Shop");
                data.Add("content", "reserved");
                data.Add("submit", "Submit");

                var uri             = new Uri(Url_MainPoEPage);
                var cookieContainer = new CookieContainer();
                using (var handler = new HttpClientHandler()
                {
                    CookieContainer = cookieContainer
                })
                    using (var client = new HttpClient(handler)
                    {
                        BaseAddress = uri
                    }) {
                        cookieContainer.Add(uri, new Cookie(PoESessionIdCookieName, player.SessionId));
                        var baseUrl = BaseUrlTemplate_NewThread.Replace("$forumId$", forumId);
                        try {
                            var response = await client.PostAsync(baseUrl, new StringContent(data.Build(), Encoding.UTF8, "application/x-www-form-urlencoded"));

                            if (response.IsSuccessStatusCode)
                            {
                                return(Convert.ToInt32(response.RequestMessage.RequestUri.Segments.Last()));
                            }

                            MessageController.Instance().Log($"[Error][API] Error while generating a new forum thread: HTTP{response.StatusCode} {response.ReasonPhrase}");
                        } catch (HttpRequestException e) {
                            MessageController.Instance().Log($"[Error][API] Error while generating a new forum thread: {e.Message}");

                            return(-1);
                        }
                    }
            }

            return(-1);
        }
Exemple #5
0
        public static string Suggest(string url)
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.POST_SUGGEST));

            query.Add("url", url);
            return(query.ToString());
        }
Exemple #6
0
        public static string Delete(string name)
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.TAG_DELETE));

            query.Add("tag", name);
            return(query.ToString());
        }
Exemple #7
0
        public static string Dates(string tag = "")
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.POST_DATE));

            query.Add("tag", tag);
            return(query.ToString());
        }
Exemple #8
0
        public static string All(string name = "")
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.BUNDLE_ALL));

            query.Add("name", name);
            return(query.ToString());
        }
Exemple #9
0
        public static async Task <IList <MatchResponse.Match> > GetMessagedMatches(this TinderClient client, UrlQuery query)
        {
            query.Add("message", "1");
            var url = CurrentMatchesEndpoint + query.Generate();

            var response = await new RestClient(url, client.XAuthToken).Get <MatchesWrapper>();

            return(response.Matches);
        }
Exemple #10
0
        public async Task <List <Item> > GetItems(int tabIndex, string league, Player player)
        {
            if (Settings.Data().Get <bool>("Debug"))
            {
                MessageController.Instance().Log($"[Debug][API] Retrieving items of tab #{tabIndex} of {league} league...");
            }

            var uri             = new Uri(Url_MainPoEPage);
            var cookieContainer = new CookieContainer();

            using (var handler = new HttpClientHandler()
            {
                CookieContainer = cookieContainer
            })
                using (var client = new HttpClient(handler)
                {
                    BaseAddress = uri
                }) {
                    cookieContainer.Add(uri, new Cookie(PoESessionIdCookieName, player.SessionId));

                    UrlQuery query = new UrlQuery();
                    query.Add("league", league);
                    query.Add("tabs", "0");
                    query.Add("tabIndex", tabIndex.ToString());
                    query.Add("accountName", player.AccountName);

                    try {
                        var data = await client.GetStringAsync(BaseUrl_StashItems + query.Build(true));

                        var parsedData = JsonConvert.DeserializeObject <Dictionary <string, object> >(data);

                        var         itemsStr    = parsedData["items"].ToString();
                        var         parsedItems = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(itemsStr);
                        List <Item> items       = ParseItems(parsedItems);

                        return(items);
                    } catch (HttpRequestException e) {
                        MessageController.Instance().Log($"[Error][API] Error while retrieving items of tab #{tabIndex} of {league} league: {e.Message}");
                        return(null);
                    }
                }
        }
Exemple #11
0
 public static string Add(string url, string description, string extended = "", string tags = "",
                 DateTime? date = null, bool shared = false, bool replace = false)
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.POST_ADD));
     query.Add("url", url);
     query.Add("decription", description);
     query.Add("extended", extended);
     query.Add("tags", tags);
     query.Add("dt", date.Value.ToLongDateString());
     query.Add("shared", shared.ToString());
     query.Add("replace", replace.ToString());
     return query.ToString();
 }
Exemple #12
0
        public static string Add(string url, string description, string extended = "", string tags = "",
                                 DateTime?date = null, bool shared = false, bool replace = false)
        {
            UrlQuery query = new UrlQuery(Url.For(Constant.POST_ADD));

            query.Add("url", url);
            query.Add("decription", description);
            query.Add("extended", extended);
            query.Add("tags", tags);
            query.Add("dt", date.Value.ToLongDateString());
            query.Add("shared", shared.ToString());
            query.Add("replace", replace.ToString());
            return(query.ToString());
        }
Exemple #13
0
        public async Task <List <StashTab> > GetStashTabs(string league, Player player)
        {
            if (Settings.Data().Get <bool>("Debug"))
            {
                MessageController.Instance().Log($"[Debug][API] Retrieving stash tabs for league {league}...");
            }

            List <StashTab> stashTabs = new List <StashTab>();

            var uri             = new Uri(Url_MainPoEPage);
            var cookieContainer = new CookieContainer();

            using (var handler = new HttpClientHandler()
            {
                CookieContainer = cookieContainer
            })
                using (var client = new HttpClient(handler)
                {
                    BaseAddress = uri
                }) {
                    cookieContainer.Add(uri, new Cookie(PoESessionIdCookieName, player.SessionId));

                    UrlQuery query = new UrlQuery();
                    query.Add("league", league);
                    query.Add("tabs", "1");
                    query.Add("tabIndex", "0");
                    query.Add("accountName", player.AccountName);
                    try {
                        var data = await client.GetStringAsync(BaseUrl_StashItems + query.Build(true));

                        var parsedData = JsonConvert.DeserializeObject <Dictionary <string, object> >(data);
                        var tabsStr    = parsedData["tabs"].ToString();
                        var parsedTabs = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(tabsStr);
                        stashTabs = parsedTabs.Select(t => new StashTab(t, league)).ToList();

                        var         itemsStr    = parsedData["items"].ToString();
                        var         parsedItems = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(itemsStr);
                        List <Item> items       = ParseItems(parsedItems);

                        stashTabs.Find(t => t.Index == 0).Items = items;
                    } catch (HttpRequestException e) {
                        MessageController.Instance().Log($"[Error][API] Error while retrieving stash tabs for league {league}: {e.Message}");
                        return(null);
                    }
                }

            foreach (var tab in stashTabs)
            {
                if (tab.Index > 0)
                {
                    var items = await GetItems(tab.Index, league, player);

                    if (items != null)
                    {
                        tab.Items = items;
                    }
                    else
                    {
                        MessageController.Instance().Log($"[Warn][API] Getting items for tab #{tab.Index} failed.");
                    }
                }
            }

            return(stashTabs);
        }
Exemple #14
0
 public static string Suggest(string url)
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.POST_SUGGEST));
     query.Add("url", url);
     return query.ToString();
 }
Exemple #15
0
 public static string All(string name = "")
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.BUNDLE_ALL));
     query.Add("name", name);
     return query.ToString();
 }
Exemple #16
0
 public static string Delete(string name)
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.TAG_DELETE));
     query.Add("tag", name);
     return query.ToString();
 }
Exemple #17
0
 public static string Dates(string tag = "")
 {
     UrlQuery query = new UrlQuery(Url.For(Constant.POST_DATE));
     query.Add("tag", tag);
     return query.ToString();
 }