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

ir.sadeghpro.insta.client.Post Maven / Gradle / Ivy

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ir.sadeghpro.insta.client;


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

/**
 *
 * @author peter
 */
public class Post {
    private String id;
    private TypeName typename;
    private String caption;
    private String shortcode;
    private int comment;
    private boolean commentsDisabled;
    private int timestamp;
    private Dimension dimensions = new Dimension();
    private String displayUrl;
    private int like;
    private String ownerId;
    private boolean isVideo;
    private int videoViewCount = 0;
    private Location location;
    private String videoUrl;
    private Post[] sidecars;
    private List comments = new ArrayList<>();

    public enum TypeName{
        Sidecar("GraphSidecar"),
        Video("GraphVideo"),
        Image("GraphImage"),
        Unknown("Unknown");
        TypeName(String name){
            this.name=name;
        }
        private String name;

        public String toString(){
            return this.name;
        }
    }


    /**
     * get String id of post on instagram to use in other method
     * @return String id
     */
    public String getId() {
        return id;
    }

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

    /**
     * get type name of post like "GraphVideo" and "GraphImage"
     * @return String type
     */
    public TypeName getTypename() {
        return typename;
    }

    public void setTypename(TypeName typename) {
        this.typename = typename;
    }

    public void setTypename(String typename){
        switch (typename){
            case "GraphImage":
                setTypename(Post.TypeName.Image);
                break;
            case "GraphVideo":
                setTypename(Post.TypeName.Video);
                break;
            case "GraphSidecar":
                setTypename(Post.TypeName.Sidecar);
                break;
            case "Unknown":
                setTypename(Post.TypeName.Sidecar);
        }
    }

    /**
     * get caption of post
     * @return String caption
     */
    public String getCaption() {
        return caption;
    }

    public void setCaption(String caption) {
        this.caption = caption;
    }

    /**
     * get short code of post that see in https://www.instagram.com/p/{ShortCode}/ and use in other method
     * @return String type
     */
    public String getShortcode() {
        return shortcode;
    }

    public void setShortcode(String shortcode) {
        this.shortcode = shortcode;
    }

    /**
     * get comment count of post
     * @return int comment count
     */
    public int getComment() {
        return comment;
    }

    public void setComment(int comment) {
        this.comment = comment;
    }

    /**
     * is disable comments in this post
     * @return boolean
     */
    public boolean isCommentsDisabled() {
        return commentsDisabled;
    }

    public void setCommentsDisabled(boolean commentsDisabled) {
        this.commentsDisabled = commentsDisabled;
    }

    /**
     * get time of post in timestamp format
     * @return int timestamp
     */
    public int getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(int timestamp) {
        this.timestamp = timestamp;
    }

    /**
     * get dimensions of media
     * @return Dimension
     */
    public Dimension getDimensions() {
        return dimensions;
    }

    public void setDimensions(int width, int height) {
        dimensions.setSize(width, height);
    }

    /**
     * get display image link of post that shown when you in list of posts and don't select the post
     * @return String link of display image
     */
    public String getDisplayUrl() {
        return displayUrl;
    }

    public void setDisplayUrl(String displayUrl) {
        this.displayUrl = displayUrl;
    }

    /**
     * get like count of post
     * @return int like count
     */
    public int getLike() {
        return like;
    }

    public void setLike(int like) {
        this.like = like;
    }

    /**
     * get owner id of post
     * @return String ownerId id
     */
    public String getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(String ownerId) {
        this.ownerId = ownerId;
    }

    /**
     * get type of post that is video or not
     * @return boolean
     */
    public boolean isVideo() {
        return isVideo;
    }

    public void setIsVideo(boolean isVideo) {
        this.isVideo = isVideo;
    }

    /**
     * get view count of video. return 0 for images
     * @return Dimension
     */
    public int getVideoViewCount() {
        return videoViewCount;
    }

    public void setVideoViewCount(int videoViewCount) {
        this.videoViewCount = videoViewCount;
    }

    /**
     * get location id of post
     * if location id is 0 then means not set and if location id is -1 then there is no location id founded for his post at all.
     * @return String
     */
    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }
    
    /**
     * get video url with mp4 extention
     * @return String
     */
    public String getVideoUrl() {
        return videoUrl;
    }

    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    /**
     * get sidecars for post with multi video or image
     * @return String
     */
    public Post[] getSidecars() {
        return sidecars;
    }

    public void setSidecars(Post[] sidecars) {
        this.sidecars = sidecars;
    }

    public List getComments() {
        return comments;
    }

    public void addComments(List comments) {
        this.comments.addAll(comments);
    }

    public void addComments(Comment comment) {
        this.comments.add(comment);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy