Skip to content

Commit

Permalink
修复图片 API
Browse files Browse the repository at this point in the history
  • Loading branch information
iMeiji committed Jul 8, 2017
1 parent a71d7bd commit 83a5d2a
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 13 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/meiji/toutiao/api/IPhotoApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ public interface IPhotoApi {
* 获取图片标题等信息
* http://www.toutiao.com/api/article/feed/?category=类型&as=A115C8457F69B85&cp=585F294B8845EE1&_=时间&count=30
*/
@GET("api/article/feed/?as=A115C8457F69B85&cp=585F294B8845EE1&count=30")
@GET("http://www.toutiao.com/api/pc/feed/?as=A115C8457F69B85&cp=585F294B8845EE1")
Observable<PhotoArticleBean> getPhotoArticle(
@Query("category") String category,
@Query("_") String time);
@Query("max_behot_time") String time);

/**
* 获取图片内容HTML内容
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,12 @@ protected void onBindViewHolder(@NonNull ViewHolder holder, @NonNull final Photo
}
String tv_source = item.getSource();
String tv_datetime = item.getBehot_time() + "";
String comments_count = item.getComments_count() + "评论";
if (!TextUtils.isEmpty(tv_datetime)) {
tv_datetime = TimeUtil.getTimeStampAgo(tv_datetime);
}
holder.tv_title.setText(tv_title);
holder.tv_extra.setText(tv_source + " - " + tv_datetime);
holder.tv_extra.setText(tv_source + " - " + comments_count + " - " + tv_datetime);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,6 @@ interface Presenter extends IBasePresenter {
*/
void doSaveImage();

void doGoMediaHome(String media_url);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,11 @@

import com.meiji.toutiao.R;
import com.meiji.toutiao.adapter.photo.PhotoContentAdapter;
import com.meiji.toutiao.api.INewsApi;
import com.meiji.toutiao.bean.photo.PhotoArticleBean;
import com.meiji.toutiao.bean.photo.PhotoGalleryBean;
import com.meiji.toutiao.module.base.BaseFragment;
import com.meiji.toutiao.module.media.home.MediaHomeActivity;
import com.meiji.toutiao.module.photo.comment.PhotoCommentFragment;
import com.meiji.toutiao.util.SettingUtil;
import com.meiji.toutiao.util.StringUtil;
import com.meiji.toutiao.widget.ViewPagerFixed;

import permissions.dispatcher.NeedsPermission;
Expand Down Expand Up @@ -88,13 +85,12 @@ protected int attachLayoutId() {
protected void initData() {
Bundle bundle = getArguments();
PhotoArticleBean.DataBean dataBean = bundle.getParcelable(TAG);
shareUrl = INewsApi.HOST + dataBean.getSource_url();
shareUrl = dataBean.getSource_url();
shareTitle = dataBean.getTitle();
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(shareTitle);
groupId = dataBean.getGroup_id() + "";
itemId = dataBean.getGroup_id() + "";
mediaUrl = dataBean.getMedia_url();
mediaId = StringUtil.getStringNum(mediaUrl);
presenter.doLoadData(shareUrl);
}

Expand Down Expand Up @@ -208,12 +204,8 @@ public boolean onOptionsItemSelected(MenuItem item) {
.commit();
break;

// case R.id.action_follow_media:
// MediaAddActivity.launch(mediaUrl, "photo");
// break;

case R.id.action_open_media_home:
MediaHomeActivity.launch(mediaId);
presenter.doGoMediaHome(mediaUrl);
break;

case R.id.action_open_in_browser:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.meiji.toutiao.api.IPhotoApi;
import com.meiji.toutiao.bean.news.NewsContentBean;
import com.meiji.toutiao.bean.photo.PhotoGalleryBean;
import com.meiji.toutiao.module.media.home.MediaHomeActivity;
import com.meiji.toutiao.util.SettingUtil;

import org.jsoup.Jsoup;
Expand All @@ -30,6 +31,7 @@
import java.io.StringReader;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
Expand Down Expand Up @@ -350,4 +352,46 @@ private String getHTML(NewsContentBean bean) {
return null;
}
}

@Override
public void doGoMediaHome(final String media_url) {
Observable
.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
try {
Response<ResponseBody> response = RetrofitFactory.getRetrofit().create(INewsApi.class)
.getNewsContentRedirectUrl(shareUrl).execute();
// 获取重定向后的 URL 用于拼凑API
if (response.isSuccessful()) {
HttpUrl httpUrl = response.raw().request().url();
String api = httpUrl + "info/";
e.onNext(api);
} else {
e.onComplete();
}
} catch (Exception e1) {
e.onComplete();
ErrorAction.print(e1);
}
}
})
.throttleFirst(1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.switchMap(new Function<String, ObservableSource<NewsContentBean>>() {
@Override
public ObservableSource<NewsContentBean> apply(@NonNull String s) throws Exception {
return RetrofitFactory.getRetrofit().create(INewsApi.class).getNewsContent(s);
}
})
.observeOn(AndroidSchedulers.mainThread())
.compose(view.<NewsContentBean>bindToLife())
.subscribe(new Consumer<NewsContentBean>() {
@Override
public void accept(@NonNull NewsContentBean bean) throws Exception {
String id = bean.getData().getMedia_user().getId() + "";
MediaHomeActivity.launch(id);
}
}, ErrorAction.error());
}
}

0 comments on commit 83a5d2a

Please sign in to comment.