public override async Task <TranslateRequestResult> Request() { try { var web = new HtmlWeb(); var doc = await web.LoadFromWebAsync(string.Format(DICTIONARY_URL, Query)); var defs = doc.DocumentNode.SelectNodes("//div[contains(@class, 'def ddef_d')]"); var sounds = doc.DocumentNode.SelectNodes("//source[@type='audio/mpeg']"); var result = new TranslateRequestResult() { Original = Query }; result.Translate = new Dictionary <string, string[]>(); result.Translate.Add("", defs.Take(5).Select(n => n.InnerText.Replace('\n', ' ').Trim()).ToArray()); if (sounds.IsNotNull() && sounds.Count > 0) { result.UrlSound = string.Format(DICTIONARY_BASE_URL, sounds[0].GetAttributeValue("src", null)); } return(result); } catch (Exception e) { Log(e.ToString()); } return(null); }
private TranslateRequestResult PasreJsonResult(TTranslateDictionary dict, string enc) { TranslateRequestResult res = new TranslateRequestResult(); res.Encoding = enc; if (dict.Sentences.Length > 0) { res.Original = dict.Sentences[0].Original; //res.Phonetic = dict.Sentences[0].Translit; res.UrlSound = string.Format(_soundUrl, res.Original); } if (dict.Dict != null && dict.Dict.Length > 0) { foreach (TDictionaryItem item in dict.Dict) { res.Translate.Add(item.Position, item.Terms); } } return(res); }
public override async Task <TranslateRequestResult> Request() { string url = String.Format(_baseAddress, _soundUrl, Target, Query); TranslateRequestResult result = null; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); if (request != null) { var response = await request.GetResponseAsync(); var webResponse = (HttpWebResponse)response; if (webResponse == null) { return(null); } Stream resp = webResponse.GetResponseStream(); if (resp != null) { Encoding fromenc = Encoding.GetEncoding(webResponse.CharacterSet); Encoding toenc = Encoding.Default; StreamReader reader = new StreamReader(resp, fromenc); string resultRequest = reader.ReadToEnd(); TTranslateDictionary dict = JsonConvert.DeserializeObject <TTranslateDictionary>(resultRequest); result = (TranslateRequestResult)PasreJsonResult(dict, "utf-8"); reader.Close(); resp.Close(); } } return(result); } catch (Exception ex) { } return(null); }