1 package yukihane.inqubus.config;
4 import java.util.ArrayList;
6 import org.apache.commons.configuration.ConfigurationException;
7 import org.apache.commons.configuration.XMLConfiguration;
8 import yukihane.inqubus.cookie.Cookie.BrowserType;
14 public enum CookieBrowser {
19 public BrowserType toBrowserType() {
20 return BrowserType.MSIE;
25 public BrowserType toBrowserType() {
26 return BrowserType.FIREFOX;
31 public BrowserType toBrowserType() {
32 return BrowserType.CHROME;
37 public BrowserType toBrowserType() {
38 return BrowserType.CHROMIUM;
43 public BrowserType toBrowserType() {
44 return BrowserType.OPERA;
49 public BrowserType toBrowserType() {
50 return BrowserType.OTHER;
54 public abstract BrowserType toBrowserType();
56 private final XMLConfiguration config = new XMLConfiguration();
65 private static final String LOGIN_NEED = "network.login";
67 public boolean getNeedsLogin() {
68 return config.getBoolean(LOGIN_NEED, true);
71 public void setNeedsLogin(boolean s) {
72 config.setProperty(LOGIN_NEED, s);
74 private static final String ACCOUNT_ID = "network.account.id";
76 public String getId() {
77 return config.getString(ACCOUNT_ID, "");
80 public void setId(String s) {
81 config.setProperty(ACCOUNT_ID, s);
83 private static final String ACCOUNT_PASSWORD = "network.account.password";
85 public String getPassword() {
86 return config.getString(ACCOUNT_PASSWORD, "");
89 public void setPassword(String s) {
90 config.setProperty(ACCOUNT_PASSWORD, s);
92 private static final String COOKIE_BROWSER = "network.cookie.browser";
94 public CookieBrowser getCookieBrowser() {
95 final String str = config.getString(COOKIE_BROWSER, CookieBrowser.MSIE.name());
96 return CookieBrowser.valueOf(str);
99 public void setCookieBrowser(CookieBrowser s) {
100 config.setProperty(COOKIE_BROWSER, s.name());
102 private static final String COOKIE_DIR = "network.cookie.dir";
104 public String getCookieDir() {
105 return config.getString(COOKIE_DIR, "");
108 public void setCookieDir(String s) {
109 config.setProperty(COOKIE_DIR, s);
114 private static final String PROXY_USE = "network.proxy.use";
116 public boolean getProxyUse() {
117 return config.getBoolean(PROXY_USE, false);
120 public void setProxyUse(boolean s) {
121 config.setProperty(PROXY_USE, s);
123 private static final String PROXY_HOST = "network.proxy.host";
125 public String getProxyHost() {
126 return config.getString(PROXY_HOST, "localhost");
129 public void setProxyHost(String s) {
130 config.setProperty(PROXY_HOST, s);
132 private static final String PROXY_PORT = "network.proxy.port";
134 public String getProxyPort() {
135 return config.getString(PROXY_PORT, "8080");
138 public void setProxyPort(String s) {
139 config.setProperty(PROXY_PORT, s);
145 private static final String FILE_VIDEO_DIR = "file.video.dir";
147 public String getVideoDir() {
148 return config.getString(FILE_VIDEO_DIR, "_video");
151 public void setVideoDir(String s) {
152 config.setProperty(FILE_VIDEO_DIR, s);
154 private static final String FILE_VIDEO_FILENAME = "file.video.filename";
156 public String getVideoFileNamePattern() {
157 return config.getString(FILE_VIDEO_FILENAME, "[{id}]{title}");
160 public void setVideoFileNamePattern(String s) {
161 config.setProperty(FILE_VIDEO_FILENAME, s.toString());
163 private static final String FILE_VIDEO_LOCAL = "file.video.local";
165 public boolean getVideoUseLocal() {
166 return config.getBoolean(FILE_VIDEO_LOCAL, false);
169 public void setVideoUseLocal(boolean s) {
170 config.setProperty(FILE_VIDEO_LOCAL, s);
176 private static final String FILE_COMMENT_DIR = "file.comment.dir";
178 public String getCommentDir() {
179 return config.getString(FILE_COMMENT_DIR, "_comment");
182 public void setCommentDir(String s) {
183 config.setProperty(FILE_COMMENT_DIR, s);
185 private static final String FILE_COMMENT_FILENAME = "file.comment.filename";
187 public String getCommentFileNamePattern() {
188 return config.getString(FILE_COMMENT_FILENAME, "[{id}]{title}");
191 public void setCommentFileNamePattern(String s) {
192 config.setProperty(FILE_COMMENT_FILENAME, s.toString());
194 private static final String FILE_COMMENT_LOCAL = "file.comment.local";
196 public boolean getCommentUseLocal() {
197 return config.getBoolean(FILE_COMMENT_LOCAL, false);
200 public void setCommentUseLocal(boolean s) {
201 config.setProperty(FILE_COMMENT_LOCAL, s);
207 private static final String FILE_OUTPUT_DIR = "file.output.dir";
209 public String getOutputDir() {
210 return config.getString(FILE_OUTPUT_DIR, "__converted");
213 public void setOutputDir(String s) {
214 config.setProperty(FILE_OUTPUT_DIR, s);
216 private static final String FILE_OUTPUT_FILENAME = "file.output.filename";
218 public String getOutputFileNamePattern() {
219 return config.getString(FILE_OUTPUT_FILENAME, "{filename}");
222 public void setOutputFileNamePattern(String s) {
223 config.setProperty(FILE_OUTPUT_FILENAME, s.toString());
225 private static final String FILE_OUTPUT_ENABLE = "file.output.enable";
227 public boolean getOutputEnable() {
228 return config.getBoolean(FILE_OUTPUT_ENABLE, true);
231 public void setOutputEnable(boolean s) {
232 config.setProperty(FILE_OUTPUT_ENABLE, s);
234 private static final String FILE_OUTPUT_COMMENT_OVERLAY = "file.output.comment_overlay";
236 public boolean getOutputCommentOverlay() {
237 return config.getBoolean(FILE_OUTPUT_COMMENT_OVERLAY, true);
240 public void setOutputCommentOverlay(boolean s) {
241 config.setProperty(FILE_OUTPUT_COMMENT_OVERLAY, s);
243 private static final String FILE_OUTPUT_DISPLAY_PROGRESS = "file.output.display";
245 public boolean getOutputDisplayProgress() {
246 return config.getBoolean(FILE_OUTPUT_DISPLAY_PROGRESS, true);
249 public void setOutputDisplayProgress(boolean s) {
250 config.setProperty(FILE_OUTPUT_DISPLAY_PROGRESS, s);
256 private static final String COMMENT_SIZE_AUTOSIZE = "comment.size.autosize";
258 public boolean getCommentSizeAutosize() {
259 return config.getBoolean(COMMENT_SIZE_AUTOSIZE, true);
262 public void setCommentSizeAutosize(boolean s) {
263 config.setProperty(COMMENT_SIZE_AUTOSIZE, s);
265 private static final String COMMENT_SIZE_MANUAL = "comment.size.manual";
267 public String getCommentSizeManual() {
268 return config.getString(COMMENT_SIZE_MANUAL, "");
271 public void setCommentSizeManual(String s) {
272 config.setProperty(COMMENT_SIZE_MANUAL, s);
274 private static final String COMMENT_MIN_DISABLED = "comment.minutesize.disable";
276 public boolean getCommentMinDisabled() {
277 return config.getBoolean(COMMENT_MIN_DISABLED, false);
280 public void setCommentMinDisabled(boolean s) {
281 config.setProperty(COMMENT_MIN_DISABLED, s);
283 private static final String COMMENT_MIN_SIZE_AUTOSIZE = "comment.minutesize.autosize";
285 public boolean getCommentMinSizeAutosize() {
286 return config.getBoolean(COMMENT_MIN_SIZE_AUTOSIZE, true);
289 public void setCommentMinSizeAutosize(boolean s) {
290 config.setProperty(COMMENT_MIN_SIZE_AUTOSIZE, s);
292 private static final String COMMENT_MIN_SIZE_MANUAL = "comment.minutesize.manual";
294 public String getCommentMinSizeManual() {
295 return config.getString(COMMENT_MIN_SIZE_MANUAL, "");
298 public void setCommentMinSizeManual(String s) {
299 config.setProperty(COMMENT_MIN_SIZE_MANUAL, s);
301 private static final String COMMENT_DISPLAY_MAX_SIZE_DEFAULT = "comment.displaysize.default";
303 public boolean getCommentDisplaySizeDefault() {
304 return config.getBoolean(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, true);
307 public void setCommentDisplaySizeDefault(boolean s) {
308 config.setProperty(COMMENT_DISPLAY_MAX_SIZE_DEFAULT, s);
310 private static final String COMMENT_DISPLAY_MAX_SIZE_MANUAL = "comment.displaysize.manual";
312 public String getCommentDisplaySizeManual() {
313 return config.getString(COMMENT_DISPLAY_MAX_SIZE_MANUAL, "");
316 public void setCommentDisplaySizeManual(String s) {
317 config.setProperty(COMMENT_DISPLAY_MAX_SIZE_MANUAL, s);
319 private static final String COMMENT_FONTPATH = "comment.fontpath";
321 public String getFontPath() {
322 return config.getString(COMMENT_FONTPATH, "C:/Windows/Fonts/msgothic.ttc");
325 public void setFontPath(String s) {
326 config.setProperty(COMMENT_FONTPATH, s);
328 private static final String COMMENT_FONT_INDEX = "comment.fontindex";
330 public String getFontIndex() {
331 return config.getString(COMMENT_FONT_INDEX, "1");
334 public void setFontIndex(String s) {
335 config.setProperty(COMMENT_FONT_INDEX, s);
337 private static final String COMMENT_FONT_SHADOW = "comment.fontshadow";
339 public int getFontShadow() {
340 return config.getInt(COMMENT_FONT_SHADOW, 1);
343 public void setFontShadow(int s) {
344 config.setProperty(COMMENT_FONT_SHADOW, s);
346 private static final String COMMENT_FONT_SIZING_DISABLE = "comment.font_no_sizing";
348 public boolean getFontSizeArrangeDisable() {
349 return config.getBoolean(COMMENT_FONT_SIZING_DISABLE, false);
352 public void setFontSizeArrangeDisable(boolean s) {
353 config.setProperty(COMMENT_FONT_SIZING_DISABLE, s);
355 private static final String COMMENT_FONT_OPAQUE = "comment.opaque";
357 public boolean getCommentOpaque() {
358 return config.getBoolean(COMMENT_FONT_OPAQUE, false);
361 public void setCommentOpaque(boolean s) {
362 config.setProperty(COMMENT_FONT_OPAQUE, s);
364 private static final String FFMPEG_PATH = "ffmpeg.path";
366 public String getFfmpegPath() {
367 return config.getString(FFMPEG_PATH, "bin/ffmpeg.exe");
370 public void setFfmpegPath(String s) {
371 config.setProperty(FFMPEG_PATH, s);
373 private static final String FFMPEG_DLLPATH = "ffmpeg.dllpath";
375 public String getFfmpegDllPath() {
376 return config.getString(FFMPEG_DLLPATH, "bin/nicovideo.dll");
379 public void setFfmpegDllPath(String s) {
380 config.setProperty(FFMPEG_DLLPATH, s);
382 private static final String MEDIAINFO_PATH = "ffmpeg.mediainfopath";
384 public String getMediaInfoPath() {
385 return config.getString(MEDIAINFO_PATH, "bin/MediaInfo.exe");
388 public void setMediaInfoPath(String s) {
389 config.setProperty(MEDIAINFO_PATH, s);
391 private static final String FFMPEG_PARAM_OPTIONFILE = "ffmpeg.param.optionfile";
393 public String getFfmpegOptionFile() {
394 return config.getString(FFMPEG_PARAM_OPTIONFILE, null);
397 public void setFfmpegOptionFile(String s) {
398 config.setProperty(FFMPEG_PARAM_OPTIONFILE, s);
400 private static final String FFMPEG_PARAM_EXT = "ffmpeg.param.ext";
402 public String getFfmpegExtension() {
403 return config.getString(FFMPEG_PARAM_EXT, ".m4v");
406 public void setFfmpegExtension(String s) {
407 config.setProperty(FFMPEG_PARAM_EXT, s);
409 private static final String FFMPEG_PARAM_MAIN = "ffmpeg.param.main";
411 public String getFfmpegMainOption() {
412 return config.getString(FFMPEG_PARAM_MAIN, "");
415 public void setFfmpegMainOption(String s) {
416 config.setProperty(FFMPEG_PARAM_MAIN, s);
418 private static final String FFMPEG_PARAM_IN = "ffmpeg.param.in";
420 public String getFfmpegInOption() {
421 return config.getString(FFMPEG_PARAM_IN, "");
424 public void setFfmpegInOption(String s) {
425 config.setProperty(FFMPEG_PARAM_IN, s);
427 private static final String FFMPEG_PARAM_OUT = "ffmpeg.param.out";
429 public String getFfmpegOutOption() {
430 return config.getString(FFMPEG_PARAM_OUT,
431 "-f ipod -g 150 -qcomp 0.7 -qmin 20 -qmax 30 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286");
434 public void setFfmpegOutOption(String s) {
435 config.setProperty(FFMPEG_PARAM_OUT, s);
437 private static final String FFMPEG_PARAM_AV = "ffmpeg.param.av";
439 public String getFfmpegAvOption() {
440 return config.getString(FFMPEG_PARAM_AV, "");
443 public void setFfmpegAvOption(String s) {
444 config.setProperty(FFMPEG_PARAM_AV, s);
446 private static final String FFMPEG_PARAM_RESIZE = "ffmpeg.param.resize";
448 public boolean getFfmpegResizeEnable() {
449 return config.getBoolean(FFMPEG_PARAM_RESIZE, false);
452 public void setFfmpegResizeEnable(boolean s) {
453 config.setProperty(FFMPEG_PARAM_RESIZE, s);
455 private static final String FFMPEG_PARAM_RESIZE_WIDTH = "ffmpeg.param.resize_width";
457 public String getFfmpegResizeWidth() {
458 return config.getString(FFMPEG_PARAM_RESIZE_WIDTH, "480");
461 public void setFfmpegResizeWidth(String s) {
462 config.setProperty(FFMPEG_PARAM_RESIZE_WIDTH, s);
464 private static final String FFMPEG_PARAM_RESIZE_HEIGHT = "ffmpeg.param.resize_height";
466 public String getFfmpegResizeHeight() {
467 return config.getString(FFMPEG_PARAM_RESIZE_HEIGHT, "320");
470 public void setFfmpegResizeHeight(String s) {
471 config.setProperty(FFMPEG_PARAM_RESIZE_HEIGHT, s);
473 private static final String FFMPEG_PARAM_KEEP_ASPECT = "ffmpeg.param.keep_aspect";
475 public boolean getFfmpegKeepAspect() {
476 return config.getBoolean(FFMPEG_PARAM_KEEP_ASPECT, true);
479 public void setFfmpegKeepAspect(boolean s) {
480 config.setProperty(FFMPEG_PARAM_KEEP_ASPECT, s);
482 private static final String DISPLAY_CONVERTING = "convert.display_converting";
484 public boolean getFfmpegDisplayConverting() {
485 return config.getBoolean(DISPLAY_CONVERTING, true);
488 public void setFfmpegDisplayConverting(boolean s) {
489 config.setProperty(DISPLAY_CONVERTING, s);
491 private static final String DLL_DISABLE = "convert.dll_disabled";
493 public boolean getFfmpegDllDisabled() {
494 return config.getBoolean(DLL_DISABLE, false);
497 public void setFfmpegDllDisabled(boolean s) {
498 config.setProperty(DLL_DISABLE, s);
500 private static final String NG_WORD = "ng.word";
502 @SuppressWarnings("unchecked")
503 public List<String> getNgWords() {
504 return config.getList(NG_WORD, new ArrayList<String>(0));
507 public void setNgWords(List<String> s) {
508 config.setProperty(NG_WORD, s);
510 private static final String NG_ID = "ng.id";
512 @SuppressWarnings("unchecked")
513 public List<String> getNgIds() {
514 return config.getList(NG_ID, new ArrayList<String>(0));
517 public void setNgIds(List<String> s) {
518 config.setProperty(NG_ID, s);
524 private static final String SEARCH_VIDEO = "search.video";
526 @SuppressWarnings("unchecked")
527 public List<String> getSearchVideoDirs() {
528 return config.getList(SEARCH_VIDEO, new ArrayList<String>(1));
531 public void setSearchVideoDirs(List<String> s) {
532 config.setProperty(SEARCH_VIDEO, s);
534 private static final String SEARCH_COMMENT = "search.comment";
536 @SuppressWarnings("unchecked")
537 public List<String> getSearchCommentDirs() {
538 return config.getList(SEARCH_COMMENT, new ArrayList<String>(1));
541 public void setSearchCommentDirs(List<String> s) {
542 config.setProperty(SEARCH_COMMENT, s);
548 private static final String SYSTEM_DOWNLOAD_THREAD = "system.download.thread";
550 public int getSystemDownloadThread() {
551 return config.getInt(SYSTEM_DOWNLOAD_THREAD, 1);
554 public void setSystemDownloadThread(int s) {
555 config.setProperty(SYSTEM_DOWNLOAD_THREAD, s);
557 private static final String SYSTEM_DOWNLOAD_WAIT = "system.download.wait";
559 public int getSystemDownloadWait() {
560 return config.getInt(SYSTEM_DOWNLOAD_WAIT, 30);
563 public void setSystemDownloadWait(int s) {
564 config.setProperty(SYSTEM_DOWNLOAD_WAIT, s);
566 private static final String SYSTEM_CONVERT_THREAD = "system.convert.thread";
568 public int getSystemConvertThread() {
569 return config.getInt(SYSTEM_CONVERT_THREAD, 2);
572 public void setSystemConvertThread(int s) {
573 config.setProperty(SYSTEM_CONVERT_THREAD, s);
575 private static final String SYSTEM_TEMPDIR = "system.tempdir";
577 public String getSystemTempDir() {
578 return config.getString(SYSTEM_TEMPDIR, "tmp");
581 public void setSystemTempDir(String s) {
582 config.setProperty(SYSTEM_TEMPDIR, s);
584 private static final String SYSTEM_WINDOW_WIDTH = "system.window.width";
586 public int getSystemWindowWidth() {
587 return config.getInt(SYSTEM_WINDOW_WIDTH, -1);
590 public void setSystemWindowWidth(int s) {
591 config.setProperty(SYSTEM_WINDOW_WIDTH, s);
593 private static final String SYSTEM_WINDOW_HEIGHT = "system.window.height";
595 public int getSystemWindowHeight() {
596 return config.getInt(SYSTEM_WINDOW_HEIGHT, -1);
599 public void setSystemWindowHeight(int s) {
600 config.setProperty(SYSTEM_WINDOW_HEIGHT, s);
602 private static final String SYSTEM_WINDOW_POS_X = "system.window.posx";
604 public int getSystemWindowPosX() {
605 return config.getInt(SYSTEM_WINDOW_POS_X, Integer.MIN_VALUE / 2);
608 public void setSystemWindowPosX(int s) {
609 config.setProperty(SYSTEM_WINDOW_POS_X, s);
611 private static final String SYSTEM_WINDOW_POS_Y = "system.window.posy";
613 public int getSystemWindowPosY() {
614 return config.getInt(SYSTEM_WINDOW_POS_Y, Integer.MIN_VALUE / 2);
617 public void setSystemWindowPosY(int s) {
618 config.setProperty(SYSTEM_WINDOW_POS_Y, s);
620 private static final String SYSTEM_COLUMN_ID = "system.column.id";
622 public int getSystemColumnId() {
623 return config.getInt(SYSTEM_COLUMN_ID, -1);
626 public void setSystemColumnId(int s) {
627 config.setProperty(SYSTEM_COLUMN_ID, s);
629 private static final String SYSTEM_COLUMN_VIDEO = "system.column.video";
631 public int getSystemColumnVideo() {
632 return config.getInt(SYSTEM_COLUMN_VIDEO, -1);
635 public void setSystemColumnVideo(int s) {
636 config.setProperty(SYSTEM_COLUMN_VIDEO, s);
638 private static final String SYSTEM_COLUMN_COMMENT = "system.column.comment";
640 public int getSystemColumnComment() {
641 return config.getInt(SYSTEM_COLUMN_COMMENT, -1);
644 public void setSystemColumnComment(int s) {
645 config.setProperty(SYSTEM_COLUMN_COMMENT, s);
647 private static final String SYSTEM_COLUMN_CONVERT = "system.column.convert";
649 public int getSystemColumnConvert() {
650 return config.getInt(SYSTEM_COLUMN_CONVERT, -1);
653 public void setSystemColumnConvert(int s) {
654 config.setProperty(SYSTEM_COLUMN_CONVERT, s);
656 private static final String SYSTEM_COLUMN_STATUS = "system.column.status";
658 public int getSystemColumnStatus() {
659 return config.getInt(SYSTEM_COLUMN_STATUS, -1);
662 public void setSystemColumnStatus(int s) {
663 config.setProperty(SYSTEM_COLUMN_STATUS, s);
669 public void load(String fileName) throws ConfigurationException {
670 config.setFileName(fileName);
674 public void save(File file) throws ConfigurationException {
675 config.setFile(file);
679 public void save() throws ConfigurationException {