package nicobrowser.main;
import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Query;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
-import nicobrowser.Config;
+import nicobrowser.config.Config;
import nicobrowser.GetFlvResult;
-import nicobrowser.Config.NicoFeed;
+import nicobrowser.NamePattern;
import nicobrowser.NicoHttpClient;
+import nicobrowser.ProgressListener;
+import nicobrowser.VideoInfo;
+import nicobrowser.config.NicoFeed;
import nicobrowser.entity.NicoContent;
import nicobrowser.entity.NicoContent.Status;
import nicobrowser.gui.config.ConfigFrame;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.commons.io.FilenameUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class Main {
- public static final String VERSION = "version 0.4.0";
- 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 IOException {
+ public static void main(String[] args) throws Exception {
final boolean res = Config.createNewConfigFiles();
CommandLineParser parser = new PosixParser();
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();
NicoHttpClient instance = null;
try {
log.info("リストを取得します");
- instance = NicoHttpClient.getInstance();
+ 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());
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()) {
}
}
prevDate = Calendar.getInstance().getTime();
- File saveLocation = new File(config.getSrcSaveDir(), c.getFileName());
+ File saveDir = new File(config.getSrcSaveDir());
+ 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 {
- GetFlvResult result = instance.getFlvFile(c.getNicoId(),
- saveLocation.getCanonicalPath(), c.getStatus(), config.needLowFile());
+ VideoInfo vi = instance.getVideoInfo(c.getNicoId());
+ GetFlvResult result = instance.getFlvFile(vi, saveDir, np, c.getStatus(), config.needLowFile(),
+ ProgressListener.EMPTY_LISTENER);
+
+ 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);
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.getFileName());
+ log.info("NEW! " + c.getNicoId() + " : " + c.getTitle());
manager.persist(c);
}
}