Package com.dongxuexidu.douban4j.playground

Source Code of com.dongxuexidu.douban4j.playground.PlayGround

package com.dongxuexidu.douban4j.playground;

import com.dongxuexidu.douban4j.constants.DefaultConfigs;
import com.dongxuexidu.douban4j.model.app.AccessToken;
import com.dongxuexidu.douban4j.model.app.DoubanException;
import com.dongxuexidu.douban4j.model.app.RequestGrantScope;
import com.dongxuexidu.douban4j.model.common.DoubanAttributeObj;
import com.dongxuexidu.douban4j.model.common.DoubanTagObj;
import com.dongxuexidu.douban4j.model.shuo.DoubanShuoAttachementObj;
import com.dongxuexidu.douban4j.model.shuo.DoubanShuoMediaObj;
import com.dongxuexidu.douban4j.model.shuo.DoubanShuoStatusObj;
import com.dongxuexidu.douban4j.model.shuo.DoubanShuoUserObj;
import com.dongxuexidu.douban4j.model.subject.DoubanSubjectObj;
import com.dongxuexidu.douban4j.provider.OAuthDoubanProvider;
import com.dongxuexidu.douban4j.service.DoubanBookMovieMusicService;
import com.dongxuexidu.douban4j.service.DoubanMailService;
import com.dongxuexidu.douban4j.service.DoubanShuoService;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.JsonObjectParser;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.client.xml.XmlNamespaceDictionary;
import com.google.api.client.xml.XmlObjectParser;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Zhibo Wei <uglytroll@dongxuexidu.com>
*/
public class PlayGround {

  /**
   * <entry xmlns="http://www.w3.org/2005/Atom"
   * xmlns:db="http://www.douban.com/xmlns/"
   * xmlns:gd="http://schemas.google.com/g/2005"
   * xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
   * xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/"> @param args
   */
  public static void main(String[] args) {
    testAccessToken();
  }
 
  public static void testAtomParse () {
    FileInputStream fis = null;
    try {
      XmlNamespaceDictionary nameSpace = new XmlNamespaceDictionary().set("", "http://www.w3.org/2005/Atom").set("db", "http://www.douban.com/xmlns/").set("gd", "http://schemas.google.com/g/2005").set("openSearch", "http://a9.com/-/spec/opensearchrss/1.0/").set("opensearch", "http://a9.com/-/spec/opensearchrss/1.0/");
      XmlObjectParser parser = new XmlObjectParser(nameSpace);
      //JsonObjectParser parser = new JsonObjectParser(new JacksonFactory());
      fis = new FileInputStream("/home/zwei/doubantestxml");
      DoubanPeopleEntry result = parser.parseAndClose(fis, Charset.forName("utf-8"), DoubanPeopleEntry.class);
      System.out.println("result : " + result);
    } catch (FileNotFoundException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      try {
        fis.close();
      } catch (IOException ex) {
        Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
  }

  public static String testAccessToken() {
    try {
      OAuthDoubanProvider oauth = new OAuthDoubanProvider();
      oauth.setApiKey("xxx").setSecretKey("xxx");
      oauth.addScope(RequestGrantScope.BASIC_COMMON_SCOPE).addScope(RequestGrantScope.SHUO_READ_SCOPE).addScope(RequestGrantScope.SHUO_WRITE_SCOPE)
              .addScope(RequestGrantScope.BASIC_NOTE_SCOPE).addScope(RequestGrantScope.BOOK_READ_SCOPE).addScope(RequestGrantScope.EVENT_READ_SCOPE).addScope(RequestGrantScope.EVENT_WRITE_SCOPE)
              .addScope(RequestGrantScope.MAIL_READ_SCOPE).addScope(RequestGrantScope.MAIL_WRITE_SCOPE).addScope(RequestGrantScope.MOVIE_READ_SCOPE).addScope(RequestGrantScope.MUSIC_READ_SCOPE);
      oauth.setRedirectUrl("http://www.dongxuexidu.com");
      BrowserLauncher.openURL(oauth.getGetCodeRedirectUrl());
      System.out.println(oauth.getGetCodeRedirectUrl());
      System.out.print("Put the code you got here.[Enter]:");
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      String code = br.readLine();
      System.out.println("code : " + code);
      AccessToken at = oauth.tradeAccessTokenWithCode(code);
      System.out.println("at : " + at.getAccessToken());
      System.out.println("uid : " + at.getDoubanUserId());
      return at.getAccessToken();
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
      return null;
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
      return null;
    }
  }
 
  public static void testSendingDoumail () {
    try {
      String accessToken = testAccessToken();
      DoubanMailService service = new DoubanMailService(accessToken);
      if (service.sendMail("abei", "test!", "ceshi")) {
        System.out.println("done!");
      } else {
        System.out.println("o shit");
      }
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testGetBookInfo () {
    try {
      long bookId = 2023013;
      DoubanBookMovieMusicService service = new DoubanBookMovieMusicService();
      DoubanSubjectObj book = service.getMusicInfoById(2272292);
      System.out.println("title : " + book.getTitle());
      for (DoubanTagObj tag : book.getTags()) {
        System.out.println("tag, count : " + tag.getCount() + " , name : " + tag.getName());
      }
      System.out.println("rating, min : " + book.getRating().getMin() + ", max : " + book.getRating().getMax() + " , value : " + book.getRating().getValue() + " , count : " + book.getRating().getNumberOfRaters() + " , avg : " + book.getRating().getAverage());
      System.out.println("author : " + book.getAuthors().get(0).getName());
      for (DoubanAttributeObj att : book.getAttributes()) {
        System.out.println("att, name : " + att.getName() + " , value : " + att.getValue());
      }
      System.out.println("summary : " + book.getSummary());
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testGetDoubanShuoStatuses () {
    try {
      DoubanShuoService service = new DoubanShuoService();
      DoubanShuoStatusObj[] result = service.getStatusesByUserId("xxx");
      System.out.println("size : " + result.length);
      for (DoubanShuoStatusObj s : result) {
        System.out.println("text : " + s.getText() + " , title : " + s.getTitle());
      }
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testPostStatus () {
    try {
      String accessToken = testAccessToken();
      DoubanShuoService service = new DoubanShuoService();
      DoubanShuoAttachementObj att = generateAtt();
      if (service.postNewStatus("I like..", att, DefaultConfigs.API_KEY, accessToken)) {
        System.out.println("done!");
      } else {
        System.out.println("failed!");
      }
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testGetDoubanShuoUser () {
    try {
      DoubanShuoService service = new DoubanShuoService();
      DoubanShuoUserObj[] users = service.getFollowingUserByUserId("xxx");
      for (DoubanShuoUserObj user : users) {
        System.out.println("user name : " + user.getScreenName());
        System.out.println("user id : " + user.getUid());
        System.out.println("user full id : " + user.getId());
      }
      System.out.println("size : " + users.length);
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testFollowUser () {
    try {
      String accessToken = testAccessToken();
      DoubanShuoService service = new DoubanShuoService();
      boolean result = service.followUser("xxx", DefaultConfigs.API_KEY,accessToken);
      if (result) {
        System.out.println("done!");
      } else {
        System.out.println("failed!");
      }
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  public static void testGetRelationShip() {
    try {
      DoubanShuoService service = new DoubanShuoService();
      DoubanShuoService.DoubanShuoRelation relation = service.getRelationship("xxx", "xxx", DefaultConfigs.API_KEY);
      if (relation == DoubanShuoService.DoubanShuoRelation.FollowingOnly) {
        System.out.println("following");
      } else if (relation == DoubanShuoService.DoubanShuoRelation.BeFollowedOnly) {
        System.out.println("followed by");
      } else if (relation == DoubanShuoService.DoubanShuoRelation.Friend) {
        System.out.println("friend");
      } else {
        System.out.println("stranger");
      }
    } catch (DoubanException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  private static void parseJson () {
    try {
      DoubanShuoAttachementObj att = generateAtt();
      JsonHttpContent content = new JsonHttpContent(new JacksonFactory(), att);
      ByteArrayOutputStream os = new ByteArrayOutputStream();
      content.writeTo(os);
      String result = new String(os.toByteArray());
      System.out.println("result ! : " + result);
      System.out.println("getdate : " + (String)content.getData());
    } catch (IOException ex) {
      Logger.getLogger(PlayGround.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 
  private static DoubanShuoAttachementObj generateAtt () {
    DoubanShuoMediaObj media = new DoubanShuoMediaObj();
    media.setHref("http://www.dongxuexidu.com");
    media.setSrc("http://www.dongxuexidu.com/img/logo75.jpg");
    media.setType("image");
    DoubanShuoAttachementObj att = new DoubanShuoAttachementObj();
    List<DoubanShuoMediaObj> ms = new ArrayList<DoubanShuoMediaObj>();
    ms.add(media);
    att.setMedias(ms);
    att.setDescription("http://www.dongxuexidu.com");
    att.setCaption("");
    att.setExpanedHref("http://www.dongxuexidu.com");
    att.setHref("http://www.dongxuexidu.com");
    att.setTitle("东学西读");
    att.setType("");
    return att;
  }
 
}
TOP

Related Classes of com.dongxuexidu.douban4j.playground.PlayGround

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.