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