package com.socks.jiandan.net;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.socks.jiandan.model.Video;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
public class Request4Video extends Request<ArrayList<Video>> {
private Response.Listener<ArrayList<Video>> listener;
public Request4Video(String url, Response.Listener<ArrayList<Video>> listener,
Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.listener = listener;
}
@Override
protected Response<ArrayList<Video>> parseNetworkResponse(NetworkResponse response) {
try {
String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
JSONObject jsonObject = new JSONObject(jsonStr);
if ("ok".equals(jsonObject.optString("status"))) {
JSONArray commentsArray = jsonObject.optJSONArray("comments");
ArrayList<Video> videos = new ArrayList<>();
for (int i = 0; i < commentsArray.length(); i++) {
JSONObject commentObject = commentsArray.getJSONObject(i);
JSONObject videoObject = commentObject.optJSONArray("videos").optJSONObject(0);
if (videoObject != null) {
Video video = new Video();
video.setTitle(videoObject.optString("title"));
String videoSource = videoObject.optString("video_source");
video.setComment_ID(commentObject.optString("comment_ID"));
video.setVote_positive(commentObject.optString("vote_positive"));
video.setVote_negative(commentObject.optString("vote_negative"));
video.setVideo_source(videoSource);
if (videoSource.equals("youku")) {
video.setUrl(videoObject.optString("link"));
video.setDesc(videoObject.optString("description"));
video.setImgUrl(videoObject.optString("thumbnail"));
video.setImgUrl4Big(videoObject.optString("thumbnail_v2"));
} else if (videoSource.equals("56")) {
video.setUrl(videoObject.optString("url"));
video.setDesc(videoObject.optString("desc"));
video.setImgUrl4Big(videoObject.optString("img"));
video.setImgUrl(videoObject.optString("mimg"));
} else if (videoSource.equals("tudou")) {
video.setUrl(videoObject.optString("playUrl"));
video.setImgUrl(videoObject.optString("picUrl"));
video.setImgUrl4Big(videoObject.optString("picUrl"));
video.setDesc(videoObject.optString("description"));
}
videos.add(video);
}
}
return Response.success(videos, HttpHeaderParser.parseCacheHeaders(response));
} else {
return Response.success(new ArrayList<Video>(), HttpHeaderParser.parseCacheHeaders(response));
}
} catch (Exception e) {
e.printStackTrace();
return Response.error(new ParseError(e));
}
}
@Override
protected void deliverResponse(ArrayList<Video> response) {
listener.onResponse(response);
}
}