public SmartMe.Core.Data.DictResult Parse( string html, Encoding encoding ) { dictResult = new DictResult(); HTMLparser oP = HtmlParserFactory.GetInstance(); dictResult.DictionaryType = DictionaryType.Dict_cn; oP.Init(encoding.GetBytes(html)); oP.SetEncoding(encoding); HTMLchunk oChunk = null; int state = 0; bool bEncodingSet = false; while ((oChunk = oP.ParseNext()) != null) { switch (oChunk.oType) { case HTMLchunkType.OpenTag: HandleOpenTag(oChunk, ref state); printParams: if (oChunk.sTag == "meta") { HandleMetaEncoding(oP, oChunk, ref bEncodingSet); }; HandleParam(oChunk, ref state); break; case HTMLchunkType.CloseTag: HandleCloseTag(oChunk, ref state); break; case HTMLchunkType.Text: HandleText(oChunk, ref state); break; default: break; } } return dictResult; }
public IQueryResultItem Search( InputQuery query ) { SmartMe.Core.Data.DictResult emptyResult = new SmartMe.Core.Data.DictResult(); emptyResult.DictionaryType = SmartMe.Core.Data.DictionaryType.Dict_cn; string url = "http://dict.cn/search?q=" + HttpUtility.UrlEncode( query.Text, Encoding.GetEncoding( "gb2312" ) ); emptyResult.SearchUrl = url; if ( query == null || query.QueryType != SmartMe.Core.Data.InputQueryType.Text || query.Text == null || query.Text == "" ) { return emptyResult; } string html = SmartMe.Web.Crawl.Crawler.Crawl( url, Encoding.GetEncoding( "gb2312" ) ); if ( html == null || html == "" ) { return emptyResult; } SmartMe.Web.Parse.DictCnParser parser = new SmartMe.Web.Parse.DictCnParser(); SmartMe.Core.Data.DictResult result = parser.Parse( html, Encoding.GetEncoding( "gb2312" ) ); result.SearchUrl = url; return result; }
public IQueryResultItem Search(InputQuery query) { SmartMe.Core.Data.DictResult emptyResult = new SmartMe.Core.Data.DictResult(); emptyResult.DictionaryType = SmartMe.Core.Data.DictionaryType.Dict_cn; string url = "http://dict.cn/search?q=" + HttpUtility.UrlEncode(query.Text, Encoding.GetEncoding("gb2312")); emptyResult.SearchUrl = url; if (query == null || query.QueryType != SmartMe.Core.Data.InputQueryType.Text || query.Text == null || query.Text == "") { return(emptyResult); } string html = SmartMe.Web.Crawl.Crawler.Crawl(url, Encoding.GetEncoding("gb2312")); if (html == null || html == "") { return(emptyResult); } SmartMe.Web.Parse.DictCnParser parser = new SmartMe.Web.Parse.DictCnParser(); SmartMe.Core.Data.DictResult result = parser.Parse(html, Encoding.GetEncoding("gb2312")); result.SearchUrl = url; return(result); }
private bool FindDictcnResult( object sender, out DictResult dictResult ) { bool hasFound = false; DictResult result = null; if ( sender is ListBox ) { ListBox sourceListBox = sender as ListBox; hasFound = FindDictcnResult( _currentQueryResult, DictionaryType.Dict_cn, out result ); } dictResult = result; return hasFound; }
private bool FindUIElements( DictResult dictResult, out ListBox listBox, out TabItem tabItem, out string engineName ) { bool hasFound = false; switch ( dictResult.DictionaryType ) { case DictionaryType.Dict_cn: { hasFound = true; listBox = _parent.DictcnOutputListBox; tabItem = _parent.DictcnTabItem; engineName = "Dictcn"; break; } default: { hasFound = false; listBox = null; tabItem = null; engineName = "Unknown"; break; } } return hasFound; }
private bool FindDictcnResult( QueryResult queryResult, DictionaryType targetType, out DictResult dictResult ) { bool hasFound = false; dictResult = null; if ( queryResult != null ) { if ( queryResult.DictResultItems != null ) { foreach ( DictResult resultItem in queryResult.DictResultItems ) { if ( resultItem != null && resultItem.DictionaryType == targetType ) { dictResult = resultItem; hasFound = true; break; } } } } return hasFound; }