Exemplo n.º 1
0
        private void InspectResponse(XUnityWebResponse response)
        {
            CookieCollection cookies = response.NewCookies;

            // FIXME: Is this needed? Should already be added
            _cookieContainer.Add(cookies);
        }
Exemplo n.º 2
0
        public async Task SetupTKK()
        {
            XUnityWebResponse response = null;

            _cookieContainer = new CookieContainer();

            try
            {
                var client  = new XUnityWebClient();
                var request = CreateWebSiteRequest();
                response = await client.SendAsync(request);
            }
            catch (Exception)
            {
                return;
            }

            // failure
            if (response.Error != null)
            {
                return;
            }

            // failure
            if (response.Data == null)
            {
                return;
            }

            InspectResponse(response);

            try
            {
                var html = response.Data;

                string[] lookups = new[] { "tkk:'", "TKK='" };
                foreach (var lookup in lookups)
                {
                    var index = html.IndexOf(lookup);
                    if (index > -1) // simple string approach
                    {
                        var startIndex = index + lookup.Length;
                        var endIndex   = html.IndexOf("'", startIndex);
                        var result     = html.Substring(startIndex, endIndex - startIndex);

                        var parts = result.Split('.');
                        if (parts.Length == 2)
                        {
                            m = long.Parse(parts[0]);
                            s = long.Parse(parts[1]);
                            break;
                        }
                    }
                }
            }
            catch (Exception)
            {
                // hard to warn...
            }
        }
        private void InspectResponse(XUnityWebResponse response)
        {
            CookieCollection cookies = response.NewCookies;

            foreach (Cookie cookie in cookies)
            {
                // redirect cookie to correct domain
                cookie.Domain = ".googleapis.com";
            }

            // FIXME: Is this needed? Should already be added
            _cookieContainer.Add(cookies);
        }
Exemplo n.º 4
0
        public IEnumerator SetupIGAndIID()
        {
            XUnityWebResponse response = null;

            _cookieContainer  = new CookieContainer();
            _translationCount = 0;

            try
            {
                var client  = new XUnityWebClient();
                var request = CreateWebSiteRequest();
                response = client.Send(request);
            }
            catch (Exception e)
            {
                XuaLogger.Current.Warn(e, "An error occurred while setting up BingTranslate IG. Proceeding without...");
                yield break;
            }

            var iterator = response.GetSupportedEnumerator();

            while (iterator.MoveNext())
            {
                yield return(iterator.Current);
            }

            if (response.IsTimedOut)
            {
                XuaLogger.Current.Warn("A timeout error occurred while setting up BingTranslate IG. Proceeding without...");
                yield break;
            }

            // failure
            if (response.Error != null)
            {
                XuaLogger.Current.Warn(response.Error, "An error occurred while setting up BingTranslate IG. Proceeding without...");
                yield break;
            }

            // failure
            if (response.Data == null)
            {
                XuaLogger.Current.Warn(null, "An error occurred while setting up BingTranslate IG. Proceeding without...");
                yield break;
            }

            InspectResponse(response);

            try
            {
                var html = response.Data;

                _ig  = Lookup("ig\":\"", html);
                _iid = Lookup(".init(\"/feedback/submission?\",\"", html);

                if (_ig == null || _iid == null)
                {
                    XuaLogger.Current.Warn("An error occurred while setting up BingTranslate IG/IID. Proceeding without...");
                }
            }
            catch (Exception e)
            {
                XuaLogger.Current.Warn(e, "An error occurred while setting up BingTranslate IG. Proceeding without...");
            }
        }
        public IEnumerator SetupTKK()
        {
            XUnityWebResponse response = null;

            _cookieContainer = new CookieContainer();

            try
            {
                var client  = new XUnityWebClient();
                var request = CreateWebSiteRequest();
                response = client.Send(request);
            }
            catch (Exception e)
            {
                XuaLogger.AutoTranslator.Warn(e, "An error occurred while setting up GoogleTranslate TKK. Using fallback TKK values instead.");
                yield break;
            }

            // wait for response completion
            var iterator = response.GetSupportedEnumerator();

            while (iterator.MoveNext())
            {
                yield return(iterator.Current);
            }

            if (response.IsTimedOut)
            {
                XuaLogger.AutoTranslator.Warn("A timeout error occurred while setting up GoogleTranslate TKK. Using fallback TKK values instead.");
                yield break;
            }

            // failure
            if (response.Error != null)
            {
                XuaLogger.AutoTranslator.Warn(response.Error, "An error occurred while setting up GoogleTranslate TKK. Using fallback TKK values instead.");
                yield break;
            }

            // failure
            if (response.Data == null)
            {
                XuaLogger.AutoTranslator.Warn(null, "An error occurred while setting up GoogleTranslate TKK. Using fallback TKK values instead.");
                yield break;
            }

            InspectResponse(response);

            try
            {
                var html = response.Data;

                bool     found   = false;
                string[] lookups = new[] { "tkk:'", "TKK='" };
                foreach (var lookup in lookups)
                {
                    var index = html.IndexOf(lookup);
                    if (index > -1) // simple string approach
                    {
                        var startIndex = index + lookup.Length;
                        var endIndex   = html.IndexOf("'", startIndex);
                        var result     = html.Substring(startIndex, endIndex - startIndex);

                        var parts = result.Split('.');
                        if (parts.Length == 2)
                        {
                            m     = long.Parse(parts[0]);
                            s     = long.Parse(parts[1]);
                            found = true;
                            break;
                        }
                    }
                }

                if (!found)
                {
                    XuaLogger.AutoTranslator.Warn("An error occurred while setting up GoogleTranslate TKK. Could not locate TKK value. Using fallback TKK values instead.");
                }
            }
            catch (Exception e)
            {
                XuaLogger.AutoTranslator.Warn(e, "An error occurred while setting up GoogleTranslate TKK. Using fallback TKK values instead.");
            }
        }
        public IEnumerator SetupFSID()
        {
            XUnityWebResponse response = null;

            _cookieContainer = new CookieContainer();

            try
            {
                var client  = new XUnityWebClient();
                var request = CreateWebSiteRequest();
                response = client.Send(request);
            }
            catch (Exception e)
            {
                XuaLogger.AutoTranslator.Warn(e, "An error occurred while setting up GoogleTranslate FSID. Using random instead.");
                yield break;
            }

            // wait for response completion
            var iterator = response.GetSupportedEnumerator();

            while (iterator.MoveNext())
            {
                yield return(iterator.Current);
            }

            if (response.IsTimedOut)
            {
                XuaLogger.AutoTranslator.Warn("A timeout error occurred while setting up GoogleTranslate FSID. Using random instead.");
                yield break;
            }

            // failure
            if (response.Error != null)
            {
                XuaLogger.AutoTranslator.Warn(response.Error, "An error occurred while setting up GoogleTranslate FSID. Using random instead.");
                yield break;
            }

            // failure
            if (response.Data == null)
            {
                XuaLogger.AutoTranslator.Warn(null, "An error occurred while setting up GoogleTranslate FSID. Using random instead.");
                yield break;
            }

            try
            {
                var html = response.Data;

                bool     found   = false;
                string[] lookups = new[] { "FdrFJe\":\"" };
                foreach (var lookup in lookups)
                {
                    var index = html.IndexOf(lookup);
                    if (index > -1) // simple string approach
                    {
                        var startIndex = index + lookup.Length;
                        var endIndex   = html.IndexOf("\"", startIndex);
                        var result     = html.Substring(startIndex, endIndex - startIndex);

                        _FSID = long.Parse(result, CultureInfo.InvariantCulture);
                        found = true;
                        break;
                    }
                }

                if (!found)
                {
                    XuaLogger.AutoTranslator.Warn("An error occurred while setting up GoogleTranslate FSID. Could not locate FSID value. Using random instead.");
                }
            }
            catch (Exception e)
            {
                XuaLogger.AutoTranslator.Warn(e, "An error occurred while setting up GoogleTranslate FSID. Using random instead.");
            }
        }