예제 #1
0
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            var text    = Uri.EscapeDataString(string.Join("\n", context.UntranslatedTexts));
            var request = new XUnityWebRequest(
                "POST",
                UrlBase + (_isSMT ? UrlNSMT : UrlN2MT),
                string.Format(
                    FormUrlEncodedTemplate,
                    FixLanguage(context.SourceLanguage),
                    FixLanguage(context.DestinationLanguage),
                    text));

            // create token
            var timestamp = Math.Truncate(DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds);
            var key       = Encoding.UTF8.GetBytes(_version);
            var data      = Encoding.UTF8.GetBytes($"{UUID}\n{request.Address}\n{timestamp}");
            var token     = Convert.ToBase64String(new HMACMD5(key).ComputeHash(data));

            // set required headers
            request.Headers["Authorization"] = $"PPG {UUID}:{token}";
            request.Headers["Content-Type"]  = "application/x-www-form-urlencoded; charset=UTF-8";
            request.Headers["Timestamp"]     = timestamp.ToString();

            context.Complete(request);

            _translationCount++;
        }
예제 #2
0
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            _translationCount++;

            string address = null;

            if (_ig == null || _iid == null)
            {
                address = HttpsServicePointTemplateUrlWithoutIG;
            }
            else
            {
                address = string.Format(HttpsServicePointTemplateUrl, _ig, _iid, _translationCount);
            }

            var data = string.Format(
                RequestTemplate,
                Uri.EscapeDataString(context.UntranslatedText),
                context.SourceLanguage,
                context.DestinationLanguage);

            var request = new XUnityWebRequest("POST", address, data);

            request.Cookies = _cookieContainer;
            AddHeaders(request, true);

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            _translationCount++;

            var allUntranslatedText =
                JsonHelper.Escape(JsonHelper.Escape(string.Join("\n", context.UntranslatedTexts)));

            var query = string.Join("&", new[]
            {
                "rpcids=" + _translateRpcId,
                "f.sid=" + _FSID.ToString(CultureInfo.InvariantCulture),
                "bl=" + Uri.EscapeDataString(_version),
                "hl=en-US",
                "soc-app=1",
                "soc-platform=1",
                "soc-device=1",
                "_reqid=" + _reqId.ToString(CultureInfo.InvariantCulture),
                "rt=c"
            });

            var data = "f.req=" + Uri.EscapeDataString(string.Format(TranslationPostTemplate, _translateRpcId, allUntranslatedText, FixLanguage(context.SourceLanguage), FixLanguage(context.DestinationLanguage))) + "&";

            var url = _httpsServicePointTranslateTemplateUrl + "?" + query;

            var request = new XUnityWebRequest("POST", url, data);

            request.Cookies = _cookieContainer;
            AddHeaders(request, true);

            _reqId += 100000;

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            _translationCount++;

            var allUntranslatedText = string.Join("\n", context.UntranslatedTexts);

            XUnityWebRequest request;

            if (context.DestinationLanguage == "romaji")
            {
                request = new XUnityWebRequest(
                    string.Format(
                        HttpsServicePointRomanizeTemplateUrl,
                        context.SourceLanguage,
                        Tk(allUntranslatedText),
                        Uri.EscapeDataString(allUntranslatedText)));
            }
            else
            {
                request = new XUnityWebRequest(
                    string.Format(
                        HttpsServicePointTranslateTemplateUrl,
                        context.SourceLanguage,
                        context.DestinationLanguage,
                        Tk(allUntranslatedText),
                        Uri.EscapeDataString(allUntranslatedText)));
            }

            request.Cookies = _cookieContainer;
            AddHeaders(request, true);

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            var request = new XUnityWebRequest(
                string.Format(
                    ServicePointTemplateUrl,
                    _endpoint,
                    context.SourceLanguage,
                    context.DestinationLanguage,
                    Uri.EscapeDataString(context.UntranslatedText)));

            context.Complete(request);
        }
예제 #6
0
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            var request = new XUnityWebRequest(
                string.Format(
                    HttpsServicePointTemplateUrl,
                    context.SourceLanguage,
                    context.DestinationLanguage,
                    WwwHelper.EscapeUrl(context.UntranslatedText),
                    _key));

            request.Headers[HttpRequestHeader.Accept]        = "*/*";
            request.Headers[HttpRequestHeader.AcceptCharset] = "UTF-8";

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            var urlBuilder = new StringBuilder(HttpsServiceUrl);

            urlBuilder.Append("?key=").Append(Uri.EscapeDataString(_key));
            urlBuilder.Append("&source=").Append(context.SourceLanguage);
            urlBuilder.Append("&target=").Append(context.DestinationLanguage);
            for (int i = 0; i < context.UntranslatedTexts.Length; i++)
            {
                var untranslatedText = context.UntranslatedTexts[i];
                urlBuilder.Append("&q=").Append(Uri.EscapeDataString(untranslatedText));
            }

            var request = new XUnityWebRequest(
                "POST",
                urlBuilder.ToString());

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            var fullTranslationText = string.Join("\n", context.UntranslatedTexts);
            var jsonString          = string.Format(JsonTemplate, _deviceId, FixLanguage(context.SourceLanguage), FixLanguage(context.DestinationLanguage), JsonHelper.Escape(fullTranslationText));
            var base64           = Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonString));
            var obfuscatedBase64 = Obfuscate(16, base64);
            var data             = string.Format(FormUrlEncodedTemplate, Uri.EscapeDataString(obfuscatedBase64));

            var request = new XUnityWebRequest("POST", Url, data);

            request.Cookies = _cookies;

            SetupDefaultHeaders(request);
            SetupApiRequestHeaders(request);

            context.Complete(request);

            _translationCount++;
        }
예제 #9
0
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            string salt = DateTime.UtcNow.Millisecond.ToString();
            var    md5  = CreateMD5(_appId + context.UntranslatedText + salt + _appSecret);

            var request = new XUnityWebRequest(
                string.Format(
                    HttpServicePointTemplateUrl,
                    WwwHelper.EscapeUrl(context.UntranslatedText),
                    FixLanguage(context.SourceLanguage),
                    FixLanguage(context.DestinationLanguage),
                    _appId,
                    salt,
                    md5));

            request.Headers[HttpRequestHeader.UserAgent]     = string.IsNullOrEmpty(AutoTranslatorSettings.UserAgent) ? UserAgents.Chrome_Win10_Latest : AutoTranslatorSettings.UserAgent;
            request.Headers[HttpRequestHeader.AcceptCharset] = "UTF-8";

            context.Complete(request);
        }
        public override void OnCreateRequest(IHttpRequestCreationContext context)
        {
            StringBuilder data = new StringBuilder();

            data.Append("[");
            for (int i = 0; i < context.UntranslatedTexts.Length; i++)
            {
                var untranslatedText = JsonHelper.Escape(context.UntranslatedTexts[i]);
                data.Append("{\"Text\":\"");
                data.Append(untranslatedText);
                data.Append("\"}");

                if (context.UntranslatedTexts.Length - 1 != i)
                {
                    data.Append(",");
                }
            }
            data.Append("]");


            var request = new XUnityWebRequest(
                "POST",
                string.Format(HttpsServicePointTemplateUrl, context.SourceLanguage, context.DestinationLanguage),
                data.ToString());

            if (Accept != null)
            {
                request.Headers[HttpRequestHeader.Accept] = Accept;
            }
            if (ContentType != null)
            {
                request.Headers[HttpRequestHeader.ContentType] = ContentType;
            }
            request.Headers["Ocp-Apim-Subscription-Key"] = _key;

            context.Complete(request);
        }
 /// <summary>
 /// Callback that must be overwritten to create the request object.
 /// </summary>
 /// <param name="context"></param>
 public abstract void OnCreateRequest(IHttpRequestCreationContext context);