Search in sources :

Example 91 with Feed

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

the class FeedManagerImpl method deleteFeedImage.

@Override
public Feed deleteFeedImage(Feed feed) {
    String saveFileName = null;
    feedFileStorage.deleteFeedMedia(feed);
    Feed reloadedFeed = feedDAO.loadFeed(feed.getKey());
    if (reloadedFeed != null) {
        reloadedFeed.setImageName(saveFileName);
        reloadedFeed = feedDAO.updateFeed(reloadedFeed);
    }
    return reloadedFeed;
}
Also used : SyndFeed(com.rometools.rome.feed.synd.SyndFeed) Feed(org.olat.modules.webFeed.Feed) RSSFeed(org.olat.modules.webFeed.RSSFeed)

Example 92 with Feed

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

the class FeedManagerImpl method importFeedFromXML.

@Override
public void importFeedFromXML(OLATResource ores, boolean removeIdentityKeys) {
    Feed feedFromXml = feedFileStorage.loadFeedFromXML(ores);
    if (feedFromXml == null)
        return;
    // Check if the feed already exits or create it. The feed exists
    // possibly, if a previous migration from an XML feed was not
    // successful.
    Feed feed = feedDAO.loadFeed(ores);
    if (feed == null) {
        feedFromXml.setResourceableId(ores.getResourceableId());
        // Use the display name instead of the username
        if (!removeIdentityKeys && feedFromXml.getAuthor() != null) {
            String authorName = UserManager.getInstance().getUserDisplayName(feedFromXml.getAuthor());
            if (authorName != null) {
                feedFromXml.setAuthor(authorName);
            }
        }
        feed = feedDAO.createFeed(feedFromXml);
        log.info("Feed imported " + "(" + ores.getResourceableTypeName() + "): " + ores.getResourceableId());
    }
    List<Item> itemsFromXml = feedFileStorage.loadItemsFromXML(ores);
    itemsFromXml = fixFeedVersionIssues(feedFromXml, itemsFromXml);
    for (Item itemFromXml : itemsFromXml) {
        // Check if the item already exits or create it.
        Item item = itemDAO.loadItemByGuid(feed.getKey(), itemFromXml.getGuid());
        if (item == null) {
            if (removeIdentityKeys) {
                itemFromXml.setAuthorKey(null);
                itemFromXml.setModifierKey(null);
            } else {
                // Check if the identity exists
                if (itemFromXml.getAuthorKey() != null && securityManager.loadIdentityShortByKey(itemFromXml.getAuthorKey()) == null) {
                    itemFromXml.setAuthorKey(null);
                }
                if (itemFromXml.getModifierKey() != null && securityManager.loadIdentityShortByKey(itemFromXml.getModifierKey()) == null) {
                    itemFromXml.setModifierKey(null);
                }
            }
            itemDAO.createItem(feed, itemFromXml);
            log.info("Item imported: " + itemFromXml.getGuid());
        }
        feedFileStorage.deleteItemXML(itemFromXml);
    }
    if (feed.isExternal()) {
        saveExternalItems(feed);
        saveExternalFeed(feed);
    }
    feedFileStorage.deleteFeedXML(feed);
}
Also used : Item(org.olat.modules.webFeed.Item) VFSItem(org.olat.core.util.vfs.VFSItem) SyndFeed(com.rometools.rome.feed.synd.SyndFeed) Feed(org.olat.modules.webFeed.Feed) RSSFeed(org.olat.modules.webFeed.RSSFeed)

Example 93 with Feed

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

the class FeedManagerImpl method deleteFeed.

@Override
public void deleteFeed(OLATResourceable ores) {
    // delete the container on the file system
    fileResourceManager.deleteFileResource(ores);
    // delete comments and ratings
    CommentAndRatingService commentAndRatingService = CoreSpringFactory.getImpl(CommentAndRatingService.class);
    commentAndRatingService.deleteAllIgnoringSubPath(ores);
    // delete the feed and all items from the database
    Feed feed = feedDAO.loadFeed(ores);
    itemDAO.removeItems(feed);
    feedDAO.removeFeedForResourceable(ores);
    resourceManager.deleteOLATResourceable(ores);
    feed = null;
}
Also used : CommentAndRatingService(org.olat.core.commons.services.commentAndRating.CommentAndRatingService) SyndFeed(com.rometools.rome.feed.synd.SyndFeed) Feed(org.olat.modules.webFeed.Feed) RSSFeed(org.olat.modules.webFeed.RSSFeed)

Example 94 with Feed

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

the class LiveBlogArtefactHandler method getContent.

@Override
protected void getContent(AbstractArtefact artefact, StringBuilder sb, SearchResourceContext context, EPFrontendManager ePFManager) {
    String businessPath = artefact.getBusinessPath();
    if (StringHelper.containsNonWhitespace(businessPath)) {
        manager = FeedManager.getInstance();
        String oresId = businessPath.substring(LIVEBLOG.length(), businessPath.length() - 1);
        OLATResourceable ores = OresHelper.createOLATResourceableInstance(BlogFileResource.TYPE_NAME, Long.parseLong(oresId));
        Feed feed = manager.loadFeed(ores);
        List<Item> publishedItems = manager.loadPublishedItems(feed);
        for (Item item : publishedItems) {
            OlatDocument itemDoc = new FeedItemDocument(item, context);
            String content = itemDoc.getContent();
            sb.append(content);
        }
    }
}
Also used : Item(org.olat.modules.webFeed.Item) OlatDocument(org.olat.search.model.OlatDocument) FeedItemDocument(org.olat.modules.webFeed.search.document.FeedItemDocument) OLATResourceable(org.olat.core.id.OLATResourceable) Feed(org.olat.modules.webFeed.Feed)

Example 95 with Feed

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

the class BlogHandler method onDescriptionChanged.

@Override
public void onDescriptionChanged(RepositoryEntry entry) {
    Feed feed = FeedManager.getInstance().updateFeedWithRepositoryEntry(entry);
    DBFactory.getInstance().commitAndCloseSession();
    CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(new FeedChangedEvent(feed.getKey()), feed);
}
Also used : Feed(org.olat.modules.webFeed.Feed) FeedChangedEvent(org.olat.modules.webFeed.FeedChangedEvent)

Aggregations

Feed (org.olat.modules.webFeed.Feed)216 Test (org.junit.Test)162 Item (org.olat.modules.webFeed.Item)98 FeedImpl (org.olat.modules.webFeed.model.FeedImpl)76 OLATResource (org.olat.resource.OLATResource)72 BlogFileResource (org.olat.fileresource.types.BlogFileResource)60 ItemImpl (org.olat.modules.webFeed.model.ItemImpl)52 SyndFeed (com.rometools.rome.feed.synd.SyndFeed)36 VFSContainer (org.olat.core.util.vfs.VFSContainer)28 RSSFeed (org.olat.modules.webFeed.RSSFeed)24 Date (java.util.Date)22 RepositoryEntry (org.olat.repository.RepositoryEntry)12 OLATResourceable (org.olat.core.id.OLATResourceable)8 Path (java.nio.file.Path)6 LocalDate (java.time.LocalDate)6 VFSItem (org.olat.core.util.vfs.VFSItem)6 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)6 FeedItemDocument (org.olat.modules.webFeed.search.document.FeedItemDocument)6 OlatDocument (org.olat.search.model.OlatDocument)6 IOException (java.io.IOException)4