68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
package com.novelbook.android.netapi;
|
|
|
|
|
|
|
|
import android.util.Log;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
public class UrlFactory {
|
|
|
|
public static String getHost(String uri) {
|
|
String key = "master";
|
|
if (uri.startsWith("/api/search/")) {
|
|
key = "search";
|
|
} else if (uri.startsWith("/api/n/")) {
|
|
key = "novel";
|
|
} else if (uri.startsWith("/api/novels/")) {
|
|
key = "novelsbydot";
|
|
} else if (uri.startsWith("/api/r/")) {
|
|
key = "report";
|
|
} else if (uri.startsWith("/api/page/")) {
|
|
key = "page";
|
|
} else if (uri.startsWith("/api/u/")) {
|
|
key = "user";
|
|
}
|
|
return key;
|
|
}
|
|
public static String getUrl(JSONObject host, String uri, int index) throws JSONException {
|
|
if (uri == null) return "";
|
|
|
|
String key = getHost(uri);
|
|
JSONArray us = null;
|
|
if (host != null) {
|
|
us = host.getJSONArray(key);
|
|
if (us != null && us.length() > index) {
|
|
return us.getString(index) ;//+ uri;
|
|
}
|
|
}
|
|
// return "";
|
|
int value = (us == null || us.length()==0) ? index : index - us.length();
|
|
|
|
int second = 90 + 7;
|
|
int a1 = value / 2 +1;
|
|
int a2 = value % 2;
|
|
String url = String.format("http://%s%s%s.%s%s%s%s.com", key.charAt(0), (char)(second + a2), a1, "xiao", "shuo", "fen", "xiang");
|
|
Log.d("randomurl", "getUrl: " + url);
|
|
Log.d("randomurl", String.format("uri:%s,us.length:%s,index:%s,value:%s,a1:%s,a2:%s,key.charAt(0):%s,(char)(second + a2):%s,a1:%s" +
|
|
"",uri,us.length(),index,value,a1,a2,key.charAt(0), (char)(second + a2),a1));
|
|
return url;
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
/*String[] keys = new String[] {"/api/search/", "/api/n/", "/api/novels/", "/api/r/", "/api/page/", "/api/u/", "/api/g/"};
|
|
String text = FileUtil.read("C:\\MyWorkSpace\\WorkRoom\\cms4\\app\\xiaoshuofenxiang\\web\\api\\g\\Setting.json", "utf-8");
|
|
JSONObject hosts = JSONObject.parseObject(text).getJSONObject("data").getJSONObject("hosts");
|
|
|
|
for (String key : keys ) {
|
|
RandomHost rh = new RandomHost(hosts, key);
|
|
for (int i = 0; i < 11; i++) {
|
|
String url = rh.next();
|
|
System.out.println(String.format("for %s and index = %s, url=%s", key, i, url));
|
|
}
|
|
}*/
|
|
}
|
|
}
|