public static string dosen(int max, Auri au_se, string block) { var x = 0; string a = "", xtr = ""; while (true) { try { a = au_se["^" + x, block]; // Debug.WriteLine("X:" +x +" A: " + a); if (a.Length > 0) { xtr += a.Substring(1, a.Length - 2); } } catch { break; } x++; if (x > max) { break; // probably overkill, but... } } //while (String.IsNullOrEmpty(a)); return(xtr); }
public static List <GTResp> GetGTResponceAll(string[] tls, string[] qs, string[] sls) { var gtrlist = new List <GTResp>(); try { for (int i = 0; i != tls.Length; i++) { var gl = GTLink; if (useNA) { gl = GTNALink; } // corrects GTLink responce encoding. client.Headers["User-Agent"] = "AndroidTranslate/5.3.0.RC02.130475354-53000263 5.1 phone TRANSLATE_OPM5_TEST_1"; var url = gl + "&q=" + HttpUtility.UrlPathEncode( qs[i].Replace(" ", "%20").Replace("\r", "%0D").Replace("\n", "%0A")) + "&sl=" + sls[i] + "&tl=" + tls[i]; Debug.WriteLine("url: " + url); var raw_array = Encoding.UTF8.GetString(client.DownloadData(url)); Debug.WriteLine("RAW:" + raw_array); var det_l = ""; var gtresp = new GTResp(); string src = "", tr = "", strc = "", trc = ""; if (!useNA) { var aur = new Auri(raw_array); var aur_dim_2 = new Auri(aur["^0"]); var len = new Auray(aur.raw).len; for (int m = 0; m != len + 1; m++) // combine all responce from all dimensions { var s = aur_dim_2["^" + m, "^" + 1]; src += s.Substring(1, s.Length - 2); s = aur_dim_2["^" + m, "^" + 0]; tr += s.Substring(1, s.Length - 2); } det_l = aur["^2"]; } else { Debug.WriteLine("NA MODE :)"); var auri = new Auri(raw_array); var au_se = new Auri(auri["sentences"]); src = dosen(100, au_se, "orig"); // src = s.Substring(1, s.Length-2); tr = dosen(100, au_se, "trans"); if (TRANSCRIPTION) { trc = dosen(100, au_se, "translit"); strc = dosen(100, au_se, "src_translit"); } // Debug.WriteLine(au_se["^1", "src_translit"]); // s = au_se["^0", "trans"]; // tr = s.Substring(1, s.Length-2); det_l = auri["ld_result", "srclangs", "^0"];; } gtresp.source = src; gtresp.translation = tr; gtresp.src_transcr = strc; gtresp.targ_transcr = trc; // Debug.WriteLine("trc " + trc + " strc " + strc); det_l = det_l.Substring(1, det_l.Length - 2); gtresp.speech_url = GTSpeechLink + "&q=" + HttpUtility.UrlEncode(tr) + "&sl=" + det_l + "&tl=" + tls[i]; // Debug.WriteLine(gtresp.speech_url); if (sls[i] == "auto") { gtresp.auto_detect = true; } gtresp.src_lang = det_l; gtresp.targ_lang = tls[i]; gtrlist.Add(gtresp); } } catch (Exception e) { MMain.mahou._TranslatePanel.GTRespError(e.Message /*+e.StackTrace*/); } return(gtrlist); }