Example #1
0
        public async Task <string> GetLatestReleaseFromServer()
        {
            version      = null;
            downloadLink = null;
            try
            {
                HttpWebRequest request = webRequestFactory.CreateGetRequest("https://api.github.com/repos/tumblthreeapp/tumblthree/releases/latest");
                string         result  = await webRequestFactory.ReadRequestToEndAsync(request);

                XmlDictionaryReader jsonReader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(result), new XmlDictionaryReaderQuotas());
                XElement            root       = XElement.Load(jsonReader);
                version = root.Element("tag_name").Value;

                if (Environment.Is64BitProcess)
                {
                    downloadLink = root.Descendants("browser_download_url").Where(s => s.Value.Contains("x64-App")).FirstOrDefault()?.Value;
                }
                else
                {
                    downloadLink = root.Descendants("browser_download_url").Where(s => s.Value.Contains("x86-App")).FirstOrDefault()?.Value;
                }

                if (string.IsNullOrEmpty(downloadLink))
                {
                    downloadLink = root.Element("assets").Element("item").Element("browser_download_url").Value;
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception.ToString());
                return(exception.Message);
            }

            return(null);
        }
Example #2
0
        private async Task <string> GetRequestAsync()
        {
            const string   requestUrl = "https://www.tumblr.com/";
            HttpWebRequest request    = webRequestFactory.CreateGetRequest(requestUrl);

            return(await webRequestFactory.ReadRequestToEndAsync(request));
        }
Example #3
0
        public async Task <string> GetTumblrUsernameAsync()
        {
            try
            {
                const string tumblrAccountSettingsUrl = "https://www.tumblr.com/settings/account";
                var          request = webRequestFactory.CreateGetRequest(tumblrAccountSettingsUrl);
                cookieService.GetUriCookie(request.CookieContainer, new Uri("https://www.tumblr.com/"));
                var document = await webRequestFactory.ReadRequestToEndAsync(request).ConfigureAwait(false);

                return(ExtractTumblrUsername(document));
            }
            catch (Exception ex)
            {
                if (ex.GetType() == typeof(WebException))
                {
                    var we = (WebException)ex;
                    if (we.Response != null && ((HttpWebResponse)we.Response).StatusCode == HttpStatusCode.NotFound)
                    {
                        return(null);
                    }
                }
                Logger.Error("LoginService.GetTumblrUsernameAsync: {0}", ex);
                throw;
            }
        }
Example #4
0
        public async Task <string> GetTumblrUsernameAsync()
        {
            const string tumblrAccountSettingsUrl = "https://www.tumblr.com/settings/account";
            var          request = webRequestFactory.CreateGetRequest(tumblrAccountSettingsUrl);

            cookieService.GetUriCookie(request.CookieContainer, new Uri("https://www.tumblr.com/"));
            var document = await webRequestFactory.ReadRequestToEndAsync(request).ConfigureAwait(false);

            return(ExtractTumblrUsername(document));
        }
        private async Task <string> GetPage(string url)
        {
            HttpWebRequest request = webRequestFactory.CreateGetRequest(url);
            string         page;

            using (var response = await request.GetResponseAsync().TimeoutAfter(shellService.Settings.TimeOut) as HttpWebResponse)
            {
                page = await webRequestFactory.ReadRequestToEndAsync(request);
            }

            return(page);
        }
Example #6
0
        public virtual async Task <string> RequestImgurAlbumSite(string imgurAlbumUrl)
        {
            var requestRegistration = new CancellationTokenRegistration();

            try
            {
                HttpWebRequest request = webRequestFactory.CreateGetRequest(imgurAlbumUrl);
                requestRegistration = ct.Register(() => request.Abort());
                return(await webRequestFactory.ReadRequestToEndAsync(request));
            }
            finally
            {
                requestRegistration.Dispose();
            }
        }
Example #7
0
        public virtual async Task <string> RequestGfycatCajax(string gfyId)
        {
            var requestRegistration = new CancellationTokenRegistration();

            try
            {
                string         url     = @"https://gfycat.com/cajax/get/" + gfyId;
                HttpWebRequest request = webRequestFactory.CreateGetXhrRequest(url);
                requestRegistration = ct.Register(() => request.Abort());
                return(await webRequestFactory.ReadRequestToEndAsync(request));
            }
            finally
            {
                requestRegistration.Dispose();
            }
        }
        public async Task <string> GetLatestReleaseFromServer()
        {
            version      = null;
            downloadLink = null;
            try
            {
                HttpWebRequest request = webRequestFactory.CreateGetRequest("https://api.github.com/repos/tumblthreeapp/tumblthree/releases/latest");
                string         result  = await webRequestFactory.ReadRequestToEndAsync(request);

                XmlDictionaryReader jsonReader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(result), new XmlDictionaryReaderQuotas());
                XElement            root       = XElement.Load(jsonReader);
                version      = root.Element("tag_name").Value;
                downloadLink = root.Element("assets").Element("item").Element("browser_download_url").Value;
            }
            catch (Exception exception)
            {
                Logger.Error(exception.ToString());
                return(exception.Message);
            }

            return(null);
        }