Package com.jeck.microblogging.server

Source Code of com.jeck.microblogging.server.SinaWeibo

package com.jeck.microblogging.server;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import weibo4j.Timeline;
import weibo4j.Weibo;
import weibo4j.http.AccessToken;
import weibo4j.model.Paging;
import weibo4j.model.Status;
import weibo4j.model.StatusWapper;
import weibo4j.model.WeiboException;

import com.jeck.microblogging.shared.Blog;
import com.jeck.microblogging.shared.BlogFeature;
import com.jeck.microblogging.shared.Page;
import com.jeck.microblogging.shared.interfaces.ICallBackParameter;
import com.jeck.microblogging.shared.interfaces.IWeibo;

public class SinaWeibo implements IWeibo {
  Logger logger = Logger.getLogger(SinaWeibo.class.getName());

  @Override
  public long getAllWeiboCount(ICallBackParameter para) {
    AccessToken at = para.getParameter(ICallBackParameter.ACCESS_TOKEN,
        AccessToken.class);

    if (null == at) {
      logger.warning("Access Token is NULL");
    }

    Weibo weibo = new Weibo();
    weibo.setToken(at.getAccessToken());
    Timeline tm = new Timeline();
    try {
      StatusWapper status = tm.getHomeTimeline();
      return status.getTotalNumber();
    } catch (WeiboException e) {
      e.printStackTrace();
    }
    return 0;
  }

  @Override
  public List<Blog> getAllWeibo(ICallBackParameter para, Page page,
      BlogFeature feature) {
    AccessToken at = para.getParameter(ICallBackParameter.ACCESS_TOKEN,
        AccessToken.class);

    if (null == at) {
      logger.warning("Access Token is NULL");
    }

    Weibo weibo = new Weibo();
    weibo.setToken(at.getAccessToken());
    Timeline tm = new Timeline();
    try {
      Paging paging = new Paging();
      if (page.getCount() >= 0) {
        paging.setCount(page.getCount());
      }
      if (page.getMaxId() >= 0) {
        paging.setMaxId(page.getMaxId());
      }
      if (page.getPage() >= 0) {
        paging.setPage(page.getPage());
      }
      if (page.getSinceId() >= 0) {
        paging.setSinceId(page.getSinceId());
      }

      logger.info("paging:" + paging);
      StatusWapper status = tm.getHomeTimeline(0,
          BlogFeature.getIntValue(feature), paging);
      if (null != status) {
        List<Blog> blogs = new ArrayList<Blog>();
        for (Status statu : status.getStatuses()) {
          Blog blog = new Blog();
          blog.setAuthor(statu.getUser().getName());
          blog.setDate(statu.getCreatedAt());
          blog.setText(statu.getText());
          blog.setId(Long.parseLong(statu.getId()));
          blog.setBmiddlePic(statu.getBmiddlePic());
          blog.setCommentsCount(statu.getCommentsCount());
          blog.setOriginalPic(statu.getOriginalPic());
          blog.setRepostsCount(statu.getRepostsCount());
          blog.setThumbnailPic(statu.getThumbnailPic());
          setSrcBlog(statu, blog);
          blogs.add(blog);
        }
        return blogs;
      }
    } catch (WeiboException e) {
      e.printStackTrace();
    }
    return null;
  }

  private void setSrcBlog(Status parent, Blog blog) {
    if (null != parent && parent.getRetweetedStatus() != null) {
      Status statu = parent.getRetweetedStatus();
      Blog src = new Blog();
      if (statu.getUser() != null)
        src.setAuthor(statu.getUser().getName());
      src.setDate(statu.getCreatedAt());
      src.setText(statu.getText());
      src.setId(Long.parseLong(statu.getId()));
      src.setBmiddlePic(statu.getBmiddlePic());
      src.setCommentsCount(statu.getCommentsCount());
      src.setOriginalPic(statu.getOriginalPic());
      src.setRepostsCount(statu.getRepostsCount());
      src.setThumbnailPic(statu.getThumbnailPic());
      blog.setSrcBlog(src);
      setSrcBlog(statu, src);
    }
  }

}
TOP

Related Classes of com.jeck.microblogging.server.SinaWeibo

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.