本文整理汇总了Java中net.sourceforge.subsonic.domain.PodcastEpisode.getStatus方法的典型用法代码示例。如果您正苦于以下问题:Java PodcastEpisode.getStatus方法的具体用法?Java PodcastEpisode.getStatus怎么用?Java PodcastEpisode.getStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.sourceforge.subsonic.domain.PodcastEpisode
的用法示例。
在下文中一共展示了PodcastEpisode.getStatus方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: playPodcastChannel
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public PlayQueueInfo playPodcastChannel(int id) throws Exception {
HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
HttpServletResponse response = WebContextFactory.get().getHttpServletResponse();
List<PodcastEpisode> episodes = podcastService.getEpisodes(id);
List<MediaFile> files = new ArrayList<MediaFile>();
for (PodcastEpisode episode : episodes) {
if (episode.getStatus() == PodcastStatus.COMPLETED) {
MediaFile mediaFile = mediaFileService.getMediaFile(episode.getMediaFileId());
if (mediaFile != null && mediaFile.isPresent()) {
files.add(mediaFile);
}
}
}
Player player = getCurrentPlayer(request, response);
return doPlay(request, player, files).setStartPlayerAt(0);
}
示例2: playPodcastEpisode
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public PlayQueueInfo playPodcastEpisode(int id) throws Exception {
HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
HttpServletResponse response = WebContextFactory.get().getHttpServletResponse();
PodcastEpisode episode = podcastService.getEpisode(id, false);
List<PodcastEpisode> allEpisodes = podcastService.getEpisodes(episode.getChannelId());
List<MediaFile> files = new ArrayList<MediaFile>();
String username = securityService.getCurrentUsername(request);
boolean queueFollowingSongs = settingsService.getUserSettings(username).isQueueFollowingSongs();
for (PodcastEpisode ep : allEpisodes) {
if (ep.getStatus() == PodcastStatus.COMPLETED) {
MediaFile mediaFile = mediaFileService.getMediaFile(ep.getMediaFileId());
if (mediaFile != null && mediaFile.isPresent() &&
(ep.getId().equals(episode.getId()) || queueFollowingSongs && !files.isEmpty())) {
files.add(mediaFile);
}
}
}
Player player = getCurrentPlayer(request, response);
return doPlay(request, player, files).setStartPlayerAt(0);
}
示例3: init
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public synchronized void init() {
try {
// Clean up partial downloads.
for (PodcastChannel channel : getAllChannels()) {
for (PodcastEpisode episode : getEpisodes(channel.getId())) {
if (episode.getStatus() == PodcastStatus.DOWNLOADING) {
deleteEpisode(episode.getId(), false);
LOG.info("Deleted Podcast episode '" + episode.getTitle() + "' since download was interrupted.");
}
}
}
schedule();
} catch (Throwable x) {
LOG.error("Failed to initialize PodcastService: " + x, x);
}
}
示例4: deleteObsoleteEpisodes
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
private synchronized void deleteObsoleteEpisodes(PodcastChannel channel) {
int episodeCount = settingsService.getPodcastEpisodeRetentionCount();
if (episodeCount == -1) {
return;
}
List<PodcastEpisode> episodes = getEpisodes(channel.getId());
// Don't do anything if other episodes of the same channel is currently downloading.
for (PodcastEpisode episode : episodes) {
if (episode.getStatus() == PodcastStatus.DOWNLOADING) {
return;
}
}
// Reverse array to get chronological order (oldest episodes first).
Collections.reverse(episodes);
int episodesToDelete = Math.max(0, episodes.size() - episodeCount);
for (int i = 0; i < episodesToDelete; i++) {
deleteEpisode(episodes.get(i).getId(), true);
LOG.info("Deleted old Podcast episode " + episodes.get(i).getUrl());
}
}
示例5: init
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public synchronized void init() {
try {
// Clean up partial downloads.
for (PodcastChannel channel : getAllChannels()) {
for (PodcastEpisode episode : getEpisodes(channel.getId(), false)) {
if (episode.getStatus() == PodcastStatus.DOWNLOADING) {
deleteEpisode(episode.getId(), false);
LOG.info("Deleted Podcast episode '" + episode.getTitle() + "' since download was interrupted.");
}
}
}
schedule();
} catch (Throwable x) {
LOG.error("Failed to initialize PodcastService: " + x, x);
}
}
示例6: getEpisodes
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
/**
* Returns all Podcast episodes for a given channel.
*
* @param channelId The Podcast channel ID.
* @param includeDeleted Whether to include logically deleted episodes in the result.
* @return Possibly empty list of all Podcast episodes for the given channel, sorted in
* reverse chronological order (newest episode first).
*/
public List<PodcastEpisode> getEpisodes(int channelId, boolean includeDeleted) {
List<PodcastEpisode> all = filterAllowed(podcastDao.getEpisodes(channelId));
addMediaFileIdToEpisodes(all);
if (includeDeleted) {
return all;
}
List<PodcastEpisode> filtered = new ArrayList<PodcastEpisode>();
for (PodcastEpisode episode : all) {
if (episode.getStatus() != PodcastStatus.DELETED) {
filtered.add(episode);
}
}
return filtered;
}
示例7: deleteObsoleteEpisodes
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
private synchronized void deleteObsoleteEpisodes(PodcastChannel channel) {
int episodeCount = settingsService.getPodcastEpisodeRetentionCount();
if (episodeCount == -1) {
return;
}
List<PodcastEpisode> episodes = getEpisodes(channel.getId(), false);
// Don't do anything if other episodes of the same channel is currently downloading.
for (PodcastEpisode episode : episodes) {
if (episode.getStatus() == PodcastStatus.DOWNLOADING) {
return;
}
}
// Reverse array to get chronological order (oldest episodes first).
Collections.reverse(episodes);
int episodesToDelete = Math.max(0, episodes.size() - episodeCount);
for (int i = 0; i < episodesToDelete; i++) {
deleteEpisode(episodes.get(i).getId(), true);
LOG.info("Deleted old Podcast episode " + episodes.get(i).getUrl());
}
}
示例8: download
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
private void download(int[] episodeIds) {
for (Integer episodeId : episodeIds) {
PodcastEpisode episode = podcastService.getEpisode(episodeId, false);
if (episode != null && episode.getUrl() != null &&
(episode.getStatus() == PodcastStatus.NEW ||
episode.getStatus() == PodcastStatus.ERROR ||
episode.getStatus() == PodcastStatus.SKIPPED)) {
podcastService.downloadEpisode(episode);
}
}
}
示例9: getEpisode
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public PodcastEpisode getEpisode(int episodeId, boolean includeDeleted) {
PodcastEpisode episode = podcastDao.getEpisode(episodeId);
if (episode == null) {
return null;
}
if (episode.getStatus() == PodcastStatus.DELETED && !includeDeleted) {
return null;
}
addMediaFileIdToEpisodes(Arrays.asList(episode));
return episode;
}
示例10: forPodcastChannel
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
public List<AbstractMedia> forPodcastChannel(int channelId, String username, HttpServletRequest request) {
List<AbstractMedia> result = new ArrayList<AbstractMedia>();
for (PodcastEpisode episode : podcastService.getEpisodes(channelId)) {
if (episode.getStatus() == PodcastStatus.COMPLETED) {
Integer mediaFileId = episode.getMediaFileId();
MediaFile mediaFile = mediaFileService.getMediaFile(mediaFileId);
if (mediaFile != null) {
result.add(forMediaFile(mediaFile, username, request));
}
}
}
return result;
}
示例11: doRefreshChannel
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
@SuppressWarnings({"unchecked"})
private void doRefreshChannel(PodcastChannel channel, boolean downloadEpisodes) {
InputStream in = null;
HttpClient client = new DefaultHttpClient();
try {
channel.setStatus(PodcastStatus.DOWNLOADING);
channel.setErrorMessage(null);
podcastDao.updateChannel(channel);
HttpConnectionParams.setConnectionTimeout(client.getParams(), 2 * 60 * 1000); // 2 minutes
HttpConnectionParams.setSoTimeout(client.getParams(), 10 * 60 * 1000); // 10 minutes
HttpGet method = new HttpGet(channel.getUrl());
HttpResponse response = client.execute(method);
in = response.getEntity().getContent();
Document document = new SAXBuilder().build(in);
Element channelElement = document.getRootElement().getChild("channel");
channel.setTitle(StringUtil.removeMarkup(channelElement.getChildTextTrim("title")));
channel.setDescription(StringUtil.removeMarkup(channelElement.getChildTextTrim("description")));
channel.setImageUrl(getChannelImageUrl(channelElement));
channel.setStatus(PodcastStatus.COMPLETED);
channel.setErrorMessage(null);
podcastDao.updateChannel(channel);
downloadImage(channel);
refreshEpisodes(channel, channelElement.getChildren("item"));
} catch (Exception x) {
LOG.warn("Failed to get/parse RSS file for Podcast channel " + channel.getUrl(), x);
channel.setStatus(PodcastStatus.ERROR);
channel.setErrorMessage(getErrorMessage(x));
podcastDao.updateChannel(channel);
} finally {
IOUtils.closeQuietly(in);
client.getConnectionManager().shutdown();
}
if (downloadEpisodes) {
for (final PodcastEpisode episode : getEpisodes(channel.getId())) {
if (episode.getStatus() == PodcastStatus.NEW && episode.getUrl() != null) {
downloadEpisode(episode);
}
}
}
}
示例12: isEpisodeDeleted
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
private boolean isEpisodeDeleted(PodcastEpisode episode) {
episode = podcastDao.getEpisode(episode.getId());
return episode == null || episode.getStatus() == PodcastStatus.DELETED;
}
示例13: doRefreshChannel
import net.sourceforge.subsonic.domain.PodcastEpisode; //导入方法依赖的package包/类
@SuppressWarnings({"unchecked"})
private void doRefreshChannel(PodcastChannel channel, boolean downloadEpisodes) {
InputStream in = null;
HttpClient client = new DefaultHttpClient();
try {
channel.setStatus(PodcastStatus.DOWNLOADING);
channel.setErrorMessage(null);
podcastDao.updateChannel(channel);
HttpConnectionParams.setConnectionTimeout(client.getParams(), 2 * 60 * 1000); // 2 minutes
HttpConnectionParams.setSoTimeout(client.getParams(), 10 * 60 * 1000); // 10 minutes
HttpGet method = new HttpGet(channel.getUrl());
HttpResponse response = client.execute(method);
in = response.getEntity().getContent();
Document document = new SAXBuilder().build(in);
Element channelElement = document.getRootElement().getChild("channel");
channel.setTitle(channelElement.getChildTextTrim("title"));
channel.setDescription(channelElement.getChildTextTrim("description"));
channel.setStatus(PodcastStatus.COMPLETED);
channel.setErrorMessage(null);
podcastDao.updateChannel(channel);
refreshEpisodes(channel, channelElement.getChildren("item"));
} catch (Exception x) {
LOG.warn("Failed to get/parse RSS file for Podcast channel " + channel.getUrl(), x);
channel.setStatus(PodcastStatus.ERROR);
channel.setErrorMessage(getErrorMessage(x));
podcastDao.updateChannel(channel);
} finally {
IOUtils.closeQuietly(in);
client.getConnectionManager().shutdown();
}
if (downloadEpisodes) {
for (final PodcastEpisode episode : getEpisodes(channel.getId(), false)) {
if (episode.getStatus() == PodcastStatus.NEW && episode.getUrl() != null) {
downloadEpisode(episode);
}
}
}
}