package party.danyang.nationalgeographic.net.random;
import java.util.HashMap;
import java.util.Map;
import party.danyang.nationalgeographic.model.random.Random;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.QueryMap;
import rx.Observable;
/**
* Created by dream on 16-8-22.
*/
public class NGApi_random {
public static final String BASE_URL = "http://yourshot.nationalgeographic.com/";
public interface JsonApi {
//http://yourshot.nationalgeographic.com/oembed?url=http://yourshot.nationalgeographic.com/photos/8839992/&format=json
@GET("oembed")
Observable<Random> loadJson(@QueryMap Map<String, String> query);
}
public interface ImgApi {
//用jsoup解析
@GET("photos/{id}")
Observable<String> loadImgHtml(@Path("id") String id);
}
public static final Observable<Random> loadRandomJson(int id) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
Map<String, String> query = new HashMap<>();
query.put("url", BASE_URL + "photos/" + id + "/");
query.put("format", "json");
return retrofit.create(JsonApi.class).loadJson(query);
}
public static final Observable<String> loadRandomHtml(int id) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
return retrofit.create(ImgApi.class).loadImgHtml(String.valueOf(id));
}
}