getDate(pl);\r
\r
//\r
- for ( int i=0; i<pl.pdate.size(); i++ ) {\r
+ for ( int dtidx=0; dtidx<pl.pdate.size(); dtidx++ ) {\r
//\r
- GregorianCalendar cal = CommonUtils.getCalendar(pl.pdate.get(i).Date);\r
- final String progCacheFile = String.format("%s%sSKP2012_%s_%d.txt", getProgDir(), File.separator, pl.CenterId, cal.get(Calendar.DAY_OF_MONTH));\r
- //\r
- File f = new File(progCacheFile);\r
- if (force == true ||\r
- (f.exists() == true && isCacheOld(progCacheFile) == true) ||\r
- (f.exists() == false && isCacheOld(null) == true)) {\r
+ GregorianCalendar cal = CommonUtils.getCalendar(pl.pdate.get(dtidx).Date);\r
+ \r
+ boolean isNextpageExist = true;\r
+ for ( int pgidx=1; isNextpageExist; pgidx++ ) {\r
+ \r
+ final String progCacheFile = \r
+ pgidx == 1 ? String.format("%s%sSKP2012_%s_%d.txt", getProgDir(), File.separator, pl.CenterId, cal.get(Calendar.DAY_OF_MONTH)) :\r
+ String.format("%s%sSKP2012_%s_%d_%d.txt", getProgDir(), File.separator, pl.CenterId, cal.get(Calendar.DAY_OF_MONTH),pgidx);\r
//\r
- String xtype = (pl.CenterId.startsWith(CHID_PREFIX_BS) || pl.CenterId.startsWith(CHID_PREFIX_CS)) ? XTYPE_BASIC : XTYPE_PREMIUM;\r
- String chid = xtype != XTYPE_PREMIUM ? pl.CenterId : pl.CenterId.replaceFirst("^"+CHID_PREFIX_PR, "");\r
- String dt = CommonUtils.getDateYMD(cal);\r
- String url = "http://bangumi.skyperfectv.co.jp/"+xtype+"/channel:"+chid+"/date:"+dt.substring(2)+"/";\r
- /*\r
- if ( pl.ChId.length() == 0 ) {\r
- url = "http://bangumi.skyperfectv.co.jp/api/version:3/search/date:"+dt.substring(2)+"/channel:"+pl.CenterId+"/?api_key=336eec3423";\r
+ File f = new File(progCacheFile);\r
+ if (force == true ||\r
+ (f.exists() == true && isCacheOld(progCacheFile) == true) ||\r
+ (f.exists() == false && isCacheOld(null) == true)) {\r
+ //\r
+ String xtype = (pl.CenterId.startsWith(CHID_PREFIX_BS) || pl.CenterId.startsWith(CHID_PREFIX_CS)) ? XTYPE_BASIC : XTYPE_PREMIUM;\r
+ String chid = xtype != XTYPE_PREMIUM ? pl.CenterId : pl.CenterId.replaceFirst("^"+CHID_PREFIX_PR, "");\r
+ String dt = CommonUtils.getDateYMD(cal);\r
+ String url = "http://bangumi.skyperfectv.co.jp/"+xtype+"/channel:"+chid+"/date:"+dt.substring(2)+"/";\r
+ if ( pgidx > 1 ) {\r
+ url += "?p="+pgidx;\r
+ }\r
+ /*\r
+ if ( pl.ChId.length() == 0 ) {\r
+ url = "http://bangumi.skyperfectv.co.jp/api/version:3/search/date:"+dt.substring(2)+"/channel:"+pl.CenterId+"/?api_key=336eec3423";\r
+ }\r
+ else {\r
+ url = "http://www.skyperfectv.co.jp/xml/"+dt+"_"+pl.ChId.substring(2)+".xml";\r
+ }\r
+ */\r
+ webToFile(url, progCacheFile, thisEncoding);\r
+ \r
+ printProgress("(オンライン)を取得しました", counter+dtidx, pgidx, counterMax, pl.Center, cal.get(Calendar.DAY_OF_MONTH), url);\r
+ }\r
+ else if (CommonUtils.isFileAvailable(f,10)) {\r
+ printProgress("(キャッシュ)を取得しました", counter+dtidx, pgidx, counterMax, pl.Center, cal.get(Calendar.DAY_OF_MONTH), progCacheFile);\r
}\r
else {\r
- url = "http://www.skyperfectv.co.jp/xml/"+dt+"_"+pl.ChId.substring(2)+".xml";\r
+ printProgress("(キャッシュ)がみつかりません", counter+dtidx, pgidx, counterMax, pl.Center, cal.get(Calendar.DAY_OF_MONTH), progCacheFile);\r
+ break;\r
+ }\r
+ \r
+ String response = CommonUtils.read4file(progCacheFile, true);\r
+ if ( response == null || ! response.matches("^.*<a href=\"\\?p=\\d+[^>]+?>次.*$") ) {\r
+ isNextpageExist = false;\r
}\r
- */\r
- webToFile(url, progCacheFile, thisEncoding);\r
\r
- reportProgress(getTVProgramId()+"(オンライン)を取得しました: ("+(counter+i)+"/"+counterMax+") "+pl.Center+"["+cal.get(Calendar.DAY_OF_MONTH)+"日] "+url);\r
- }\r
- else if (CommonUtils.isFileAvailable(f,10)) {\r
- reportProgress(getTVProgramId()+"(キャッシュ)を取得しました: ("+(counter+i)+"/"+counterMax+") "+pl.Center+"["+cal.get(Calendar.DAY_OF_MONTH)+"日] "+progCacheFile);\r
- }\r
- else {\r
- reportProgress(getTVProgramId()+"(キャッシュ)がみつかりません: ("+(counter+i)+"/"+counterMax+") "+pl.Center+"["+cal.get(Calendar.DAY_OF_MONTH)+"日] "+progCacheFile);\r
- continue;\r
- }\r
- \r
- String response = CommonUtils.read4file(progCacheFile, true);\r
- \r
- // 番組リストの追加\r
- try {\r
- getPrograms(pl, i, response);\r
- /*\r
- if ( pl.ChId.length() == 0 ) {\r
- getPrograms(pl, i, response);\r
+ // 番組リストの追加\r
+ try {\r
+ getPrograms(pl, dtidx, response);\r
+ /*\r
+ if ( pl.ChId.length() == 0 ) {\r
+ getPrograms(pl, i, response);\r
+ }\r
+ else {\r
+ getPrograms_basic(pl, i, response);\r
+ }\r
+ */\r
}\r
- else {\r
- getPrograms_basic(pl, i, response);\r
+ catch ( Exception e ) {\r
+ e.printStackTrace();\r
}\r
- */\r
- }\r
- catch ( Exception e ) {\r
- e.printStackTrace();\r
}\r
}\r
\r
}\r
}\r
\r
+ private void printProgress(String msg, int count, int pgidx, int countMax, String center, int date, String uri) {\r
+ reportProgress(String.format("%s %s: (%d/%d) page=%d %s[%d日] %s", getTVProgramId(), msg, count, countMax, pgidx, center, date, uri));\r
+ }\r
//\r
private void getDate(ProgList pl) {\r
// 日付の処理\r