
com.elypia.elypiai.dailymotion.Dailymotion Maven / Gradle / Ivy
package com.elypia.elypiai.dailymotion;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.async.Callback;
import com.mashape.unirest.http.exceptions.UnirestException;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
public class Dailymotion {
public static final String GET_VIDEO = "https://api.dailymotion.com/video/{id}";
public static final String PLAYLIST_VIDEOS = "https://api.dailymotion.com/playlist/{id}/videos";
public void getVideo(String videoId, Consumer success, Consumer failure) {
Unirest.get(GET_VIDEO).routeParam("id", videoId).asJsonAsync(new Callback() {
@Override
public void completed(HttpResponse response) {
success.accept(new DailymotionVideo(response.getBody().getObject()));
}
@Override
public void failed(UnirestException e) {
failure.accept(e);
}
@Override
public void cancelled() {
}
});
}
public void getVideosFromPlaylist(String playlistId, Consumer> success, Consumer failure) {
List videos = new ArrayList<>();
Map queryParams = new HashMap<>();
queryParams.put("limit", 100);
int page = 1;
queryParams.put("page", page++);
Unirest.get(PLAYLIST_VIDEOS).routeParam("id", playlistId).queryString(queryParams).asJsonAsync(new Callback() {
@Override
public void completed(HttpResponse response) {
JSONObject object = response.getBody().getObject();
JSONArray array = object.getJSONArray("list");
for (int i = 0; i < array.length(); i++)
videos.add(new DailymotionVideo(array.getJSONObject(i)));
success.accept(videos);
}
@Override
public void failed(UnirestException e) {
failure.accept(e);
}
@Override
public void cancelled() {
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy