]> gitweb.fperrin.net Git - DictionaryPC.git/blob - src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java
Split ZH into yue and cmn, fixed German heading.
[DictionaryPC.git] / src / com / hughes / android / dictionary / engine / CheckDictionariesMain.java
1 package com.hughes.android.dictionary.engine;
2
3 import com.hughes.android.dictionary.DictionaryInfo;
4 import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
5 import com.hughes.android.dictionary.parser.wiktionary.WiktionaryLangs;
6 import com.hughes.util.CollectionUtil;
7 import com.hughes.util.StringUtil;
8
9 import java.io.File;
10 import java.io.IOException;
11 import java.io.PrintWriter;
12 import java.io.RandomAccessFile;
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.Collections;
16 import java.util.List;
17
18 public class CheckDictionariesMain {
19   
20   static final String BASE_URL = "http://quickdic-dictionary.googlecode.com/files/";
21   static final String VERSION_CODE = "v005";
22
23   public static void main(String[] args) throws IOException {
24     final File dictDir = new File(DictionaryBuilderMain.OUTPUTS);
25     
26     final PrintWriter dictionaryInfoOut = new PrintWriter(new File("../Dictionary/res/raw/dictionary_info.txt"));
27 //    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");
28
29     final File[] files = dictDir.listFiles();
30     final List<String> dictNames = new ArrayList<String>();
31     Arrays.sort(files);
32     for (final File dictFile : files) {
33       if (!dictFile.getName().endsWith("quickdic")) {
34         continue;
35       }
36       System.out.println(dictFile.getPath());
37       
38       
39       final RandomAccessFile raf = new RandomAccessFile(dictFile, "r");
40       final Dictionary dict = new Dictionary(raf);
41
42       final DictionaryInfo dictionaryInfo = dict.getDictionaryInfo();
43
44       dictionaryInfo.uncompressedFilename = dictFile.getName();
45       dictionaryInfo.downloadUrl = BASE_URL + dictFile.getName() + "." + VERSION_CODE + ".zip";
46       // TODO: zip it right here....
47       dictionaryInfo.uncompressedBytes = dictFile.length();
48       final File zipFile = new File(dictFile.getPath() + "." + VERSION_CODE + ".zip");
49       dictionaryInfo.zipBytes = zipFile.canRead() ? zipFile.length() : -1;
50
51       // Print it.
52 //      final PrintWriter textOut = new PrintWriter(new BufferedWriter(new FileWriter(dictFile + ".text")));
53 //      final List<PairEntry> sorted = new ArrayList<PairEntry>(dict.pairEntries);
54 //      Collections.sort(sorted);
55 //      for (final PairEntry pairEntry : sorted) {
56 //        textOut.println(pairEntry.getRawText(false));
57 //      }
58 //      textOut.close();
59       
60       // Find the stats.
61       System.out.println("Stats...");
62       final List<String> indexNames = new ArrayList<String>();
63       for (final IndexInfo indexInfo : dictionaryInfo.indexInfos) {
64           indexNames.add(indexInfo.shortName);
65       }
66       dictNames.add(CollectionUtil.join(indexNames, "-") + "\n");
67       final String row = dictionaryInfo.append(new StringBuilder()).toString();
68       if (!zipFile.canRead()) {
69         System.err.println("Couldn't read zipfile: " + zipFile);
70       }
71       System.out.println(row + "\n");
72       
73       
74       dictionaryInfoOut.println(row);
75       dictionaryInfoOut.flush();
76       
77       raf.close();
78     }
79     
80     Collections.sort(dictNames);
81     System.out.println(dictNames.toString().replaceAll(",", "  *"));
82     
83     dictionaryInfoOut.close();
84   }
85
86 }