X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fwiktionary%2FWholeSectionToHtmlParser.java;h=70a02c37f826433b9cda1a6626339ebf0dffce61;hb=cd86f5f7abf5e545daf89c03d9dbbfd4e5bc65a4;hp=f7a249507c9c75ad04f8e6a20774686f35d17028;hpb=525a40440419dca3964b74cb8dd6204bd738f061;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 f7a2495..70a02c3 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/WholeSectionToHtmlParser.java @@ -1,6 +1,7 @@ package com.hughes.android.dictionary.parser.wiktionary; +import com.hughes.android.dictionary.engine.EntryTypeName; import com.hughes.android.dictionary.engine.HtmlEntry; import com.hughes.android.dictionary.engine.IndexBuilder; import com.hughes.android.dictionary.engine.IndexBuilder.TokenData; @@ -9,7 +10,6 @@ import com.hughes.android.dictionary.parser.WikiTokenizer; import com.hughes.util.StringUtil; import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -58,6 +58,34 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { Map> functionCallbacks) { EnFunctionCallbacks.addGenericCallbacks(functionCallbacks); }}); + + final LangConfig basicLangConfig = new LangConfig() { + @Override + public boolean skipSection(String headingText) { + return false; + } + + @Override + public boolean skipWikiLink(WikiTokenizer wikiTokenizer) { + final String wikiText = wikiTokenizer.wikiLinkText(); + if (wikiText.startsWith("Category:")) { + return true; + } + return false; + } + @Override + public String adjustWikiLink(String wikiLinkDest) { + return wikiLinkDest; + } + + @Override + public void addFunctionCallbacks( + Map> functionCallbacks) { + } + }; + isoToLangConfig.put("FR", basicLangConfig); + isoToLangConfig.put("DE", basicLangConfig); + isoToLangConfig.put("IT", basicLangConfig); } final IndexBuilder titleIndexBuilder; @@ -70,11 +98,14 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { this.langConfig = isoToLangConfig.get(wiktionaryIso); this.skipLangIso = skipLangIso; } + + IndexedEntry indexedEntry = null; @Override - void parseSection(String heading, String text) { - HtmlEntry htmlEntry = new HtmlEntry(entrySource, StringEscapeUtils.escapeHtml3(title)); - IndexedEntry indexedEntry = new IndexedEntry(htmlEntry); + public void parseSection(String heading, String text) { + assert entrySource != null; + final HtmlEntry htmlEntry = new HtmlEntry(entrySource, StringEscapeUtils.escapeHtml3(title)); + indexedEntry = new IndexedEntry(htmlEntry); final AppendAndIndexWikiCallback callback = new AppendCallback( this); @@ -93,12 +124,21 @@ public class WholeSectionToHtmlParser extends AbstractWiktionaryParser { tokenData.htmlEntries.add(htmlEntry); // titleIndexBuilder.addEntryWithString(indexedEntry, title, // EntryTypeName.WIKTIONARY_TITLE_MULTI_DETAIL); + + indexedEntry = null; } @Override void removeUselessArgs(Map namedArgs) { } + @Override + public void addLinkToCurrentEntry(String token, EntryTypeName entryTypeName) { + titleIndexBuilder.addEntryWithString(indexedEntry, token, entryTypeName); + } + + + static final Pattern ALL_ASCII = Pattern.compile("[\\p{ASCII}]*"); class AppendCallback extends AppendAndIndexWikiCallback {