OSDN Git Service

mylist.txt処理追加
authoryukihane <yukihane.feather@gmail.com>
Fri, 5 Aug 2011 03:29:03 +0000 (12:29 +0900)
committeryukihane <yukihane.feather@gmail.com>
Fri, 5 Aug 2011 03:29:03 +0000 (12:29 +0900)
src/nicobrowser/config/Config.java

index ae54645..03dd226 100644 (file)
@@ -9,6 +9,10 @@ import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.PropertiesConfiguration;
@@ -25,9 +29,11 @@ public final class Config {
     private static final String APPLICATION_NAME = "nicobrowser";
     private static final String CONFIG_NAME = APPLICATION_NAME + ".properties";
     private static final String FEEDURL_NAME = "feedurl.txt";
+    private static final String MYLIST_CONFIG_NAME = "mylist.txt";
     private static final File APP_HOME = new File(System.getProperty("user.home", "."), "." + APPLICATION_NAME);
     private static final File CONFIG_FILE = new File(APP_HOME, CONFIG_NAME);
     private static final File FEEDURL_FILE = new File(APP_HOME, FEEDURL_NAME);
+    private static final File MYLIST_CONFIG_FILE = new File(APP_HOME, MYLIST_CONFIG_NAME);
     public static final String P_PATH_DB = "path.db";
     public static final String P_PATH_SAVEFILE = "path.savefile";
     public static final String P_SAVEFILE_PATTERN = "savefilename.pattern";
@@ -69,6 +75,10 @@ public final class Config {
                 }
             }
         }
+        if(!MYLIST_CONFIG_FILE.exists()){
+            createNewMylistConfigFile(MYLIST_CONFIG_FILE);
+            log.info("MYLISTファイルを作成しました: " + MYLIST_CONFIG_FILE.getCanonicalPath());
+        }
         return result;
     }
 
@@ -160,6 +170,9 @@ public final class Config {
         FileUtils.writeLines(dest, list);
     }
 
+    private static void createNewMylistConfigFile(File file) throws IOException{
+        FileUtils.writeStringToFile(file, "");
+    }
     private Config() {
         try {
             properties = new PropertiesConfiguration(CONFIG_FILE);
@@ -251,14 +264,28 @@ public final class Config {
     }
 
     public List<String> getDownLoadMyList() {
+        final List<String> mylists = new ArrayList<String>();
+        try {
+            final List<?> lines = FileUtils.readLines(MYLIST_CONFIG_FILE);
+            final Pattern p = Pattern.compile("(^\\d+)");
+            for(Object l : lines){
+                Matcher m = p.matcher(l.toString());
+                if(m.find()){
+                    mylists.add(m.group(1));
+                }
+            }
+        } catch (IOException ex) {
+            Logger.getLogger(Config.class.getName()).log(Level.SEVERE, "読み込みに失敗: " + MYLIST_CONFIG_NAME, ex);
+        }
         String[] res = properties.getStringArray(P_DOWNLOAD_MYLIST);
-        return Arrays.asList(res);
+        mylists.addAll(Arrays.asList(res));
+        return mylists;
     }
 
     public List<NicoFeed> getNicoFeeds() {
         List<NicoFeed> list = new ArrayList<NicoFeed>();
         try {
-            List lines = FileUtils.readLines(FEEDURL_FILE, getEncoding());
+            List<?> lines = FileUtils.readLines(FEEDURL_FILE, getEncoding());
             for (Object line : lines) {
                 final String str = line.toString();
                 if (StringUtils.isEmpty(str) || str.startsWith("#")) {