Search in sources :

Example 11 with Enclosure

use of org.olat.modules.webFeed.Enclosure in project openolat by klemens.

the class FeedManagerImpl method replaceEnclosure.

/**
 * Save or delete the media file to the file system and get the appropriate
 * Enclosure.
 *
 * @param item
 * @param file
 * @return
 */
private Enclosure replaceEnclosure(Item item, FileElement file) {
    Enclosure enclosure = item.getEnclosure();
    if (file != null) {
        if (file.isUploadSuccess()) {
            if (enclosure != null && enclosure.getFileName() != null) {
                feedFileStorage.deleteItemMedia(item, enclosure.getFileName());
            }
            // New uploaded file
            enclosure = new EnclosureImpl();
            enclosure.setLength(file.getUploadSize());
            enclosure.setType(file.getUploadMimeType());
            String saveFileName = feedFileStorage.saveItemMedia(item, file);
            enclosure.setFileName(saveFileName);
        } else if (file.getInitialFile() == null) {
            // If no or deleted initial file, delete the media file
            if (enclosure != null && enclosure.getFileName() != null) {
                feedFileStorage.deleteItemMedia(item, enclosure.getFileName());
            }
            enclosure = null;
        }
    }
    return enclosure;
}
Also used : Enclosure(org.olat.modules.webFeed.Enclosure) EnclosureImpl(org.olat.modules.webFeed.model.EnclosureImpl)

Example 12 with Enclosure

use of org.olat.modules.webFeed.Enclosure in project openolat by klemens.

the class FeedManagerImpl method updateItem.

@Override
public Item updateItem(Item item, FileElement file) {
    if (item == null)
        return null;
    Item updatedItem = itemDAO.loadItem(item.getKey());
    if (updatedItem != null) {
        Enclosure enclosure = replaceEnclosure(item, file);
        item.setEnclosure(enclosure);
        updatedItem = itemDAO.updateItem(item);
        markPublisherNews(updatedItem.getFeed());
    }
    return updatedItem;
}
Also used : Item(org.olat.modules.webFeed.Item) VFSItem(org.olat.core.util.vfs.VFSItem) Enclosure(org.olat.modules.webFeed.Enclosure)

Example 13 with Enclosure

use of org.olat.modules.webFeed.Enclosure in project OpenOLAT by OpenOLAT.

the class FeedManagerImpl method createItem.

@Override
public Feed createItem(Feed feed, Item item, FileElement file) {
    if (feed == null || item == null || !feed.isInternal())
        return null;
    // Set the current date as published date.
    if (item.getPublishDate() == null) {
        item.setPublishDate(new Date());
    }
    // Save the Enclosure
    Enclosure enclosure = replaceEnclosure(item, file);
    item.setEnclosure(enclosure);
    // Save the Item
    itemDAO.createItem(feed, item);
    // Set the modification date of the feed
    Feed reloadedFeed = feedDAO.loadFeed(feed.getKey());
    reloadedFeed.setLastModified(new Date());
    reloadedFeed = feedDAO.updateFeed(reloadedFeed);
    markPublisherNews(reloadedFeed);
    return reloadedFeed;
}
Also used : Enclosure(org.olat.modules.webFeed.Enclosure) Date(java.util.Date) SyndFeed(com.rometools.rome.feed.synd.SyndFeed) Feed(org.olat.modules.webFeed.Feed) RSSFeed(org.olat.modules.webFeed.RSSFeed)

Example 14 with Enclosure

use of org.olat.modules.webFeed.Enclosure in project OpenOLAT by OpenOLAT.

the class FeedManagerImpl method updateItem.

@Override
public Item updateItem(Item item, FileElement file) {
    if (item == null)
        return null;
    Item updatedItem = itemDAO.loadItem(item.getKey());
    if (updatedItem != null) {
        Enclosure enclosure = replaceEnclosure(item, file);
        item.setEnclosure(enclosure);
        updatedItem = itemDAO.updateItem(item);
        markPublisherNews(updatedItem.getFeed());
    }
    return updatedItem;
}
Also used : Item(org.olat.modules.webFeed.Item) VFSItem(org.olat.core.util.vfs.VFSItem) Enclosure(org.olat.modules.webFeed.Enclosure)

Example 15 with Enclosure

use of org.olat.modules.webFeed.Enclosure in project OpenOLAT by OpenOLAT.

the class RomeFeedFetcher method convertEnclosures.

/**
 * Converts a List of <code>SyndEnclosures</code> into an <code>Enclosure</code>.
 * Only one media file is supported. If the List has more than one entry, the
 * first entry is taken.
 * SyndEnclosures without an URL are not converted, because it is necessary to
 * fetch the enclosure.
 *
 * @param enclosures
 * @return the enclosure or null
 */
protected Enclosure convertEnclosures(List<SyndEnclosure> enclosures) {
    if (enclosures == null || enclosures.isEmpty())
        return null;
    SyndEnclosure syndEnclosure = enclosures.get(0);
    Enclosure enclosure = null;
    if (StringHelper.containsNonWhitespace(syndEnclosure.getUrl())) {
        enclosure = new EnclosureImpl();
        enclosure.setExternalUrl(syndEnclosure.getUrl());
        enclosure.setLength(syndEnclosure.getLength());
        enclosure.setType(syndEnclosure.getType());
    }
    return enclosure;
}
Also used : SyndEnclosure(com.rometools.rome.feed.synd.SyndEnclosure) Enclosure(org.olat.modules.webFeed.Enclosure) SyndEnclosure(com.rometools.rome.feed.synd.SyndEnclosure) EnclosureImpl(org.olat.modules.webFeed.model.EnclosureImpl)

Aggregations

Enclosure (org.olat.modules.webFeed.Enclosure)20 SyndEnclosure (com.rometools.rome.feed.synd.SyndEnclosure)10 Test (org.junit.Test)10 EnclosureImpl (org.olat.modules.webFeed.model.EnclosureImpl)6 Date (java.util.Date)4 Feed (org.olat.modules.webFeed.Feed)4 Item (org.olat.modules.webFeed.Item)4 SyndFeed (com.rometools.rome.feed.synd.SyndFeed)2 File (java.io.File)2 LocalDate (java.time.LocalDate)2 ArrayList (java.util.ArrayList)2 Identity (org.olat.core.id.Identity)2 LocalFileImpl (org.olat.core.util.vfs.LocalFileImpl)2 VFSContainer (org.olat.core.util.vfs.VFSContainer)2 VFSItem (org.olat.core.util.vfs.VFSItem)2 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)2 RSSFeed (org.olat.modules.webFeed.RSSFeed)2 OLATResource (org.olat.resource.OLATResource)2