当前位置: 首页>>代码示例>>Java>>正文


Java PodcastEpisode.getStatus方法代码示例

本文整理汇总了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);
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:18,代码来源:PlayQueueService.java

示例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);
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:24,代码来源:PlayQueueService.java

示例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);
    }
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:17,代码来源:PodcastService.java

示例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());
    }
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:25,代码来源:PodcastService.java

示例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);
    }
}
 
开发者ID:FutureSonic,项目名称:FutureSonic-Server,代码行数:17,代码来源:PodcastService.java

示例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;
}
 
开发者ID:FutureSonic,项目名称:FutureSonic-Server,代码行数:25,代码来源:PodcastService.java

示例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());
    }
}
 
开发者ID:FutureSonic,项目名称:FutureSonic-Server,代码行数:25,代码来源:PodcastService.java

示例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);
        }
    }
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:13,代码来源:PodcastReceiverAdminController.java

示例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;
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:12,代码来源:PodcastService.java

示例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;
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:14,代码来源:SonosHelper.java

示例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);
            }
        }
    }
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:49,代码来源:PodcastService.java

示例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;
}
 
开发者ID:sindremehus,项目名称:subsonic,代码行数:5,代码来源:PodcastService.java

示例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);
            }
        }
    }
}
 
开发者ID:FutureSonic,项目名称:FutureSonic-Server,代码行数:47,代码来源:PodcastService.java


注:本文中的net.sourceforge.subsonic.domain.PodcastEpisode.getStatus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。