コード例 #1
0
ファイル: Announcer.java プロジェクト: mushanga/socialgraph
  public void reply(long anId, long statusId) throws Exception {

    Announcement an = announcementMgr.getAnnouncementById(anId);

    Announcer customer = announcerMgr.getAnnouncer(an.getCustomerId());

    if (customer == null) {

      throw new Exception("Customer not found for announcement: " + an.getId());
    }
    // Product product = productMgr.getProductById(an.getProductId());
    String cause = announcementMgr.getAnnouncementReasonStatusText(anId);

    // tweey check
    String customerName = customer.getName();
    String tweet = "";
    Message msg = msgMgr.generateMessageForAnnouncement(an.getId());
    tweet = msg.getTextWithParametersAdded();
    announcementMgr.updateSetMessage(an.getId(), tweet, msg.getId());
    //
    // logger.info(getScreenName() + " is following " + customerName +
    // " before replying...");
    // follow(an.getCustomerId());

    try {

      long tweetId = -1;
      logger.info(
          getScreenName()
              + " is replying "
              + customerName
              + " : "
              + tweet
              + "\nBecause of: @"
              + customerName
              + ":"
              + cause);
      tweetId = reply(tweet, statusId);
      announcementMgr.updateSetTweetId(anId, tweetId);

    } catch (TwitterException e) {
      ExceptionUtil.getInstance().handleError(e);
    }
  }
コード例 #2
0
ファイル: Announcer.java プロジェクト: mushanga/socialgraph
@XmlRootElement
public class Announcer implements DataObjectIF {
  public static final String ANNOUNCER = "announcer";
  MessageMgrImpl msgMgr = MessageMgrImpl.getInstance();

  ExceptionUtil exutil = ExceptionUtil.getInstance();
  Util util = Util.getInstance();
  private static Logger logger = Logger.getLogger(Announcer.class);
  long id;
  private int resetTimeInSecs;
  String screenName;
  String consumerKey = null;
  String consumerSecret = null;
  String accessToken = null;
  String accessTokenSecret = null;
  String name;
  String surname;
  String email;
  String password;
  String longName;
  String description;
  String location;
  String url;
  String pictureUrl;

  private boolean suspended;
  private boolean training;
  private String sesId = null;
  private String authToken = null;
  int maxFamousPeople2Follow = 0;
  int famousPeopleFollowed = 0;
  private int following = 0;
  private int follower = 0;

  ProductMgrImpl productMgr = ProductMgrImpl.getInstance();
  ReasonMgrImpl reasonMgr = ReasonMgrImpl.getInstance();
  AnnouncementMgrImpl announcementMgr = AnnouncementMgrImpl.getInstance();
  AnnouncerMgrImpl announcerMgr = AnnouncerMgrImpl.getInstance();
  Twitter twitter = null;

  private long creationTime;
  private long suspensionTime;

  public List<Announcer> followingList = new ArrayList<Announcer>();

  @Override
  public void getDataFromResultSet(ResultSet rs) throws SQLException {
    this.setId(rs.getLong("id"));
    this.setScreenName(rs.getString("screenName"));
    this.setConsumerKey(rs.getString("consumerKey"));
    this.setConsumerSecret(rs.getString("consumerSecret"));
    this.setAccessToken(rs.getString("accessToken"));
    this.setAccessTokenSecret(rs.getString("accessTokenSecret"));
    this.setName(rs.getString("name"));
    this.setSurname(rs.getString("surname"));
    this.setEmail(rs.getString("email"));
    this.setPassword(rs.getString("password"));
    this.setSuspended(rs.getBoolean("suspended"));
    this.setTraining(rs.getBoolean("training"));
    this.setMaxFamousPeople2Follow(rs.getInt("maxFamousAccount2Follow"));
    this.setFamousPeopleFollowed(rs.getInt("famousAccountFollowed"));
    this.setFollower(rs.getInt("follower"));
    this.setFollowing(rs.getInt("following"));
    this.setAuthToken(rs.getString("authtoken"));
    this.setSesId(rs.getString("sesid"));
    this.setPictureUrl(rs.getString("pictureUrl"));
    this.setLongName(rs.getString("longName"));
    this.setDescription(rs.getString("description"));
    this.setLocation(rs.getString("location"));
    this.setUrl(rs.getString("url"));
    this.setResetTimeInSecs(rs.getInt("resetTimeInSecs"));

    try {
      this.setCreationTime(rs.getTimestamp("creationtime").getTime());
    } catch (Exception ex) {

    }
    try {
      this.setSuspensionTime(rs.getTimestamp("suspensiontime").getTime());
    } catch (Exception ex) {

    }
  }

  public Twitter getTwitterProxy() throws TwitterException {
    if (twitter == null) {

      TwitterFactory tf = new TwitterFactory();
      twitter = tf.getInstance();

      twitter.setOAuthConsumer(getConsumerKey(), getConsumerSecret());
      twitter.setOAuthAccessToken(new AccessToken(getAccessToken(), getAccessTokenSecret()));
    }
    return twitter;
  }

  public String getScreenName() {
    return screenName;
  }

  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }

  public void setScreenName(String name) {
    this.screenName = name;
  }

  public String getConsumerKey() {
    return consumerKey;
  }

  public void setConsumerKey(String consumerKey) {
    this.consumerKey = consumerKey;
  }

  public String getConsumerSecret() {
    return consumerSecret;
  }

  public void setConsumerSecret(String consumerSecret) {
    this.consumerSecret = consumerSecret;
  }

  public String getAccessToken() {
    return accessToken;
  }

  public void setAccessToken(String accessToken) {
    this.accessToken = accessToken;
  }

  public String getAccessTokenSecret() {
    return accessTokenSecret;
  }

  public void setAccessTokenSecret(String accessTokenSecret) {
    this.accessTokenSecret = accessTokenSecret;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getSurname() {
    return surname;
  }

  public void setSurname(String surname) {
    this.surname = surname;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public int getMaxFamousPeople2Follow() {
    return maxFamousPeople2Follow;
  }

  public void setMaxFamousPeople2Follow(int maxFamousPeople2Follow) {
    this.maxFamousPeople2Follow = maxFamousPeople2Follow;
  }

  public int getFamousPeopleFollowed() {
    return famousPeopleFollowed;
  }

  public void setFamousPeopleFollowed(int famousPeopleFollowed) {
    this.famousPeopleFollowed = famousPeopleFollowed;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String toString() {

    String str =
        "\n"
            + "screenName="
            + screenName
            + "\n"
            + "consKey="
            + consumerKey
            + "\n"
            + "consSecret="
            + consumerSecret
            + "\n"
            + "accToken="
            + accessToken
            + "\n"
            + "accSecret="
            + accessTokenSecret
            + "\n"
            + "name="
            + name
            + "\n"
            + "surname="
            + surname
            + "\n"
            + "email="
            + email
            + "\n"
            + "training="
            + training
            + "\n";
    return str;
  }

  public void tweet(String tweet) throws TwitterException {
    getTwitterProxy().updateStatus(tweet);
  }

  public void follow(long userId) throws TwitterException {
    getTwitterProxy().createFriendship(userId);
  }

  public boolean unfollow(long userId) {
    boolean result = false;
    try {
      getTwitterProxy().destroyFriendship(userId);
      result = true;

    } catch (TwitterException e) {
      logger.error("Error while unfollowing: " + userId + " Announcer: " + screenName);
      ExceptionUtil.getInstance().handleError(e);
      result = false;
    }
    return result;
  }

  public void favorite(long statusId) throws Exception {
    try {
      getTwitterProxy().createFavorite(statusId);
    } catch (TwitterException e) {
      logger.error("Error while creating favorite: " + statusId + " Announcer: " + screenName);
    }
  }

  public long reply(String message, long statusId) throws Exception {
    long replyStatus = -1;
    try {
      Status status =
          getTwitterProxy().updateStatus(new StatusUpdate("message").inReplyToStatusId(statusId));
      replyStatus = status.getId();
    } catch (TwitterException e) {
      logger.error("Error while replying: " + statusId + " Announcer: " + screenName);
    }
    return replyStatus;
  }

  public void retweet(long statusId) throws Exception {
    try {
      getTwitterProxy().retweetStatus(statusId);
    } catch (TwitterException e) {
      logger.error("Error while retweeting: " + statusId + " Announcer: " + screenName);
    }
  }

  public void announce(long anId) {
    //
    // Announcement an = announcementMgr.getAnnouncementById(anId);

    try {
      String tweet = "";

      Message msg = msgMgr.generateMessageForAnnouncement(anId);
      tweet = msg.getTextWithParametersAdded();
      announcementMgr.updateSetMessage(anId, tweet, msg.getId());
      logger.info(getScreenName() + " is tweeting :" + tweet);
      tweet(tweet);
    } catch (TwitterException e) {
      ExceptionUtil.getInstance().handleError(e);
    } catch (Exception e) {
      logger.error("Error", e);
    }
  }

  public void reply(long anId, long statusId) throws Exception {

    Announcement an = announcementMgr.getAnnouncementById(anId);

    Announcer customer = announcerMgr.getAnnouncer(an.getCustomerId());

    if (customer == null) {

      throw new Exception("Customer not found for announcement: " + an.getId());
    }
    // Product product = productMgr.getProductById(an.getProductId());
    String cause = announcementMgr.getAnnouncementReasonStatusText(anId);

    // tweey check
    String customerName = customer.getName();
    String tweet = "";
    Message msg = msgMgr.generateMessageForAnnouncement(an.getId());
    tweet = msg.getTextWithParametersAdded();
    announcementMgr.updateSetMessage(an.getId(), tweet, msg.getId());
    //
    // logger.info(getScreenName() + " is following " + customerName +
    // " before replying...");
    // follow(an.getCustomerId());

    try {

      long tweetId = -1;
      logger.info(
          getScreenName()
              + " is replying "
              + customerName
              + " : "
              + tweet
              + "\nBecause of: @"
              + customerName
              + ":"
              + cause);
      tweetId = reply(tweet, statusId);
      announcementMgr.updateSetTweetId(anId, tweetId);

    } catch (TwitterException e) {
      ExceptionUtil.getInstance().handleError(e);
    }
  }

  public boolean isSuspended() {
    return suspended;
  }

  public void setSuspended(boolean suspended) {
    this.suspended = suspended;
  }

  /** @return the creationTime */
  public long getCreationTime() {
    return creationTime;
  }

  public String getCreationTimeStr() {
    return util.timeToString(creationTime);
  }

  public int getFollowing() {
    return following;
  }

  public void setFollowing(int following) {
    this.following = following;
  }

  public int getFollower() {
    return follower;
  }

  public void setFollower(int follower) {
    this.follower = follower;
  }

  /** @param creationTime the creationTime to set */
  public void setCreationTime(long creationTime) {
    this.creationTime = creationTime;
  }

  /** @return the training */
  public boolean isTraining() {
    return training;
  }

  /** @param training the training to set */
  public void setTraining(boolean training) {
    this.training = training;
  }

  public boolean canFollowMoreFamousPeople() {
    return maxFamousPeople2Follow > famousPeopleFollowed;
  }

  /** @return the sesId */
  public String getSesId() {
    return sesId;
  }

  /** @param sesId the sesId to set */
  public void setSesId(String sesId) {
    this.sesId = sesId;
  }

  /** @return the authToken */
  public String getAuthToken() {
    return authToken;
  }

  /** @param authToken the authToken to set */
  public void setAuthToken(String authToken) {
    this.authToken = authToken;
  }

  /** @return the suspensionTime */
  public long getSuspensionTime() {
    return suspensionTime;
  }

  /** @param suspensionTime the suspensionTime to set */
  public void setSuspensionTime(long suspensionTime) {
    this.suspensionTime = suspensionTime;
  }

  public String getLongName() {
    return longName;
  }

  public void setLongName(String longName) {
    this.longName = longName;
  }

  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public String getLocation() {
    return location;
  }

  public void setLocation(String location) {
    this.location = location;
  }

  public String getUrl() {
    return url;
  }

  public void setUrl(String url) {
    this.url = url;
  }

  public String getPictureUrl() {
    return pictureUrl;
  }

  public void setPictureUrl(String pictureUrl) {
    this.pictureUrl = pictureUrl;
  }

  public List<Announcer> getFollowingList() {
    return followingList;
  }

  public void setFollowingList(List<Announcer> followingList) {
    this.followingList = followingList;
  }

  public int getResetTimeInSecs() {
    return resetTimeInSecs;
  }

  public void setResetTimeInSecs(int resetTimeInSecs) {
    this.resetTimeInSecs = resetTimeInSecs;
  }
}