//конструктор public Sentence(string origText, Referator parent, int index) { _originalText = origText; _parent = parent; _index = index; words = new cWords(this); string stemString = Mystem.lematizate(origText); this.parse2WordsFromStr(stemString); }
static void Main(string[] args) { string inpText; string textEncName = ""; using (StreamReader sr = new StreamReader("text2.txt")) { inpText = sr.ReadToEnd(); textEncName = sr.CurrentEncoding.WebName; } Referator r = new Referator(inpText, textEncName); string xmlStr = r.getXml(); Console.WriteLine(xmlStr); Console.ReadKey(); }
// Добавление прелдожений public void Add(string text, Referator parent, int index) { // prehandle text _items.Add(new Sentence(text, parent, index)); }
public cSentences(Referator parent) { _parent = parent; _items = new List <Sentence>(); }
public Sentence(string origText, Referator parent, int index, int m) { this._index = index; this._originalText = origText; }
private void TcpListener_onMessage(IPEndPoint endpoint, MetaData md, string msg) { MetaData.Roles role = md.Role; switch(role) { case MetaData.Roles.dispatcher: if(md.Action == MetaData.Actions.getCacheAdress) { conToCacheServer(msg); } break; case MetaData.Roles.client: if(md.Action == MetaData.Actions.refNews) { Console.WriteLine(); echo("получен запрос на реферирование от " + endpoint.ToString()); Referator referator = null; string fullArticle = ""; string[] refParameters = msg.Split('|'); string url = refParameters[0]; byte compressPerc = byte.Parse(refParameters[1]); // hack: здесь нужно дописать запрос на кэшированную версию // пока что всегда реферируем без проверки на кэш bool hasCache = false; bool passed=false; try { cs.cacheFileExists(url, out hasCache, out passed); } catch { hasCache = false; } if (hasCache && passed) { echo("берем кэш версию"); string cachedXML; try { cachedXML = cs.getCachedFile(url); referator = new Referator(cachedXML); echo("обработка кэш-версии статьи"); } catch { Console.WriteLine(" для {0}", endpoint.ToString()); HtmlParser hp = new HtmlParser(url); fullArticle = hp.Text; echo("начинаем реферирование"); referator = new Referator(fullArticle, "utf-8"); } } else { if (passed) { cs.notifyReferation(url); echo("сазали кэшу, что будем реферировать"); } try { // берем статью из интернета Console.WriteLine(" для {0}", endpoint.ToString()); HtmlParser hp = new HtmlParser(url); fullArticle = hp.Text; echo("начинаем реферирование"); referator = new Referator(fullArticle, "utf-8"); string articleXml = referator.getXml(); //todo: отправляем кэш серверу articleXml if (passed) { cacheMSMQ.Send(articleXml, url); } } catch (Exception ex) { //todo: обработать ошибку если не удалось скачать статью Console.WriteLine("Ошибка в обращении к сайту или реферирования"); } } string compressedArticle = referator.Compress(compressPerc); MetaData articleMD = new MetaData(MetaData.Roles.server, MetaData.Actions.refNews, MetaData.ContentTypes.plainText, compressedArticle); tcpListener.Send(endpoint, compressedArticle, articleMD); } break; default: Console.WriteLine("Не опознанная команда " + md.Action + " от " + md.Role); break; } }