update chaps

This commit is contained in:
mwang 2019-04-29 07:57:48 +08:00
parent 324d44ca83
commit 96f8998920
2 changed files with 31 additions and 10 deletions

View File

@ -289,9 +289,9 @@ public class BookUtil {
new Thread(){ new Thread(){
@Override @Override
public void run() { public void run() {
Log.d(TAG, "changing Source: to get site rule"); Log.d(TAG, "to get chaps............................>");
Log.d(TAG, "to get chaps siteRule:" +result);
Log.d(TAG, "to get chaps mulu:" + mSite.getMuluUrl() );
String[] chaps = new String[0]; String[] chaps = new String[0];
try { try {
JSONObject siteJson = new JSONObject(result); JSONObject siteJson = new JSONObject(result);
@ -300,7 +300,7 @@ public class BookUtil {
if (chaps != null) if (chaps != null)
for (String s : chaps) { for (String s : chaps) {
Log.d(TAG, "prepare book readChaptersAsync: chapt: " + s); Log.d(TAG, "prepare book to get chaps readChaptersAsync: chapt: " + s);
} }
} catch (JSONException e) { } catch (JSONException e) {

View File

@ -137,49 +137,69 @@ public class NovelParseUtil {
JSONArray muluArray = siteJson.getJSONArray("chapterUrlRegexOnMulu"); JSONArray muluArray = siteJson.getJSONArray("chapterUrlRegexOnMulu");
if (muluArray == null || muluArray.length()== 0) return null; if (muluArray == null || muluArray.length()== 0) return null;
Log.d(TAG, "to get chaps muluArray is null: " +( muluArray ==null) );
Map<String, Object> context = new HashMap<String, Object>(); Map<String, Object> context = new HashMap<String, Object>();
context.put("url", url); context.put("url", url);
Log.d(TAG, "to get chaps url:" + url );
List<String> result = new ArrayList<String>(); List<String> result = new ArrayList<String>();
// 最外部的大的规则对象 // 最外部的大的规则对象
for (int i = 0; i < muluArray.length(); i++) { for (int i = 0; i < muluArray.length(); i++) {
JSONObject regexsJson = muluArray.getJSONObject(i); JSONObject regexsJson = muluArray.getJSONObject(i);
String source = regexsJson.getString("source"); String source = regexsJson.getString("source");
source = getContent(source, context); source = getContent(source, context);
Log.d(TAG, "to get chaps source:" + source );
if (source.startsWith("html:")) { if (source.startsWith("html:")) {
String _url = source.substring("html:".length()); String _url = source.substring("html:".length());
source = access(_url); source = access(_url);
Log.d(TAG, "to get chaps source:" + source );
} }
// 第一次Regex对象 // 第一次Regex对象
JSONArray regexsArray = regexsJson.getJSONArray("regexs"); JSONArray regexsArray = regexsJson.getJSONArray("regexs");
Log.d(TAG, "to get chaps regexsArray.length():" + regexsArray.length() );
for (int j = 0; j < regexsArray.length(); j++) { for (int j = 0; j < regexsArray.length(); j++) {
JSONObject regexJson = regexsArray.getJSONObject(j); JSONObject regexJson = regexsArray.getJSONObject(j);
String[] values = null; String[] values = null;
Log.d(TAG, "to get chaps regexJson.getBoolean(\"group\"):" + regexJson.getBoolean("group") );
if (regexJson.getBoolean("group")) { if (regexJson.getBoolean("group")) {
values = REUtil.groups(regexJson.getString("regex"), source); values = REUtil.groups(regexJson.getString("regex"), source);
} else { } else {
values = REUtil.matchs(regexJson.getString("regex"), source); values = REUtil.matchs(regexJson.getString("regex"), source);
} }
Log.d(TAG, "to get chaps values==null? :" + (values==null) );
for(String s:values){
Log.d(TAG, "to get chaps value :" + s);
}
if (values != null) context.put(regexJson.getString("name"), values); if (values != null) context.put(regexJson.getString("name"), values);
// String child = siteJson.getString("child");
if ( siteJson.has("child") ) { // String child = siteJson.getString("child");
Log.d(TAG, "to get chaps siteJson.has(\"child\")? :" + siteJson.has("child"));
if ( regexJson.has("child") ) {
// 一般用来做返回结果用的 // 一般用来做返回结果用的
JSONObject childJson = regexJson.getJSONObject("child"); JSONObject childJson = regexJson.getJSONObject("child");
Log.d(TAG, "to get chaps childJson :" + childJson.toString());
for (String value : values) { for (String value : values) {
Log.d(TAG, "to get chaps value in values :" + value);
String[] values2 = null; String[] values2 = null;
Log.d(TAG, "to get chaps childJson.getBoolean(\"group\") :" + childJson.getBoolean("group"));
if (childJson.getBoolean("group")) { if (childJson.getBoolean("group")) {
values2 = REUtil.groups(childJson.getString("regex"), value); values2 = REUtil.groups(childJson.getString("regex"), value);
} else { } else {
values2 = REUtil.matchs(childJson.getString("regex"), value); values2 = REUtil.matchs(childJson.getString("regex"), value);
} }
if (values != null) { Log.d(TAG, "to get chaps values2 != null :" + (values2 != null));
if (values2 != null) {
Log.d(TAG, "to get chaps value in values2 :" + value);
context.put(childJson.getString("name"), values2); context.put(childJson.getString("name"), values2);
if (siteJson.has("output")) { Log.d(TAG, "to get chaps siteJson.has(\"output\") :" + siteJson.has("output"));
if (childJson.has("output")) {
JSONArray outputArray = childJson.getJSONArray("output"); JSONArray outputArray = childJson.getJSONArray("output");
for (int m = 0; m < outputArray.length(); m++) { for (int m = 0; m < outputArray.length(); m++) {
String v = getContent(outputArray.getString(m), context); String v = getContent(outputArray.getString(m), context);
Log.d(TAG, "to get chaps v :" + v);
if (v != null) result.add(v); if (v != null) result.add(v);
} }
} }
@ -188,7 +208,7 @@ public class NovelParseUtil {
} }
} }
} }
Log.d(TAG, "to get chaps <---------------------------- result size :" + result.size());
return result.toArray(new String[0]); return result.toArray(new String[0]);
} }
@ -237,7 +257,8 @@ public class NovelParseUtil {
try { try {
Response response = HttpMethods.getOkClient().newCall(request).execute(); Response response = HttpMethods.getOkClient().newCall(request).execute();
String s =response.body().string(); String s =response.body().string();
Log.d(TAG, "prepare book access: " +s);
Log.d(TAG, "to get chaps access result:" + s );
return s; return s;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();