X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fwiktionary%2FWholeSectionToHtmlParser.java;h=0b4bc0dd2be0acf34cf248185654febe4487ab61;hb=67780552c216010c96a4823a2f2f44e6f206c8f2;hp=70a02c37f826433b9cda1a6626339ebf0dffce61;hpb=5a73fb1ef8314eff15e55b2dc234aa2b4ff6d124;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java index 70a02c3..0b4bc0d 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java @@ -23,6 +23,7 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { interface LangConfig { boolean skipSection(final String name); + EntryTypeName sectionNameToEntryType(String sectionName); boolean skipWikiLink(final WikiTokenizer wikiTokenizer); String adjustWikiLink(String wikiLinkDest); void addFunctionCallbacks( @@ -36,6 +37,24 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { public boolean skipSection(String headingText) { return enSkipSections.matcher(headingText).matches(); } + + @Override + public EntryTypeName sectionNameToEntryType(String sectionName) { + if (sectionName.equalsIgnoreCase("Synonyms")) { + return EntryTypeName.SYNONYM_MULTI; + } + if (sectionName.equalsIgnoreCase("Antonyms")) { + return EntryTypeName.ANTONYM_MULTI; + } + if (EnParser.partOfSpeechHeader.matcher(sectionName).matches()) { + // We need to put it in the other index, too. + return null; + } + if (sectionName.equalsIgnoreCase("Derived Terms")) { + return null; + } + return null; + } @Override public boolean skipWikiLink(WikiTokenizer wikiTokenizer) { @@ -64,7 +83,10 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { public boolean skipSection(String headingText) { return false; } - + @Override + public EntryTypeName sectionNameToEntryType(String sectionName) { + return EntryTypeName.WIKTIONARY_MENTIONED; + } @Override public boolean skipWikiLink(WikiTokenizer wikiTokenizer) { final String wikiText = wikiTokenizer.wikiLinkText(); @@ -171,6 +193,10 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { } else { linkDest = wikiTokenizer.wikiLinkText(); } + if (sectionEntryTypeName != null) { + // TODO: inside a definition, this could be the wrong language. + titleIndexBuilder.addEntryWithString(indexedEntry, wikiTokenizer.wikiLinkText(), sectionEntryTypeName); + } if (linkDest != null) { builder.append(String.format("", linkDest)); super.onWikiLink(wikiTokenizer); @@ -197,10 +223,13 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { @Override public void onNewline(WikiTokenizer wikiTokenizer) { } + + EntryTypeName sectionEntryTypeName; @Override public void onHeading(WikiTokenizer wikiTokenizer) { final String headingText = wikiTokenizer.headingWikiText(); + sectionEntryTypeName = langConfig.sectionNameToEntryType(headingText); final int depth = wikiTokenizer.headingDepth(); if (langConfig.skipSection(headingText)) { while ((wikiTokenizer = wikiTokenizer.nextToken()) != null) {