Newer
Older
talkCrawler / src / talkcrawler / TalkCrawler.java
package talkcrawler;

import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

public class TalkCrawler {
    
    /**
     * COMMAND 
     * 引数がない場合には、前日の月のクローリングを行う
     * 年月が指定された場合には、指定の月のクローリングを行う
     * 引数に「all」が指定された場合には、すべてのクローリングをやり直す
     * 
     * @param args
     * @throws IOException 
     * @throws java.text.ParseException 
     */
    public static void main(String[] args) throws IOException, ParseException {
        Calendar calendar = Calendar.getInstance();
        if (args.length >= 1) {
            String argStr = args[0];
            if (argStr.toLowerCase().equals("all")) {
                // 引数に「all」が指定された場合には、すべてのクローリングをやり直す
                TalkCrawlerProperties prop = new TalkCrawlerProperties().load();
                MonthlyIndex ins = new MonthlyIndex(prop);
                ins.load();
                return;
            }
            else {
                // 年月が指定された場合には、指定の月のクローリングを行う
                DateFormat inputDate = new SimpleDateFormat("yyyy-MM");
                calendar.setTime(inputDate.parse(argStr));
                calendar.add(Calendar.MONTH, 1);
            }
        }
        else {
            // 引数がない場合には、前日の月のクローリングを行う
            calendar.setTime(new Date());
            calendar.add(Calendar.DAY_OF_MONTH, -1);
        }
        
        DateFormat df = new SimpleDateFormat("yyyy-MMMMMMMM", Locale.UK);
        df.setTimeZone(TimeZone.getTimeZone("GMT"));
        String monthly = df.format(calendar.getTime());
        System.out.println("TalkCrawler "+ monthly);
        
        TalkCrawlerProperties prop = new TalkCrawlerProperties().load();
        DailyIndex ins = new DailyIndex(prop, monthly, "date.html");
        ins.load();
    }
}