OSDN Git Service

置換文字設定を削除
[coroid/NicoBrowser.git] / src / nicobrowser / main / Main.java
index 005a28d..16cb41f 100644 (file)
@@ -32,13 +32,13 @@ 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;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Main {
 
-    public static final String VERSION = "version 0.9.2";
-    private static Log log = LogFactory.getLog(Main.class);
+    public static final String VERSION = "0.11.0";
+    private static Logger log = LoggerFactory.getLogger(Main.class);
 
     public static void main(String[] args) throws Exception {
         final boolean res = Config.createNewConfigFiles();
@@ -113,7 +113,12 @@ public class Main {
         NicoHttpClient instance = null;
         try {
             log.info("リストを取得します");
-            instance = new NicoHttpClient();
+            if (config.getProxyUse()) {
+                final int port = Integer.parseInt(config.getProxyPort());
+                instance = new NicoHttpClient(config.getProxyHost(), port);
+            } else {
+                instance = new NicoHttpClient();
+            }
             List<NicoFeed> feeds = config.getNicoFeeds();
             for (NicoFeed f : feeds) {
                 List<NicoContent> list = instance.getContentsFromRss(f.getUrl());
@@ -168,8 +173,8 @@ public class Main {
 
             Query query = manager.createQuery("SELECT cont FROM NicoContent AS cont " + "WHERE ?1 <> cont.status").
                     setParameter(1, NicoContent.Status.GET_FILE);
+            @SuppressWarnings("unchecked")
             List<NicoContent> results = query.getResultList();
-            instance.login(config.getNicoMail(), config.getNicoPassword());
             Date prevDate = null;
             for (NicoContent c : results) {
                 if (c.getFailTimes() >= config.getMaxRetry()) {
@@ -190,15 +195,22 @@ public class Main {
                 }
                 prevDate = Calendar.getInstance().getTime();
                 File saveDir = new File(config.getSrcSaveDir());
-                NamePattern np = new NamePattern(config.getFileNamePattern(), config.getFileNameReplaceFrom(), config.
-                        getFileNameReplaceTo(), c.getTitle());
+                NamePattern np = new NamePattern(config.getFileNamePattern(), c.getTitle());
                 log.info("ファイルを取得します: " + c.getNicoId() + " " + c.getTitle());
+                final boolean authed = instance.challengeAuth();
+                if (!authed) {
+                    log.info("ログインします");
+                    instance.login(config.getNicoMail(), config.getNicoPassword());
+                }
                 try {
                     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()));
+                    final File f = result.getFile();
+                    if(f != null){
+                        c.setFileName(FilenameUtils.getBaseName(f.toString()));
+                    }
                     c.setAuthor(result.getAuthor());
                     Status status = result.getStatus();
                     c.setStatus(status);
@@ -227,6 +239,7 @@ public class Main {
     private void save(EntityManager manager, NicoContent c) {
         Query query = manager.createQuery("SELECT cont FROM NicoContent AS cont " + "WHERE ?1 = cont.nicoId").
                 setParameter(1, c.getNicoId());
+        @SuppressWarnings("unchecked")
         List<NicoContent> resList = query.getResultList();
         if (resList.isEmpty()) {
             log.info("NEW! " + c.getNicoId() + " : " + c.getTitle());