3 import java.util.ArrayList;
\r
4 import java.util.regex.Matcher;
\r
5 import java.util.regex.Pattern;
\r
12 public class PlugIn_RecRD_X5EX extends PlugIn_RecRD_X5 implements HDDRecorder,Cloneable {
\r
15 public PlugIn_RecRD_X5EX clone() {
\r
16 return (PlugIn_RecRD_X5EX) super.clone();
\r
23 public String getRecorderId() { return "RD-X5EX"; }
\r
31 /* 個別コード-ここから最後まで */
\r
39 protected ArrayList<ReserveList> GetRdReservedList(String response) {
\r
41 System.out.println("X5EX's GetRdReservedList()");
\r
43 response = response.replaceAll("\n", "");
\r
45 ArrayList<ReserveList> newReserveList = new ArrayList<ReserveList>();
\r
47 Matcher ma = Pattern.compile("<tr [^>]*?>([\\s\\S]*?)</tr>").matcher(response);
\r
51 String buf = ma.group(1);
\r
54 mb = Pattern.compile(">新規予約<").matcher(buf);
\r
59 ReserveList entry = new ReserveList();
\r
61 String[] d = new String[11];
\r
62 mb = Pattern.compile("<(td|TD).*?>(.*?)</(td|TD)>").matcher(buf);
\r
63 for (int i=0; i<d.length; i++) {
\r
67 //System.out.println(i+") "+d[i]);
\r
71 mb = Pattern.compile("check_off\\.gif").matcher(d[1]);
\r
73 entry.setExec(false);
\r
77 String title = d[2];
\r
78 mb = Pattern.compile("<A .*?>(.+?)</A>").matcher(title);
\r
79 if (mb.find()) title = mb.group(1);
\r
80 mb = Pattern.compile("<BR>").matcher(title); // 余計な改行の削除
\r
81 if (mb.find()) title = mb.replaceAll("");
\r
82 mb = Pattern.compile(""").matcher(title);
\r
83 if (mb.find()) title = mb.replaceAll("\"");
\r
84 mb = Pattern.compile("<").matcher(title);
\r
85 if (mb.find()) title = mb.replaceAll("<");
\r
86 mb = Pattern.compile(">").matcher(title);
\r
87 if (mb.find()) title = mb.replaceAll(">");
\r
88 mb = Pattern.compile(" ").matcher(title);
\r
89 if (mb.find()) title = mb.replaceAll(" ");
\r
92 entry.setId(String.valueOf(Integer.valueOf(d[0])-1));
\r
93 entry.setRec_pattern(d[5]);
\r
94 entry.setRec_pattern_id(getRec_pattern_Id(entry.getRec_pattern()));
\r
95 mb = Pattern.compile("(\\d\\d):(\\d\\d).*?(\\d\\d):(\\d\\d)").matcher(d[6]);
\r
97 entry.setAhh(mb.group(1));
\r
98 entry.setAmm(mb.group(2));
\r
99 entry.setZhh(mb.group(3));
\r
100 entry.setZmm(mb.group(4));
\r
102 entry.setRec_nextdate(CommonUtils.getNextDate(entry));
\r
103 //entry.setRec_nextdate(getNextDate(entry.getRec_pattern(), entry.getZhh()+":"+entry.getZmm()));
\r
104 entry.setRec_min(CommonUtils.getRecMin(entry.getAhh(), entry.getAmm(), entry.getZhh(), entry.getZmm()));
\r
105 getStartEndDateTime(entry);
\r
107 mb = Pattern.compile("act_(.+?)\\.gif").matcher(d[3]);
\r
109 entry.setTuner(mb.group(1));
\r
112 entry.setTuner("R1");
\r
114 entry.setRec_mode(d[9]);
\r
115 entry.setTitle(title);
\r
116 entry.setTitlePop(TraceProgram.replacePop(title));
\r
117 entry.setCh_name(getChCode().getCH_REC2WEB(d[4]));
\r
118 entry.setChannel(d[4]);
\r
120 entry.setRec_audio(d[10]);
\r
121 //entry.rec_folder = data.get(); // 予約一覧からはとれない
\r
122 //entry.rec_genre = data.get(); // 予約一覧からはとれない
\r
125 newReserveList.add(entry);
\r
128 return(newReserveList);
\r