Alist.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.github.catvod.spider;
  2. import android.content.Context;
  3. import com.github.catvod.crawler.Spider;
  4. import com.github.catvod.utils.okhttp.OKCallBack;
  5. import com.github.catvod.utils.okhttp.OkHttpUtil;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Calendar;
  8. import java.util.Date;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import org.json.JSONArray;
  12. import org.json.JSONObject;
  13. import okhttp3.Call;
  14. public class Alist extends Spider {
  15. private String ext;
  16. public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> hashMap) {
  17. try {
  18. String url = this.ext + "/api/public/path";
  19. JSONObject params = new JSONObject();
  20. params.put("path", tid);
  21. JSONArray jSONArray2 = new JSONArray();
  22. OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, params.toString(), new OKCallBack.OKCallBackString() {
  23. @Override
  24. protected void onFailure(Call call, Exception e) {
  25. }
  26. @Override
  27. protected void onResponse(String response) {
  28. try {
  29. JSONObject retval = new JSONObject(response);
  30. JSONArray list = retval.getJSONObject("data").getJSONArray("files");
  31. for (int i =0; i < list.length(); ++i){
  32. JSONObject o = list.getJSONObject(i);
  33. String pic = o.getString("thumbnail");
  34. if(pic.isEmpty()){
  35. pic = "http://img1.3png.com/281e284a670865a71d91515866552b5f172b.png";
  36. }
  37. JSONObject jSONObject2 = new JSONObject();
  38. jSONObject2.put("vod_id", tid + (tid.charAt(tid.length()-1) == '/' ? "" : "/") + o.getString("name"));
  39. jSONObject2.put("vod_name", o.getString("name"));
  40. jSONObject2.put("vod_pic", pic);
  41. jSONObject2.put("vod_tag",o.getInt("type")==1 ? "folder" : "file" );
  42. jSONObject2.put("vod_remarks", o.getInt("type")==1 ? "文件夹" : "文件");
  43. jSONArray2.put(jSONObject2);
  44. }
  45. }catch (Exception e){
  46. e.printStackTrace();
  47. }
  48. }
  49. });
  50. JSONObject jSONObject3 = new JSONObject();
  51. jSONObject3.put("page", 1);
  52. jSONObject3.put("pagecount", 1);
  53. jSONObject3.put("limit", jSONArray2.length());
  54. jSONObject3.put("total", jSONArray2.length());
  55. jSONObject3.put("list", jSONArray2);
  56. return jSONObject3.toString();
  57. } catch (Exception e) {
  58. e.printStackTrace();
  59. return "";
  60. }
  61. }
  62. public String detailContent(List<String> ids) {
  63. try
  64. {
  65. String filename = ids.get(0);
  66. String url = this.ext + "/api/public/path";
  67. JSONObject params = new JSONObject();
  68. params.put("path", filename);
  69. JSONObject result = new JSONObject();
  70. JSONArray list = new JSONArray();
  71. OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, params.toString(), new OKCallBack.OKCallBackString() {
  72. @Override
  73. protected void onFailure(Call call, Exception e) {
  74. }
  75. @Override
  76. protected void onResponse(String response) {
  77. try {
  78. JSONObject retval = new JSONObject(response);
  79. JSONArray files = retval.getJSONObject("data").getJSONArray("files");
  80. for (int i =0; i < files.length(); ++i){
  81. JSONObject o = files.getJSONObject(i);
  82. String url = o.getString("url");
  83. if(url.indexOf("//") ==0){
  84. url = "http:"+url;
  85. }
  86. JSONObject jSONObject2 = new JSONObject();
  87. jSONObject2.put("vod_id", filename + "/" + o.getString("name"));
  88. jSONObject2.put("vod_name", o.getString("name"));
  89. jSONObject2.put("vod_pic", o.getString("thumbnail"));
  90. jSONObject2.put("vod_tag",o.getInt("type")==1 ? "folder" : "file" );
  91. jSONObject2.put("vod_play_from", "播放");
  92. jSONObject2.put("vod_play_url", o.getString("name")+"$"+url);
  93. list.put(jSONObject2);
  94. }
  95. }catch (Exception e){
  96. e.printStackTrace();
  97. }
  98. }
  99. });
  100. result.put("list", list);
  101. return result.toString();
  102. }
  103. catch (Exception e){
  104. e.printStackTrace();
  105. }
  106. return "";
  107. }
  108. String fileTime(long time, String fmt) {
  109. Calendar calendar = Calendar.getInstance();
  110. calendar.setTimeInMillis(time);
  111. Date date = calendar.getTime();
  112. SimpleDateFormat sdf = new SimpleDateFormat(fmt);
  113. return sdf.format(date);
  114. }
  115. public String homeContent(boolean z) {
  116. try {
  117. JSONArray classes = new JSONArray();
  118. JSONObject newCls = new JSONObject();
  119. newCls.put("type_id", "/");
  120. newCls.put("type_name", "Alist");
  121. newCls.put("type_flag", "1"); // 1 列表形式的文件夹 2 缩略图 0 或者不存在 表示正常
  122. classes.put(newCls);
  123. JSONArray jSONArray3 = new JSONArray();
  124. JSONObject jSONObject4 = new JSONObject();
  125. jSONObject4.put("class", classes);
  126. if(z) {
  127. jSONObject4.put("filters", new JSONObject("{}"));
  128. }
  129. return jSONObject4.toString();
  130. } catch (Exception e) {
  131. e.printStackTrace();
  132. return "";
  133. }
  134. }
  135. public void init(Context context, String ext){
  136. Alist.super.init(context);
  137. this.ext = ext;
  138. }
  139. public String playerContent(String str, String str2, List<String> list) {
  140. try{
  141. JSONObject result = new JSONObject();
  142. result.put("parse", 0);
  143. result.put("playUrl", "");
  144. result.put("url", str2);
  145. return result.toString();
  146. }catch (Exception e){
  147. e.printStackTrace();
  148. }
  149. return "";
  150. }
  151. public String searchContent(String str, boolean z) {
  152. try {
  153. return "";
  154. } catch (Exception e) {
  155. e.printStackTrace();
  156. return "";
  157. }
  158. }
  159. }