Skip to content

Commit

Permalink
update all entity, refactor all base api and event
Browse files Browse the repository at this point in the history
  • Loading branch information
zubinxiong committed Sep 24, 2016
1 parent c40dc5d commit d146add
Show file tree
Hide file tree
Showing 25 changed files with 908 additions and 426 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -8,4 +8,5 @@
/captures
.idea
libs/
app/src/main/java/me/ewriter/bangumitv/api/BangumiApi.java
app/src/main/java/me/ewriter/bangumitv/api/BangumiApi.java
/app/src/main/java/me/ewriter/bangumitv/api/WebApi.java
1 change: 1 addition & 0 deletions app/build.gradle
Expand Up @@ -99,6 +99,7 @@ dependencies {
compile rootProject.ext.dependencies["rxjavaAdapter"]
compile rootProject.ext.dependencies["rxbinding"]
compile rootProject.ext.dependencies["jsoup"]
compile rootProject.ext.dependencies["convert-scalars"]

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
Expand Down
50 changes: 41 additions & 9 deletions app/src/main/java/me/ewriter/bangumitv/api/ApiManagers.java
Expand Up @@ -4,36 +4,49 @@

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.CallAdapter;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;

/**
* Created by Zubin on 2016/7/25.
*/
public class ApiManagers {

public static final String API_BASE_URL = "http://api.bgm.tv/";
public static final String BANGUMI_BASE_URL = "http://api.bgm.tv/";
/** 网页地址 */
public static final String WEB_BASE_URL = "http://bgm.tv/";

public static final int DEFAULT_TIMEOUT = 10;

private static BangumiApi mBangumiApis;
private static BangumiApi sBangumiApis;

private static WebApi sWebApis;

protected static final Object monitor = new Object();

public static BangumiApi getBangumiSingleton() {
public static BangumiApi getBangumiInstance() {
synchronized (monitor) {
if (mBangumiApis == null) {
if (sBangumiApis == null) {
initBangumiApi();
}
return mBangumiApis;
return sBangumiApis;
}
}

private static void initBangumiApi() {
public static WebApi getWebInstance() {
synchronized (monitor) {
if (sWebApis == null) {
initWebApi();
}
return sWebApis;
}
}

Retrofit.Builder builder = new Retrofit.Builder().baseUrl(API_BASE_URL)
private static void initBangumiApi() {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(BANGUMI_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create());

Expand All @@ -47,7 +60,26 @@ private static void initBangumiApi() {

Retrofit retrofit = builder.client(client).build();

mBangumiApis = retrofit.create(BangumiApi.class);
sBangumiApis = retrofit.create(BangumiApi.class);
}

private static void initWebApi() {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(WEB_BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create());

HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
.build();

Retrofit retrofit = builder.client(client).build();

sWebApis = retrofit.create(WebApi.class);
}

}
50 changes: 50 additions & 0 deletions app/src/main/java/me/ewriter/bangumitv/api/WebApi.java
@@ -0,0 +1,50 @@
package me.ewriter.bangumitv.api;

import me.ewriter.bangumitv.api.response.BaseResponse;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;

/**
* Created by Zubin on 2016/9/19.
*/
public interface WebApi {

/**
* 获取用户的动画,游戏,图书等状态
* @param category anime 动画 game 游戏 book 图书
* @param userId 用户登录后的id
* @param type wish 想看 collect 看过 do在看 on_hold搁置 dropped 抛弃
* @param page 页数
* @return
*/
@GET("{category}/list/{userId}/{type}")
Observable<String> listCollection(@Path("category") String category,
@Path("userId") int userId, @Path("type") String type,
@Query("page") int page);

/**
* 网页条目搜索
* @param keyword 关键词
* @param category 分类,默认为 all 全部 ;1为书籍; 2为动画 ;3为音乐;4为游戏;6为三次元
* @param page 页数
* @return
*/
@GET("subject_search/{keyword}")
Observable<String> searchItem(@Path("keyword") String keyword,
@Query("cat") String category, @Query("page") int page);


/**
* 网页人物搜索
* @param keyword 关键词
* @param category 分类, 默认 all,全部;crt 虚拟角色;prsn 现实人物
* @param page 页数
* @return
*/
@GET("mono_search/{keyword}")
Observable<String> searchPerson(@Path("keyword") String keyword,
@Query("cat") String category, @Query("page") int page);
}
@@ -1,46 +1,16 @@
package me.ewriter.bangumitv.api.response;

import com.google.gson.annotations.SerializedName;

/**
* Created by Zubin on 2016/7/25.
* Created by Zubin on 2016/9/19.
*/
public class BaseResponse {
private String html;

/**
* request : /ep/638069/status/remove?source=onAir
* code : 200
* error : OK
*/

@SerializedName("request")
private String request;
@SerializedName("code")
private int code;
@SerializedName("error")
private String error;

public String getRequest() {
return request;
}

public void setRequest(String request) {
this.request = request;
}

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getError() {
return error;
public String getHtml() {
return html;
}

public void setError(String error) {
this.error = error;
public void setHtml(String html) {
this.html = html;
}
}

0 comments on commit d146add

Please sign in to comment.