All Downloads are FREE. Search and download functionalities are using the official Maven repository.

weiboclient4j.CommentService Maven / Gradle / Ivy

There is a newer version: 0.4.16
Show newest version
package weiboclient4j;

import weiboclient4j.model.Comment;
import weiboclient4j.model.CommentList;
import weiboclient4j.params.Cid;
import weiboclient4j.params.CommentOri;
import weiboclient4j.params.CommentParam;
import weiboclient4j.params.FilterByAuthor;
import weiboclient4j.params.FilterBySource;
import weiboclient4j.params.Id;
import weiboclient4j.params.Paging;
import weiboclient4j.params.WithoutMention;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * @author Hover Ruan
 */
public class CommentService extends AbstractService {

    public CommentService(WeiboClient client) {
        super(client);
    }

    public CommentList getComments(Id id) throws WeiboClientException {
        return getComments(id, Paging.EMPTY);
    }

    public CommentList getComments(Id id, Paging paging) throws WeiboClientException {
        return getComments(id, paging, FilterByAuthor.All);
    }

    public CommentList getComments(Id id, Paging paging, FilterByAuthor filterByAuthor) throws WeiboClientException {
        return doGet("comments/show",
                paging, withParams(id, filterByAuthor), CommentList.class);
    }

    public CommentList getCommentsByMe() throws WeiboClientException {
        return getCommentsByMe(Paging.EMPTY);
    }

    public CommentList getCommentsByMe(Paging paging) throws WeiboClientException {
        return getCommentsByMe(paging, FilterByAuthor.All);
    }

    public CommentList getCommentsByMe(Paging paging, FilterByAuthor filterByAuthor) throws WeiboClientException {
        return doGet("comments/by_me",
                paging, withParams(filterByAuthor), CommentList.class);
    }

    public CommentList getCommentsToMe() throws WeiboClientException {
        return getCommentsToMe(Paging.EMPTY);
    }

    public CommentList getCommentsToMe(Paging paging) throws WeiboClientException {
        return getCommentsToMe(paging, FilterByAuthor.All, FilterBySource.All);
    }

    public CommentList getCommentsToMe(Paging paging, FilterByAuthor filterByAuthor, FilterBySource filterBySource)
            throws WeiboClientException {
        return doGet("comments/to_me",
                paging, withParams(filterByAuthor, filterBySource), CommentList.class);
    }

    public CommentList getCommentsTimeline() throws WeiboClientException {
        return getCommentsTimeline(Paging.EMPTY);
    }

    public CommentList getCommentsTimeline(Paging paging) throws WeiboClientException {
        return doGet("comments/timeline", paging, CommentList.class);
    }

    public CommentList getMentionsComments() throws WeiboClientException {
        return getMentionsComments(Paging.EMPTY);
    }

    public CommentList getMentionsComments(Paging paging) throws WeiboClientException {
        return getMentionsComments(paging, FilterByAuthor.All, FilterBySource.All);
    }

    public CommentList getMentionsComments(Paging paging, FilterByAuthor filterByAuthor, FilterBySource filterBySource)
            throws WeiboClientException {
        return doGet("comments/mentions",
                paging, withParams(filterByAuthor, filterBySource), CommentList.class);
    }

    public List getCommentsBatch(Collection cids) throws WeiboClientException {
        return doGet("comments/show_batch",
                withParams(Cid.cidsParam(cids)), Comment.TYPE_COMMENT_LIST);
    }

    public Comment createComment(Id id, String comment) throws WeiboClientException {
        return createComment(id, comment, CommentOri.No);
    }

    public Comment createComment(Id id, CommentParam comment, CommentOri commentOri) throws WeiboClientException {
        return doPost("comments/create",
                withParams(id, comment, commentOri), Comment.class);
    }

    public Comment createComment(Id id, String comment, CommentOri commentOri) throws WeiboClientException {
        return createComment(id, new CommentParam(comment), commentOri);
    }

    public Comment destroyComment(Cid cid) throws WeiboClientException {
        return doPost("comments/destroy", withParams(cid), Comment.class);
    }

    public List destroyCommentBatch(Collection cids) throws WeiboClientException {
        List ids = new ArrayList(cids.size());
        for (Cid cid : cids) {
            ids.add(new Id(cid.getValue()));
        }

        return doPost("comments/destroy_batch",
                withParams(Id.idsParam(ids)), Comment.TYPE_COMMENT_LIST);
    }

    public Comment replyComment(Id id, Cid cid, String comment) throws WeiboClientException {
        return replyComment(id, cid, comment, WithoutMention.No, CommentOri.No);
    }

    public Comment replyComment(Id id, Cid cid, String comment, WithoutMention withoutMention, CommentOri commentOri)
            throws WeiboClientException {
        return replyComment(id, cid, new CommentParam(comment), withoutMention, commentOri);
    }

    public Comment replyComment(Id id, Cid cid, CommentParam comment, WithoutMention withoutMention,
                                CommentOri commentOri) throws WeiboClientException {
        return doPost("comments/reply",
                withParams(id, cid, comment, withoutMention, commentOri), Comment.class);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy