1 package com.hughes.android.dictionary.engine;
3 import com.hughes.android.dictionary.DictionaryInfo;
4 import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
5 import com.hughes.util.CollectionUtil;
8 import java.io.IOException;
9 import java.io.PrintWriter;
10 import java.io.RandomAccessFile;
11 import java.util.ArrayList;
12 import java.util.Arrays;
13 import java.util.Collections;
14 import java.util.List;
16 public class CheckDictionariesMain {
18 static final String BASE_URL = "http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/";
19 static final String VERSION_CODE = "v006";
21 public static void main(String[] args) throws IOException {
22 final File dictDir = new File(DictionaryBuilderMain.OUTPUTS);
24 final PrintWriter dictionaryInfoOut = new PrintWriter(new File("../Dictionary/res/raw/dictionary_info.txt"));
25 // dictionaryInfoOut.println("# LANG_1\t%LANG_2\tFILENAME\tVERSION_CODE\tFILESIZE\tNUM_MAIN_WORDS_1\tNUM_MAIN_WORDS_2\tNUM_ALL_WORDS_1\tNUM_ALL_WORDS_2");
27 final File[] files = dictDir.listFiles();
28 final List<String> dictNames = new ArrayList<String>();
30 for (final File dictFile : files) {
31 if (!dictFile.getName().endsWith("quickdic")) {
34 System.out.println(dictFile.getPath());
37 final RandomAccessFile raf = new RandomAccessFile(dictFile, "r");
38 final Dictionary dict = new Dictionary(raf);
40 final DictionaryInfo dictionaryInfo = dict.getDictionaryInfo();
42 dictionaryInfo.uncompressedFilename = dictFile.getName();
43 dictionaryInfo.downloadUrl = BASE_URL + dictFile.getName() + "." + VERSION_CODE + ".zip";
44 // TODO: zip it right here....
45 dictionaryInfo.uncompressedBytes = dictFile.length();
46 final File zipFile = new File(dictFile.getPath() + "." + VERSION_CODE + ".zip");
47 dictionaryInfo.zipBytes = zipFile.canRead() ? zipFile.length() : -1;
50 // final PrintWriter textOut = new PrintWriter(new BufferedWriter(new FileWriter(dictFile + ".text")));
51 // final List<PairEntry> sorted = new ArrayList<PairEntry>(dict.pairEntries);
52 // Collections.sort(sorted);
53 // for (final PairEntry pairEntry : sorted) {
54 // textOut.println(pairEntry.getRawText(false));
59 System.out.println("Stats...");
60 final List<String> indexNames = new ArrayList<String>();
61 for (final IndexInfo indexInfo : dictionaryInfo.indexInfos) {
62 indexNames.add(indexInfo.shortName);
64 dictNames.add(CollectionUtil.join(indexNames, "-") + "\n");
65 final String row = dictionaryInfo.append(new StringBuilder()).toString();
66 if (!zipFile.canRead()) {
67 System.err.println("Couldn't read zipfile: " + zipFile);
69 System.out.println(row + "\n");
72 dictionaryInfoOut.println(row);
73 dictionaryInfoOut.flush();
78 Collections.sort(dictNames);
79 System.out.println(dictNames.toString().replaceAll(",", " *"));
81 dictionaryInfoOut.close();