1 package yukihane.inqubus.config;
4 import java.util.ArrayList;
6 import org.apache.commons.configuration.ConfigurationException;
7 import org.apache.commons.configuration.XMLConfiguration;
12 private final XMLConfiguration config = new XMLConfiguration();
21 private static final String ACCOUNT_ID = "network.account.id";
23 public String getId() {
24 return config.getString(ACCOUNT_ID, "");
27 public void setId(String s) {
28 config.setProperty(ACCOUNT_ID, s);
30 private static final String ACCOUNT_PASSWORD = "network.account.password";
32 public String getPassword() {
33 return config.getString(ACCOUNT_PASSWORD, "");
36 public void setPassword(String s) {
37 config.setProperty(ACCOUNT_PASSWORD, s);
43 private static final String PROXY_USE = "network.proxy.use";
45 public boolean getProxyUse() {
46 return config.getBoolean(PROXY_USE, false);
49 public void setProxyUse(boolean s) {
50 config.setProperty(PROXY_USE, s);
52 private static final String PROXY_HOST = "network.proxy.host";
54 public String getProxyHost() {
55 return config.getString(PROXY_HOST, "localhost");
58 public void setProxyHost(String s) {
59 config.setProperty(PROXY_HOST, s);
61 private static final String PROXY_PORT = "network.proxy.port";
63 public String getProxyPort() {
64 return config.getString(PROXY_PORT, "8080");
67 public void setProxyPort(String s) {
68 config.setProperty(PROXY_PORT, s);
74 private static final String FILE_VIDEO_DIR = "file.video.dir";
76 public String getVideoDir() {
77 return config.getString(FILE_VIDEO_DIR, "_video");
80 public void setVideoDir(String s) {
81 config.setProperty(FILE_VIDEO_DIR, s);
83 private static final String FILE_VIDEO_FILENAME = "file.video.filename";
85 public String getVideoFileNamePattern() {
86 return config.getString(FILE_VIDEO_FILENAME, "[{id}]{title}");
89 public void setVideoFileNamePattern(String s) {
90 config.setProperty(FILE_VIDEO_FILENAME, s.toString());
92 private static final String FILE_VIDEO_LOCAL = "file.video.local";
94 public boolean getVideoUseLocal() {
95 return config.getBoolean(FILE_VIDEO_LOCAL, false);
98 public void setVideoUseLocal(boolean s) {
99 config.setProperty(FILE_VIDEO_LOCAL, s);
105 private static final String FILE_COMMENT_DIR = "file.comment.dir";
107 public String getCommentDir() {
108 return config.getString(FILE_COMMENT_DIR, "_comment");
111 public void setCommentDir(String s) {
112 config.setProperty(FILE_COMMENT_DIR, s);
114 private static final String FILE_COMMENT_FILENAME = "file.comment.filename";
116 public String getCommentFileNamePattern() {
117 return config.getString(FILE_COMMENT_FILENAME, "[{id}]{title}");
120 public void setCommentFileNamePattern(String s) {
121 config.setProperty(FILE_COMMENT_FILENAME, s.toString());
123 private static final String FILE_COMMENT_LOCAL = "file.comment.local";
125 public boolean getCommentUseLocal() {
126 return config.getBoolean(FILE_COMMENT_LOCAL, false);
129 public void setCommentUseLocal(boolean s) {
130 config.setProperty(FILE_COMMENT_LOCAL, s);
136 private static final String FILE_OUTPUT_DIR = "file.output.dir";
138 public String getOutputDir() {
139 return config.getString(FILE_OUTPUT_DIR, "__converted");
142 public void setOutputDir(String s) {
143 config.setProperty(FILE_OUTPUT_DIR, s);
145 private static final String FILE_OUTPUT_FILENAME = "file.output.filename";
147 public String getOutputFileNamePattern() {
148 return config.getString(FILE_OUTPUT_FILENAME, "{filename}");
151 public void setOutputFileNamePattern(String s) {
152 config.setProperty(FILE_OUTPUT_FILENAME, s.toString());
154 private static final String FILE_OUTPUT_ENABLE = "file.output.enable";
156 public boolean getOutputEnable() {
157 return config.getBoolean(FILE_OUTPUT_ENABLE, true);
160 public void setOutputEnable(boolean s) {
161 config.setProperty(FILE_OUTPUT_ENABLE, s);
163 private static final String FILE_OUTPUT_COMMENT_OVERLAY = "file.output.comment_overlay";
165 public boolean getOutputCommentOverlay() {
166 return config.getBoolean(FILE_OUTPUT_COMMENT_OVERLAY, true);
169 public void setOutputCommentOverlay(boolean s) {
170 config.setProperty(FILE_OUTPUT_COMMENT_OVERLAY, s);
172 private static final String FILE_OUTPUT_DISPLAY_PROGRESS = "file.output.display";
174 public boolean getOutputDisplayProgress() {
175 return config.getBoolean(FILE_OUTPUT_DISPLAY_PROGRESS, true);
178 public void setOutputDisplayProgress(boolean s) {
179 config.setProperty(FILE_OUTPUT_DISPLAY_PROGRESS, s);
184 private static final String FILE_REPLACE_FROM = "file.prohibit.replace_from";
186 public String getReplaceFrom() {
187 return config.getString(FILE_REPLACE_FROM, "/\\:*?\"<>|.");
190 public void setReplaceFrom(String s) {
191 config.setProperty(FILE_REPLACE_FROM, s);
193 private static final String FILE_REPLACE_TO = "file.prohibit.replace_to";
195 public String getReplaceTo() {
196 return config.getString(FILE_REPLACE_TO, "_");
199 public void setReplaceTo(String s) {
200 config.setProperty(FILE_REPLACE_TO, s);
205 private static final String COMMENT_SIZE_AUTOSIZE = "comment.size.autosize";
207 public boolean getCommentSizeAutosize() {
208 return config.getBoolean(COMMENT_SIZE_AUTOSIZE, true);
211 public void setCommentSizeAutosize(boolean s) {
212 config.setProperty(COMMENT_SIZE_AUTOSIZE, s);
214 private static final String COMMENT_SIZE_MANUAL = "comment.size.manual";
216 public String getCommentSizeManual() {
217 return config.getString(COMMENT_SIZE_MANUAL, "");
220 public void setCommentSizeManual(String s) {
221 config.setProperty(COMMENT_SIZE_MANUAL, s);
223 private static final String COMMENT_MIN_DISABLED = "comment.minutesize.disable";
225 public boolean getCommentMinDisabled() {
226 return config.getBoolean(COMMENT_MIN_DISABLED, false);
229 public void setCommentMinDisabled(boolean s) {
230 config.setProperty(COMMENT_MIN_DISABLED, s);
232 private static final String COMMENT_MIN_SIZE_AUTOSIZE = "comment.minutesize.autosize";
234 public boolean getCommentMinSizeAutosize() {
235 return config.getBoolean(COMMENT_MIN_SIZE_AUTOSIZE, true);
238 public void setCommentMinSizeAutosize(boolean s) {
239 config.setProperty(COMMENT_MIN_SIZE_AUTOSIZE, s);
241 private static final String COMMENT_MIN_SIZE_MANUAL = "comment.minutesize.manual";
243 public String getCommentMinSizeManual() {
244 return config.getString(COMMENT_MIN_SIZE_MANUAL, "");
247 public void setCommentMinSizeManual(String s) {
248 config.setProperty(COMMENT_MIN_SIZE_MANUAL, s);
250 private static final String COMMENT_DISPLAY_MAX_SIZE_DEFAULT = "comment.displaysize.default";
252 public boolean getCommentDisplaySizeDefault() {
253 return config.getBoolean(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, true);
256 public void setCommentDisplaySizeDefault(boolean s) {
257 config.setProperty(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, s);
259 private static final String COMMENT_DISPLAY_MAX_SIZE_MANUAL = "comment.displaysize.manual";
261 public String getCommentDisplaySizeManual() {
262 return config.getString(COMMENT_DISPLAY_MAX_SIZE_MANUAL, "");
265 public void setCommentDisplaySizeManual(String s) {
266 config.setProperty(COMMENT_DISPLAY_MAX_SIZE_MANUAL, s);
268 private static final String COMMENT_FONTPATH = "comment.fontpath";
270 public String getFontPath() {
271 return config.getString(COMMENT_FONTPATH, "C:/Windows/Fonts/msgothic.ttc");
274 public void setFontPath(String s) {
275 config.setProperty(COMMENT_FONTPATH, s);
277 private static final String COMMENT_FONT_INDEX = "comment.fontindex";
279 public String getFontIndex() {
280 return config.getString(COMMENT_FONT_INDEX, "1");
283 public void setFontIndex(String s) {
284 config.setProperty(COMMENT_FONT_INDEX, s);
286 private static final String COMMENT_FONT_SHADOW = "comment.fontshadow";
288 public int getFontShadow() {
289 return config.getInt(COMMENT_FONT_SHADOW, 1);
292 public void setFontShadow(int s) {
293 config.setProperty(COMMENT_FONT_SHADOW, s);
295 private static final String COMMENT_FONT_SIZING_DISABLE = "comment.font_no_sizing";
297 public boolean getFontSizeArrangeDisable() {
298 return config.getBoolean(COMMENT_FONT_SIZING_DISABLE, false);
301 public void setFontSizeArrangeDisable(boolean s) {
302 config.setProperty(COMMENT_FONT_SIZING_DISABLE, s);
304 private static final String COMMENT_FONT_OPAQUE = "comment.opaque";
306 public boolean getCommentOpaque() {
307 return config.getBoolean(COMMENT_FONT_OPAQUE, false);
310 public void setCommentOpaque(boolean s) {
311 config.setProperty(COMMENT_FONT_OPAQUE, s);
313 private static final String FFMPEG_PATH = "ffmpeg.path";
315 public String getFfmpegPath() {
316 return config.getString(FFMPEG_PATH, "bin/ffmpeg.exe");
319 public void setFfmpegPath(String s) {
320 config.setProperty(FFMPEG_PATH, s);
322 private static final String FFMPEG_DLLPATH = "ffmpeg.dllpath";
324 public String getFfmpegDllPath() {
325 return config.getString(FFMPEG_DLLPATH, "bin/nicovideo.dll");
328 public void setFfmpegDllPath(String s) {
329 config.setProperty(FFMPEG_DLLPATH, s);
331 private static final String FFMPEG_PARAM_OPTIONFILE = "ffmpeg.param.optionfile";
333 public String getFfmpegOptionFile() {
334 return config.getString(FFMPEG_PARAM_OPTIONFILE, null);
337 public void setFfmpegOptionFile(String s) {
338 config.setProperty(FFMPEG_PARAM_OPTIONFILE, s);
340 private static final String FFMPEG_PARAM_EXT = "ffmpeg.param.ext";
342 public String getFfmpegExtension() {
343 return config.getString(FFMPEG_PARAM_EXT, ".m4v");
346 public void setFfmpegExtension(String s) {
347 config.setProperty(FFMPEG_PARAM_EXT, s);
349 private static final String FFMPEG_PARAM_MAIN = "ffmpeg.param.main";
351 public String getFfmpegMainOption() {
352 return config.getString(FFMPEG_PARAM_MAIN, "");
355 public void setFfmpegMainOption(String s) {
356 config.setProperty(FFMPEG_PARAM_MAIN, s);
358 private static final String FFMPEG_PARAM_IN = "ffmpeg.param.in";
360 public String getFfmpegInOption() {
361 return config.getString(FFMPEG_PARAM_IN, "");
364 public void setFfmpegInOption(String s) {
365 config.setProperty(FFMPEG_PARAM_IN, s);
367 private static final String FFMPEG_PARAM_OUT = "ffmpeg.param.out";
369 public String getFfmpegOutOption() {
370 return config.getString(FFMPEG_PARAM_OUT,
371 "-f ipod -g 150 -qcomp 0.7 -qmin 20 -qmax 30 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286");
374 public void setFfmpegOutOption(String s) {
375 config.setProperty(FFMPEG_PARAM_OUT, s);
377 private static final String FFMPEG_PARAM_AV = "ffmpeg.param.av";
379 public String getFfmpegAvOption() {
380 return config.getString(FFMPEG_PARAM_AV, "");
383 public void setFfmpegAvOption(String s) {
384 config.setProperty(FFMPEG_PARAM_AV, s);
386 private static final String FFMPEG_PARAM_RESIZE = "ffmpeg.param.resize";
388 public boolean getFfmpegResizeEnable() {
389 return config.getBoolean(FFMPEG_PARAM_RESIZE, false);
392 public void setFfmpegResizeEnable(boolean s) {
393 config.setProperty(FFMPEG_PARAM_RESIZE, s);
395 private static final String FFMPEG_PARAM_RESIZE_WIDTH = "ffmpeg.param.resize_width";
397 public String getFfmpegResizeWidth() {
398 return config.getString(FFMPEG_PARAM_RESIZE_WIDTH, "480");
401 public void setFfmpegResizeWidth(String s) {
402 config.setProperty(FFMPEG_PARAM_RESIZE_WIDTH, s);
404 private static final String FFMPEG_PARAM_RESIZE_HEIGHT = "ffmpeg.param.resize_height";
406 public String getFfmpegResizeHeight() {
407 return config.getString(FFMPEG_PARAM_RESIZE_HEIGHT, "320");
410 public void setFfmpegResizeHeight(String s) {
411 config.setProperty(FFMPEG_PARAM_RESIZE_HEIGHT, s);
413 private static final String FFMPEG_PARAM_KEEP_ASPECT = "ffmpeg.param.keep_aspect";
415 public boolean getFfmpegKeepAspect() {
416 return config.getBoolean(FFMPEG_PARAM_KEEP_ASPECT, true);
419 public void setFfmpegKeepAspect(boolean s) {
420 config.setProperty(FFMPEG_PARAM_KEEP_ASPECT, s);
422 private static final String DISPLAY_CONVERTING = "convert.display_converting";
424 public boolean getFfmpegDisplayConverting() {
425 return config.getBoolean(DISPLAY_CONVERTING, true);
428 public void setFfmpegDisplayConverting(boolean s) {
429 config.setProperty(DISPLAY_CONVERTING, s);
431 private static final String DLL_DISABLE = "convert.dll_disabled";
433 public boolean getFfmpegDllDisabled() {
434 return config.getBoolean(DLL_DISABLE, false);
437 public void setFfmpegDllDisabled(boolean s) {
438 config.setProperty(DLL_DISABLE, s);
440 private static final String NG_WORD = "ng.word";
442 @SuppressWarnings("unchecked")
443 public List<String> getNgWords() {
444 return config.getList(NG_WORD, new ArrayList<String>(0));
447 public void setNgWords(List<String> s) {
448 config.setProperty(NG_WORD, s);
450 private static final String NG_ID = "ng.id";
452 @SuppressWarnings("unchecked")
453 public List<String> getNgIds() {
454 return config.getList(NG_ID, new ArrayList<String>(0));
457 public void setNgIds(List<String> s) {
458 config.setProperty(NG_ID, s);
464 private static final String SEARCH_VIDEO = "search.video";
466 @SuppressWarnings("unchecked")
467 public List<String> getSearchVideoDirs() {
468 return config.getList(SEARCH_VIDEO, new ArrayList<String>(1));
471 public void setSearchVideoDirs(List<String> s) {
472 config.setProperty(SEARCH_VIDEO, s);
474 private static final String SEARCH_COMMENT = "search.comment";
476 @SuppressWarnings("unchecked")
477 public List<String> getSearchCommentDirs() {
478 return config.getList(SEARCH_COMMENT, new ArrayList<String>(1));
481 public void setSearchCommentDirs(List<String> s) {
482 config.setProperty(SEARCH_COMMENT, s);
488 private static final String SYSTEM_DOWNLOAD_THREAD = "system.download.thread";
490 public int getSystemDownloadThread() {
491 return config.getInt(SYSTEM_DOWNLOAD_THREAD, 1);
494 public void setSystemDownloadThread(int s) {
495 config.setProperty(SYSTEM_DOWNLOAD_THREAD, s);
497 private static final String SYSTEM_DOWNLOAD_WAIT = "system.download.wait";
499 public int getSystemDownloadWait() {
500 return config.getInt(SYSTEM_DOWNLOAD_WAIT, 30);
503 public void setSystemDownloadWait(int s) {
504 config.setProperty(SYSTEM_DOWNLOAD_WAIT, s);
506 private static final String SYSTEM_CONVERT_THREAD = "system.convert.thread";
508 public int getSystemConvertThread() {
509 return config.getInt(SYSTEM_CONVERT_THREAD, 2);
512 public void setSystemConvertThread(int s) {
513 config.setProperty(SYSTEM_CONVERT_THREAD, s);
515 private static final String SYSTEM_TEMPDIR = "system.tempdir";
517 public String getSystemTempDir() {
518 return config.getString(SYSTEM_TEMPDIR, ".");
521 public void setSystemTempDir(String s) {
522 config.setProperty(SYSTEM_TEMPDIR, s);
524 private static final String SYSTEM_WINDOW_WIDTH = "system.window.width";
526 public int getSystemWindowWidth() {
527 return config.getInt(SYSTEM_WINDOW_WIDTH, -1);
530 public void setSystemWindowWidth(int s) {
531 config.setProperty(SYSTEM_WINDOW_WIDTH, s);
533 private static final String SYSTEM_WINDOW_HEIGHT = "system.window.height";
535 public int getSystemWindowHeight() {
536 return config.getInt(SYSTEM_WINDOW_HEIGHT, -1);
539 public void setSystemWindowHeight(int s) {
540 config.setProperty(SYSTEM_WINDOW_HEIGHT, s);
542 private static final String SYSTEM_WINDOW_POS_X = "system.window.posx";
544 public int getSystemWindowPosX() {
545 return config.getInt(SYSTEM_WINDOW_POS_X, Integer.MIN_VALUE / 2);
548 public void setSystemWindowPosX(int s) {
549 config.setProperty(SYSTEM_WINDOW_POS_X, s);
551 private static final String SYSTEM_WINDOW_POS_Y = "system.window.posy";
553 public int getSystemWindowPosY() {
554 return config.getInt(SYSTEM_WINDOW_POS_Y, Integer.MIN_VALUE / 2);
557 public void setSystemWindowPosY(int s) {
558 config.setProperty(SYSTEM_WINDOW_POS_Y, s);
560 private static final String SYSTEM_COLUMN_ID = "system.column.id";
562 public int getSystemColumnId() {
563 return config.getInt(SYSTEM_COLUMN_ID, -1);
566 public void setSystemColumnId(int s) {
567 config.setProperty(SYSTEM_COLUMN_ID, s);
569 private static final String SYSTEM_COLUMN_VIDEO = "system.column.video";
571 public int getSystemColumnVideo() {
572 return config.getInt(SYSTEM_COLUMN_VIDEO, -1);
575 public void setSystemColumnVideo(int s) {
576 config.setProperty(SYSTEM_COLUMN_VIDEO, s);
578 private static final String SYSTEM_COLUMN_COMMENT = "system.column.comment";
580 public int getSystemColumnComment() {
581 return config.getInt(SYSTEM_COLUMN_COMMENT, -1);
584 public void setSystemColumnComment(int s) {
585 config.setProperty(SYSTEM_COLUMN_COMMENT, s);
587 private static final String SYSTEM_COLUMN_CONVERT = "system.column.convert";
589 public int getSystemColumnConvert() {
590 return config.getInt(SYSTEM_COLUMN_CONVERT, -1);
593 public void setSystemColumnConvert(int s) {
594 config.setProperty(SYSTEM_COLUMN_CONVERT, s);
596 private static final String SYSTEM_COLUMN_STATUS = "system.column.status";
598 public int getSystemColumnStatus() {
599 return config.getInt(SYSTEM_COLUMN_STATUS, -1);
602 public void setSystemColumnStatus(int s) {
603 config.setProperty(SYSTEM_COLUMN_STATUS, s);
609 public void load(String fileName) throws ConfigurationException {
610 config.setFileName(fileName);
614 public void save(File file) throws ConfigurationException {
615 config.setFile(file);
619 public void save() throws ConfigurationException {