OSDN Git Service

コンフィグを用いた禁則文字置換を実装
[coroid/NicoBrowser.git] / src / nicobrowser / main / Main.java
index ae84f1b..e39c480 100644 (file)
@@ -18,23 +18,28 @@ import javax.swing.SwingUtilities;
 import nicobrowser.Config;
 import nicobrowser.GetFlvResult;
 import nicobrowser.Config.NicoFeed;
+import nicobrowser.NamePattern;
 import nicobrowser.NicoHttpClient;
+import nicobrowser.ProgressListener;
+import nicobrowser.VideoInfo;
 import nicobrowser.entity.NicoContent;
 import nicobrowser.entity.NicoContent.Status;
 import nicobrowser.gui.config.ConfigFrame;
 import nicobrowser.update.DBUpdater;
+import nicobrowser.util.Util;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.HelpFormatter;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 public class Main {
 
-    public static final String VERSION = "version 0.3.1";
+    public static final String VERSION = "version 0.5.1";
     private static Log log = LogFactory.getLog(Main.class);
 
     public static void main(String[] args) throws IOException {
@@ -72,6 +77,9 @@ public class Main {
         if (args.length > 0 && "sync".equals(args[0])) {
             updater.sync();
             return;
+        } else if (args.length > 0 && "sync4".equals(args[0])) {
+            updater.sync_for_4();
+            return;
         }
         updater.update();
 
@@ -107,7 +115,7 @@ public class Main {
         NicoHttpClient instance = null;
         try {
             log.info("リストを取得します");
-            instance = NicoHttpClient.getInstance();
+            instance = new NicoHttpClient();
             List<NicoFeed> feeds = config.getNicoFeeds();
             for (NicoFeed f : feeds) {
                 List<NicoContent> list = instance.getContentsFromRss(f.getUrl());
@@ -174,7 +182,7 @@ public class Main {
                     long sleep = nowDate.getTime() - prevDate.getTime();
                     sleep = config.getWaitTime() * 1000 - sleep;
                     if (sleep > 0) {
-                        log.info("" + sleep + "ms sleep");
+                        log.info("" + sleep / 1000 + "秒待機します。");
                         try {
                             Thread.sleep(sleep);
                         } catch (InterruptedException e) {
@@ -183,12 +191,16 @@ public class Main {
                     }
                 }
                 prevDate = Calendar.getInstance().getTime();
-                File saveLocation = new File(config.getSrcSaveDir(), c.getFileName());
+                File saveDir = new File(config.getSrcSaveDir());
+                NamePattern np = new NamePattern(config.getFileNamePattern(), config.getFileNameReplaceFrom(), config.
+                        getFileNameReplaceTo(), Util.getRegularFileName(c.getTitle()));
                 log.info("ファイルを取得します: " + c.getNicoId() + " " + c.getTitle());
                 try {
-                    GetFlvResult result = instance.getFlvFile(c.getNicoId(),
-                            saveLocation.getCanonicalPath(), c.getStatus(),
-                            true);
+                    VideoInfo vi = instance.getVideoInfo(c.getNicoId());
+                    GetFlvResult result = instance.getFlvFile(vi, saveDir, np, c.getStatus(), config.needLowFile(),
+                            ProgressListener.EMPTY_LISTENER);
+
+                    c.setFileName(FilenameUtils.getBaseName(result.getFile().toString()));
                     c.setAuthor(result.getAuthor());
                     Status status = result.getStatus();
                     c.setStatus(status);
@@ -197,7 +209,7 @@ public class Main {
                     }
                 } catch (Exception ex) {
                     c.setFailTimes(c.getFailTimes() + 1);
-                    log.error("ファイル取得に失敗しました" + c.getNicoId() + ", 通算失敗回数: " + c.getFailTimes(), ex);
+                    log.error("ファイル取得に失敗しました" + c.getNicoId() + ", 通算失敗回数: " + c.getFailTimes(), ex);
                 }
                 transaction.begin();
                 manager.persist(c);
@@ -219,7 +231,7 @@ public class Main {
                 setParameter(1, c.getNicoId());
         List<NicoContent> resList = query.getResultList();
         if (resList.isEmpty()) {
-            log.info("NEW! " + c.getNicoId() + " : " + c.getFileName());
+            log.info("NEW! " + c.getNicoId() + " : " + c.getTitle());
             manager.persist(c);
         }
     }