mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
84 lines
2.9 KiB
Java
84 lines
2.9 KiB
Java
package com.commafeed.frontend.model;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.Date;
|
|
|
|
import com.commafeed.backend.feed.FeedUtils;
|
|
import com.commafeed.backend.model.Feed;
|
|
import com.commafeed.backend.model.FeedCategory;
|
|
import com.commafeed.backend.model.FeedSubscription;
|
|
|
|
import io.swagger.annotations.ApiModel;
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
import lombok.Data;
|
|
|
|
@SuppressWarnings("serial")
|
|
@ApiModel("User information")
|
|
@Data
|
|
public class Subscription implements Serializable {
|
|
|
|
public static Subscription build(FeedSubscription subscription, String publicUrl, UnreadCount unreadCount) {
|
|
Date now = new Date();
|
|
FeedCategory category = subscription.getCategory();
|
|
Feed feed = subscription.getFeed();
|
|
Subscription sub = new Subscription();
|
|
sub.setId(subscription.getId());
|
|
sub.setName(subscription.getTitle());
|
|
sub.setPosition(subscription.getPosition());
|
|
sub.setMessage(feed.getMessage());
|
|
sub.setErrorCount(feed.getErrorCount());
|
|
sub.setFeedUrl(feed.getUrl());
|
|
sub.setFeedLink(feed.getLink());
|
|
sub.setIconUrl(FeedUtils.getFaviconUrl(subscription, publicUrl));
|
|
sub.setLastRefresh(feed.getLastUpdated());
|
|
sub.setNextRefresh((feed.getDisabledUntil() != null && feed.getDisabledUntil().before(now)) ? null : feed.getDisabledUntil());
|
|
sub.setUnread(unreadCount.getUnreadCount());
|
|
sub.setNewestItemTime(unreadCount.getNewestItemTime());
|
|
sub.setCategoryId(category == null ? null : String.valueOf(category.getId()));
|
|
sub.setFilter(subscription.getFilter());
|
|
return sub;
|
|
}
|
|
|
|
@ApiModelProperty(value = "subscription id", required = true)
|
|
private Long id;
|
|
|
|
@ApiModelProperty(value = "subscription name", required = true)
|
|
private String name;
|
|
|
|
@ApiModelProperty(value = "error message while fetching the feed", required = true)
|
|
private String message;
|
|
|
|
@ApiModelProperty(value = "error count", required = true)
|
|
private int errorCount;
|
|
|
|
@ApiModelProperty(value = "last time the feed was refreshed", required = true)
|
|
private Date lastRefresh;
|
|
|
|
@ApiModelProperty(value = "next time the feed refresh is planned, null if refresh is already queued", required = true)
|
|
private Date nextRefresh;
|
|
|
|
@ApiModelProperty(value = "this subscription's feed url", required = true)
|
|
private String feedUrl;
|
|
|
|
@ApiModelProperty(value = "this subscription's website url", required = true)
|
|
private String feedLink;
|
|
|
|
@ApiModelProperty(value = "The favicon url to use for this feed")
|
|
private String iconUrl;
|
|
|
|
@ApiModelProperty(value = "unread count", required = true)
|
|
private long unread;
|
|
|
|
@ApiModelProperty(value = "category id")
|
|
private String categoryId;
|
|
|
|
@ApiModelProperty("position of the subscription's in the list")
|
|
private Integer position;
|
|
|
|
@ApiModelProperty("date of the newest item")
|
|
private Date newestItemTime;
|
|
|
|
@ApiModelProperty(value = "JEXL string evaluated on new entries to mark them as read if they do not match")
|
|
private String filter;
|
|
|
|
} |