package moe.kurumi.moegallery.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import moe.kurumi.moegallery.data.Providers;
import moe.kurumi.moegallery.utils.Utils;
import java.util.List;
/**
* Created by kurumi on 15-5-30.
*/
public class DanbooruImage implements Image {
@Expose
private Long id;
@SerializedName("created_at")
@Expose
private String createdAt;
@SerializedName("uploader_id")
@Expose
private Long uploaderId;
@Expose
private Long score;
@Expose
private String source;
@Expose
private String md5;
@SerializedName("last_comment_bumped_at")
@Expose
private Object lastCommentBumpedAt;
@Expose
private String rating;
@SerializedName("image_width")
@Expose
private Long imageWidth;
@SerializedName("image_height")
@Expose
private Long imageHeight;
@SerializedName("tag_string")
@Expose
private String tagString;
@SerializedName("is_note_locked")
@Expose
private Boolean isNoteLocked;
@SerializedName("fav_count")
@Expose
private Long favCount;
@SerializedName("file_ext")
@Expose
private String fileExt;
@SerializedName("last_noted_at")
@Expose
private Object lastNotedAt;
@SerializedName("is_rating_locked")
@Expose
private Boolean isRatingLocked;
@SerializedName("parent_id")
@Expose
private Object parentId;
@SerializedName("has_children")
@Expose
private Boolean hasChildren;
@SerializedName("approver_id")
@Expose
private Object approverId;
@SerializedName("tag_count_general")
@Expose
private Long tagCountGeneral;
@SerializedName("tag_count_artist")
@Expose
private Long tagCountArtist;
@SerializedName("tag_count_character")
@Expose
private Long tagCountCharacter;
@SerializedName("tag_count_copyright")
@Expose
private Long tagCountCopyright;
@SerializedName("file_size")
@Expose
private Long fileSize;
@SerializedName("is_status_locked")
@Expose
private Boolean isStatusLocked;
@SerializedName("fav_string")
@Expose
private String favString;
@SerializedName("pool_string")
@Expose
private String poolString;
@SerializedName("up_score")
@Expose
private Long upScore;
@SerializedName("down_score")
@Expose
private Long downScore;
@SerializedName("is_pending")
@Expose
private Boolean isPending;
@SerializedName("is_flagged")
@Expose
private Boolean isFlagged;
@SerializedName("is_deleted")
@Expose
private Boolean isDeleted;
@SerializedName("tag_count")
@Expose
private Long tagCount;
@SerializedName("updated_at")
@Expose
private String updatedAt;
@SerializedName("is_banned")
@Expose
private Boolean isBanned;
@SerializedName("pixiv_id")
@Expose
private Long pixivId;
@SerializedName("last_commented_at")
@Expose
private Object lastCommentedAt;
@SerializedName("has_active_children")
@Expose
private Boolean hasActiveChildren;
@SerializedName("bit_flags")
@Expose
private Long bitFlags;
@SerializedName("uploader_name")
@Expose
private String uploaderName;
@SerializedName("has_large")
@Expose
private Boolean hasLarge;
@SerializedName("tag_string_artist")
@Expose
private String tagStringArtist;
@SerializedName("tag_string_character")
@Expose
private String tagStringCharacter;
@SerializedName("tag_string_copyright")
@Expose
private String tagStringCopyright;
@SerializedName("tag_string_general")
@Expose
private String tagStringGeneral;
@SerializedName("has_visible_children")
@Expose
private Boolean hasVisibleChildren;
@SerializedName("file_url")
@Expose
private String fileUrl;
@SerializedName("large_file_url")
@Expose
private String largeFileUrl;
@SerializedName("preview_file_url")
@Expose
private String previewFileUrl;
/**
*
* @return
* The id
*/
public Long getId() {
return id;
}
@Override
public String getUser() {
return ""+getUploaderId();
}
@Override
public String getType() {
return Utils.getMimeType(getFileExt());
}
@Override
public Long getCount() {
return (long)0;
}
@Override
public Long getSize() {
return getFileSize();
}
@Override
public List<String> getTagList() {
return Utils.tags2List(getTagString());
}
/**
*
* @param id
* The id
*/
public void setId(Long id) {
this.id = id;
}
/**
*
* @return
* The createdAt
*/
public String getCreatedAt() {
return createdAt;
}
/**
*
* @param createdAt
* The created_at
*/
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
/**
*
* @return
* The uploaderId
*/
public Long getUploaderId() {
return uploaderId;
}
/**
*
* @param uploaderId
* The uploader_id
*/
public void setUploaderId(Long uploaderId) {
this.uploaderId = uploaderId;
}
/**
*
* @return
* The score
*/
public Long getScore() {
return score;
}
/**
*
* @param score
* The score
*/
public void setScore(Long score) {
this.score = score;
}
/**
*
* @return
* The source
*/
public String getSource() {
return source;
}
/**
*
* @param source
* The source
*/
public void setSource(String source) {
this.source = source;
}
/**
*
* @return
* The md5
*/
public String getMd5() {
return md5;
}
@Override
public String getSampleUrl() {
return Providers.DANBOORU_URI+getLargeFileUrl();
}
@Override
public String getName() {
String tags = tagString;
if (tags.length()>50) {
tags = tags.substring(0, 50);
}
return Utils.getProviderName(getPreviewUrl())+" - "+getId()+" "+tags+"."+getFileExt();
}
/**
*
* @param md5
* The md5
*/
public void setMd5(String md5) {
this.md5 = md5;
}
/**
*
* @return
* The lastCommentBumpedAt
*/
public Object getLastCommentBumpedAt() {
return lastCommentBumpedAt;
}
/**
*
* @param lastCommentBumpedAt
* The last_comment_bumped_at
*/
public void setLastCommentBumpedAt(Object lastCommentBumpedAt) {
this.lastCommentBumpedAt = lastCommentBumpedAt;
}
/**
*
* @return
* The rating
*/
public String getRating() {
return rating;
}
/**
*
* @param rating
* The rating
*/
public void setRating(String rating) {
this.rating = rating;
}
/**
*
* @return
* The imageWidth
*/
public Long getImageWidth() {
return imageWidth;
}
/**
*
* @param imageWidth
* The image_width
*/
public void setImageWidth(Long imageWidth) {
this.imageWidth = imageWidth;
}
/**
*
* @return
* The imageHeight
*/
public Long getImageHeight() {
return imageHeight;
}
/**
*
* @param imageHeight
* The image_height
*/
public void setImageHeight(Long imageHeight) {
this.imageHeight = imageHeight;
}
/**
*
* @return
* The tagString
*/
public String getTagString() {
return tagString;
}
/**
*
* @param tagString
* The tag_string
*/
public void setTagString(String tagString) {
this.tagString = tagString;
}
/**
*
* @return
* The isNoteLocked
*/
public Boolean getIsNoteLocked() {
return isNoteLocked;
}
/**
*
* @param isNoteLocked
* The is_note_locked
*/
public void setIsNoteLocked(Boolean isNoteLocked) {
this.isNoteLocked = isNoteLocked;
}
/**
*
* @return
* The favCount
*/
public Long getFavCount() {
return favCount;
}
/**
*
* @param favCount
* The fav_count
*/
public void setFavCount(Long favCount) {
this.favCount = favCount;
}
/**
*
* @return
* The fileExt
*/
public String getFileExt() {
return fileExt;
}
/**
*
* @param fileExt
* The file_ext
*/
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
/**
*
* @return
* The lastNotedAt
*/
public Object getLastNotedAt() {
return lastNotedAt;
}
/**
*
* @param lastNotedAt
* The last_noted_at
*/
public void setLastNotedAt(Object lastNotedAt) {
this.lastNotedAt = lastNotedAt;
}
/**
*
* @return
* The isRatingLocked
*/
public Boolean getIsRatingLocked() {
return isRatingLocked;
}
/**
*
* @param isRatingLocked
* The is_rating_locked
*/
public void setIsRatingLocked(Boolean isRatingLocked) {
this.isRatingLocked = isRatingLocked;
}
/**
*
* @return
* The parentId
*/
public Object getParentId() {
return parentId;
}
/**
*
* @param parentId
* The parent_id
*/
public void setParentId(Object parentId) {
this.parentId = parentId;
}
/**
*
* @return
* The hasChildren
*/
public Boolean getHasChildren() {
return hasChildren;
}
/**
*
* @param hasChildren
* The has_children
*/
public void setHasChildren(Boolean hasChildren) {
this.hasChildren = hasChildren;
}
/**
*
* @return
* The approverId
*/
public Object getApproverId() {
return approverId;
}
/**
*
* @param approverId
* The approver_id
*/
public void setApproverId(Object approverId) {
this.approverId = approverId;
}
/**
*
* @return
* The tagCountGeneral
*/
public Long getTagCountGeneral() {
return tagCountGeneral;
}
/**
*
* @param tagCountGeneral
* The tag_count_general
*/
public void setTagCountGeneral(Long tagCountGeneral) {
this.tagCountGeneral = tagCountGeneral;
}
/**
*
* @return
* The tagCountArtist
*/
public Long getTagCountArtist() {
return tagCountArtist;
}
/**
*
* @param tagCountArtist
* The tag_count_artist
*/
public void setTagCountArtist(Long tagCountArtist) {
this.tagCountArtist = tagCountArtist;
}
/**
*
* @return
* The tagCountCharacter
*/
public Long getTagCountCharacter() {
return tagCountCharacter;
}
/**
*
* @param tagCountCharacter
* The tag_count_character
*/
public void setTagCountCharacter(Long tagCountCharacter) {
this.tagCountCharacter = tagCountCharacter;
}
/**
*
* @return
* The tagCountCopyright
*/
public Long getTagCountCopyright() {
return tagCountCopyright;
}
/**
*
* @param tagCountCopyright
* The tag_count_copyright
*/
public void setTagCountCopyright(Long tagCountCopyright) {
this.tagCountCopyright = tagCountCopyright;
}
/**
*
* @return
* The fileSize
*/
public Long getFileSize() {
return fileSize;
}
/**
*
* @param fileSize
* The file_size
*/
public void setFileSize(Long fileSize) {
this.fileSize = fileSize;
}
/**
*
* @return
* The isStatusLocked
*/
public Boolean getIsStatusLocked() {
return isStatusLocked;
}
/**
*
* @param isStatusLocked
* The is_status_locked
*/
public void setIsStatusLocked(Boolean isStatusLocked) {
this.isStatusLocked = isStatusLocked;
}
/**
*
* @return
* The favString
*/
public String getFavString() {
return favString;
}
/**
*
* @param favString
* The fav_string
*/
public void setFavString(String favString) {
this.favString = favString;
}
/**
*
* @return
* The poolString
*/
public String getPoolString() {
return poolString;
}
/**
*
* @param poolString
* The pool_string
*/
public void setPoolString(String poolString) {
this.poolString = poolString;
}
/**
*
* @return
* The upScore
*/
public Long getUpScore() {
return upScore;
}
/**
*
* @param upScore
* The up_score
*/
public void setUpScore(Long upScore) {
this.upScore = upScore;
}
/**
*
* @return
* The downScore
*/
public Long getDownScore() {
return downScore;
}
/**
*
* @param downScore
* The down_score
*/
public void setDownScore(Long downScore) {
this.downScore = downScore;
}
/**
*
* @return
* The isPending
*/
public Boolean getIsPending() {
return isPending;
}
/**
*
* @param isPending
* The is_pending
*/
public void setIsPending(Boolean isPending) {
this.isPending = isPending;
}
/**
*
* @return
* The isFlagged
*/
public Boolean getIsFlagged() {
return isFlagged;
}
/**
*
* @param isFlagged
* The is_flagged
*/
public void setIsFlagged(Boolean isFlagged) {
this.isFlagged = isFlagged;
}
/**
*
* @return
* The isDeleted
*/
public Boolean getIsDeleted() {
return isDeleted;
}
/**
*
* @param isDeleted
* The is_deleted
*/
public void setIsDeleted(Boolean isDeleted) {
this.isDeleted = isDeleted;
}
/**
*
* @return
* The tagCount
*/
public Long getTagCount() {
return tagCount;
}
/**
*
* @param tagCount
* The tag_count
*/
public void setTagCount(Long tagCount) {
this.tagCount = tagCount;
}
/**
*
* @return
* The updatedAt
*/
public String getUpdatedAt() {
return updatedAt;
}
/**
*
* @param updatedAt
* The updated_at
*/
public void setUpdatedAt(String updatedAt) {
this.updatedAt = updatedAt;
}
/**
*
* @return
* The isBanned
*/
public Boolean getIsBanned() {
return isBanned;
}
/**
*
* @param isBanned
* The is_banned
*/
public void setIsBanned(Boolean isBanned) {
this.isBanned = isBanned;
}
/**
*
* @return
* The pixivId
*/
public Long getPixivId() {
return pixivId;
}
/**
*
* @param pixivId
* The pixiv_id
*/
public void setPixivId(Long pixivId) {
this.pixivId = pixivId;
}
/**
*
* @return
* The lastCommentedAt
*/
public Object getLastCommentedAt() {
return lastCommentedAt;
}
/**
*
* @param lastCommentedAt
* The last_commented_at
*/
public void setLastCommentedAt(Object lastCommentedAt) {
this.lastCommentedAt = lastCommentedAt;
}
/**
*
* @return
* The hasActiveChildren
*/
public Boolean getHasActiveChildren() {
return hasActiveChildren;
}
/**
*
* @param hasActiveChildren
* The has_active_children
*/
public void setHasActiveChildren(Boolean hasActiveChildren) {
this.hasActiveChildren = hasActiveChildren;
}
/**
*
* @return
* The bitFlags
*/
public Long getBitFlags() {
return bitFlags;
}
/**
*
* @param bitFlags
* The bit_flags
*/
public void setBitFlags(Long bitFlags) {
this.bitFlags = bitFlags;
}
/**
*
* @return
* The uploaderName
*/
public String getUploaderName() {
return uploaderName;
}
/**
*
* @param uploaderName
* The uploader_name
*/
public void setUploaderName(String uploaderName) {
this.uploaderName = uploaderName;
}
/**
*
* @return
* The hasLarge
*/
public Boolean getHasLarge() {
return hasLarge;
}
/**
*
* @param hasLarge
* The has_large
*/
public void setHasLarge(Boolean hasLarge) {
this.hasLarge = hasLarge;
}
/**
*
* @return
* The tagStringArtist
*/
public String getTagStringArtist() {
return tagStringArtist;
}
/**
*
* @param tagStringArtist
* The tag_string_artist
*/
public void setTagStringArtist(String tagStringArtist) {
this.tagStringArtist = tagStringArtist;
}
/**
*
* @return
* The tagStringCharacter
*/
public String getTagStringCharacter() {
return tagStringCharacter;
}
/**
*
* @param tagStringCharacter
* The tag_string_character
*/
public void setTagStringCharacter(String tagStringCharacter) {
this.tagStringCharacter = tagStringCharacter;
}
/**
*
* @return
* The tagStringCopyright
*/
public String getTagStringCopyright() {
return tagStringCopyright;
}
/**
*
* @param tagStringCopyright
* The tag_string_copyright
*/
public void setTagStringCopyright(String tagStringCopyright) {
this.tagStringCopyright = tagStringCopyright;
}
/**
*
* @return
* The tagStringGeneral
*/
public String getTagStringGeneral() {
return tagStringGeneral;
}
/**
*
* @param tagStringGeneral
* The tag_string_general
*/
public void setTagStringGeneral(String tagStringGeneral) {
this.tagStringGeneral = tagStringGeneral;
}
/**
*
* @return
* The hasVisibleChildren
*/
public Boolean getHasVisibleChildren() {
return hasVisibleChildren;
}
/**
*
* @param hasVisibleChildren
* The has_visible_children
*/
public void setHasVisibleChildren(Boolean hasVisibleChildren) {
this.hasVisibleChildren = hasVisibleChildren;
}
@Override
public String getPreviewUrl() {
return Providers.DANBOORU_URI+getPreviewFileUrl();
}
@Override
public Long getWidth() {
return getImageWidth();
}
@Override
public Long getHeight() {
return getImageHeight();
}
/**
*
* @return
* The fileUrl
*/
@Override
public String getFileUrl() {
return Providers.DANBOORU_URI+fileUrl;
}
/**
*
* @param fileUrl
* The file_url
*/
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
/**
*
* @return
* The largeFileUrl
*/
public String getLargeFileUrl() {
return largeFileUrl;
}
/**
*
* @param largeFileUrl
* The large_file_url
*/
public void setLargeFileUrl(String largeFileUrl) {
this.largeFileUrl = largeFileUrl;
}
/**
*
* @return
* The previewFileUrl
*/
public String getPreviewFileUrl() {
return previewFileUrl;
}
/**
*
* @param previewFileUrl
* The preview_file_url
*/
public void setPreviewFileUrl(String previewFileUrl) {
this.previewFileUrl = previewFileUrl;
}
}