Package org.apache.roller.pojos

Examples of org.apache.roller.pojos.WeblogEntryData


        }

        public Date getEarliestDate() {
            Date date = null;
            if (entries.size() > 0) {
                WeblogEntryData earliest = (WeblogEntryData)entries.get(entries.size()-1);
                date = earliest.getPubTime();
            }
            return date;
        }
View Full Code Here


        }

        public Date getLatestDate() {
            Date date = null;
            if (entries.size() > 0) {
                WeblogEntryData latest = (WeblogEntryData)entries.get(0);
                date = latest.getPubTime();
            }
            return date;
        }
View Full Code Here

            Feed feed = new Feed();
            feed.setTitle("Entries for blog[" + handle + "]");
            List atomEntries = new ArrayList();
            int count = 0;
            for (Iterator iter = entries.iterator(); iter.hasNext() && count < mMaxEntries; count++) {
                WeblogEntryData rollerEntry = (WeblogEntryData)iter.next();
                atomEntries.add(createAtomEntry(rollerEntry));
            }
            List links = new ArrayList();
            if (entries.size() > max) { // add next link
                int nextOffset = start + max;
View Full Code Here

        String handle = pathInfo[0];
        WebsiteData website = mRoller.getUserManager().getWebsiteByHandle(handle);
        if (canEdit(website)) {
            // Save it and commit it
            WeblogManager mgr = mRoller.getWeblogManager();
            WeblogEntryData rollerEntry = createRollerEntry(website, entry);
            rollerEntry.setCreator(this.user);
            mgr.saveWeblogEntry(rollerEntry);   
            mRoller.flush();
           
            // Throttle one entry per second
            // (MySQL timestamp has 1 sec resolution, damnit)
            Thread.sleep(1000);
           
            CacheManager.invalidate(website);
            if (rollerEntry.isPublished()) {
                mRoller.getIndexManager().addEntryReIndexOperation(rollerEntry);
            }           
            return createAtomEntry(rollerEntry);
        }
        throw new Exception("ERROR not authorized to edit website");
View Full Code Here

     * Retrieve entry, URI like this /blog-name/entry/id
     */
    public Entry getEntry(String[] pathInfo) throws Exception {
        if (pathInfo.length == 3) // URI is /blogname/entries/entryid
        {
            WeblogEntryData entry =
                mRoller.getWeblogManager().getWeblogEntry(pathInfo[2]);
            if (entry != null && !canView(entry)) {
                throw new Exception("ERROR not authorized to view entry");
            } else if (entry != null) {
                return createAtomEntry(entry);
View Full Code Here

     * Update entry, URI like this /blog-name/entry/id
     */
    public Entry putEntry(String[] pathInfo, Entry entry) throws Exception {
        if (pathInfo.length == 3) // URI is /blogname/entries/entryid
        {
            WeblogEntryData rollerEntry =
                    mRoller.getWeblogManager().getWeblogEntry(pathInfo[2]);
            if (canEdit(rollerEntry)) {
                WeblogManager mgr = mRoller.getWeblogManager();
               
                WeblogEntryData rawUpdate = createRollerEntry(rollerEntry.getWebsite(), entry);
                rollerEntry.setPubTime(rawUpdate.getPubTime());
                rollerEntry.setUpdateTime(rawUpdate.getUpdateTime());
                rollerEntry.setText(rawUpdate.getText());
                rollerEntry.setStatus(rawUpdate.getStatus());
                rollerEntry.setCategory(rawUpdate.getCategory());
                rollerEntry.setTitle(rawUpdate.getTitle());
               
                mgr.saveWeblogEntry(rollerEntry);
                mRoller.flush();
               
                CacheManager.invalidate(rollerEntry.getWebsite());
View Full Code Here

     * Delete entry, URI like this /blog-name/entry/id
     */
    public void deleteEntry(String[] pathInfo) throws Exception {
        if (pathInfo.length == 3) // URI is /blogname/entries/entryid
        {
            WeblogEntryData rollerEntry =
                    mRoller.getWeblogManager().getWeblogEntry(pathInfo[2]);
            if (canEdit(rollerEntry)) {
                WeblogManager mgr = mRoller.getWeblogManager();
                mgr.removeWeblogEntry(rollerEntry);
                mRoller.flush();
                CacheManager.invalidate(rollerEntry.getWebsite());
                mRoller.getIndexManager().removeEntryIndexOperation(rollerEntry);
                return;
            }
            throw new Exception("ERROR not authorized to delete entry");
        }
View Full Code Here

            pubTime = new Timestamp( entry.getPublished().getTime() );
        }
        if (entry.getUpdated() != null) {
            updateTime = new Timestamp( entry.getUpdated().getTime() );
        }
        WeblogEntryData rollerEntry = new WeblogEntryData();
        rollerEntry.setTitle(entry.getTitle());
        if (entry.getContents() != null && entry.getContents().size() > 0) {
            Content content = (Content)entry.getContents().get(0);
            rollerEntry.setText(content.getValue());
        }
        rollerEntry.setPubTime(pubTime);
        rollerEntry.setUpdateTime(updateTime);
        rollerEntry.setWebsite(website);
              
        PubControlModule control =
            (PubControlModule)entry.getModule("http://purl.org/atom/app#");
        if (control!=null && control.getDraft()) {
            rollerEntry.setStatus(WeblogEntryData.DRAFT);
        } else {
            rollerEntry.setStatus(WeblogEntryData.PUBLISHED);
        }
       
        // Atom supports multiple cats, Roller supports one/entry
        // so here we take accept the first category that exists
        List categories = entry.getCategories();
        if (categories != null && categories.size() > 0) {
            for (int i=0; i<categories.size(); i++) {
                Category cat = (Category)categories.get(i);
                // Caller has no way of knowing our categories, so be lenient here
                String catString = cat.getTerm() != null ? cat.getTerm() : cat.getLabel();
                if (catString != null) {
                    WeblogCategoryData rollerCat =
                        mRoller.getWeblogManager().getWeblogCategoryByPath(
                        website, catString);
                    if (rollerCat != null) {
                        // Found a valid category, so break out
                        rollerEntry.setCategory(rollerCat);
                        break;
                    }
                }
            }
        } else {
            // or we fall back to the default Blogger API category
            rollerEntry.setCategory(website.getBloggerCategory());
        }
        return rollerEntry;
    }
View Full Code Here

        // parse request and validate
        RollerRequest rreq = RollerRequest.getRollerRequest(request);
        HttpSession session = request.getSession();
       
        // make sure we know the entry this comment is going to
        WeblogEntryData entry = rreq.getWeblogEntry();
        if (entry == null || entry.getId() == null) {
            session.setAttribute(RollerSession.ERROR_MESSAGE, "Cannot post comment to null entry");
            RequestDispatcher dispatcher =
                request.getRequestDispatcher(entry_permalink);
            dispatcher.forward(request, response);
            return;
        }
           
        try {
            // we know what our weblog entry is, so setup our permalink url
            entry_permalink = entry.getPermaLink();
           
            mLogger.debug("Doing comment posting for entry = "+entry_permalink);
           
            // check if we even allow comments
            if(!RollerRuntimeConfig.getBooleanProperty("users.comments.enabled"))
                throw new Exception("Comments are disabled for this site.");
           
            if (!entry.getWebsite().getAllowComments().booleanValue() ||
                    !entry.getCommentsStillAllowed())
                throw new Exception("Comments not allowed on this entry");
           
            WebsiteData website = entry.getWebsite();
           
            // Construct our Comment object from the submitted data
            WeblogManager mgr = RollerFactory.getRoller().getWeblogManager();
            CommentFormEx cf = new CommentFormEx();
            CommentData comment = new CommentData();
View Full Code Here

    public static void sendEmailNotification(CommentData cd, String rootURL) {
       
        // Send commment notifications in locale of server
        ResourceBundle resources = ResourceBundle.getBundle("ApplicationResources");

        WeblogEntryData entry = cd.getWeblogEntry();
        WebsiteData site = entry.getWebsite();
        UserData user = entry.getCreator();
       
        // Send e-mail to owner and subscribed users (if enabled)
        boolean notify = RollerRuntimeConfig.getBooleanProperty("users.comments.emailnotify");
        if (notify && site.getEmailComments().booleanValue()) {
            mLogger.debug("Comment notification enabled ... preparing email");
           
            // Determine message and addressing options from init parameters
            boolean separateMessages =
                    RollerConfig.getBooleanProperty("comment.notification.separateOwnerMessage");
            boolean hideCommenterAddrs =
                    RollerConfig.getBooleanProperty("comment.notification.hideCommenterAddresses");
           
            //------------------------------------------
            // --- Determine the "from" address
            // --- Use either the site configured from address or the user's address
           
            String from =
                    (StringUtils.isEmpty(site.getEmailFromAddress()))
                    ? user.getEmailAddress()
                    : site.getEmailFromAddress();
           
            //------------------------------------------
            // --- Build list of email addresses to send notification to
           
            List comments = null;
            try {
                WeblogManager wMgr = RollerFactory.getRoller().getWeblogManager();
                // get only approved, non spam comments
                comments = entry.getComments(true, true);
            } catch(RollerException re) {
                // should never happen
                comments = new ArrayList();
            }
           
            // Get all the subscribers to this comment thread
            Set subscribers = new TreeSet();
            for (Iterator it = comments.iterator(); it.hasNext();) {
                CommentData comment = (CommentData) it.next();
                if (!StringUtils.isEmpty(comment.getEmail())) {
                    // If user has commented twice,
                    // count the most recent notify setting
                    if (comment.getNotify().booleanValue()) {
                        // only add those with valid email
                        if (comment.getEmail().matches(EMAIL_ADDR_REGEXP)) {
                            subscribers.add(comment.getEmail());
                        }
                    } else {
                        // remove user who doesn't want to be notified
                        subscribers.remove(comment.getEmail());
                    }
                }
            }
           
            // Form array of commenter addrs
            String[] commenterAddrs = (String[])subscribers.toArray(new String[0]);
           
            //------------------------------------------
            // --- Form the messages to be sent -
            // For simplicity we always build separate owner and commenter messages even if sending a single one
           
            // Determine with mime type to use for e-mail
            StringBuffer msg = new StringBuffer();
            StringBuffer ownermsg = new StringBuffer();
            boolean escapeHtml = RollerRuntimeConfig.getBooleanProperty("users.comments.escapehtml");
           
            if (!escapeHtml) {
                msg.append("<html><body style=\"background: white; ");
                msg.append(" color: black; font-size: 12px\">");
            }
           
            if (!StringUtils.isEmpty(cd.getName())) {
                msg.append(cd.getName() + " "
                        + resources.getString("email.comment.wrote")+": ");
            } else {
                msg.append(resources.getString("email.comment.anonymous")+": ");
            }
           
            msg.append((escapeHtml) ? "\n\n" : "<br /><br />");
                       
            msg.append((escapeHtml) ? Utilities.escapeHTML(cd.getContent())
                : Utilities.transformToHTMLSubset(Utilities.escapeHTML(cd.getContent())));
           
            msg.append((escapeHtml) ? "\n\n----\n"
                    : "<br /><br /><hr /><span style=\"font-size: 11px\">");
            msg.append(resources.getString("email.comment.respond") + ": ");
            msg.append((escapeHtml) ? "\n" : "<br />");

            // Build link back to comment
            StringBuffer commentURL = new StringBuffer(rootURL);
            commentURL.append(entry.getPermaLink());
            commentURL.append("#comments");
           
            if (escapeHtml) {
                msg.append(commentURL.toString());
            } else {
                msg.append("<a href=\""+commentURL+"\">"+commentURL+"</a></span>");
            }
           
            ownermsg.append(msg);
           
            // add link to weblog edit page so user can login to manage comments
            ownermsg.append((escapeHtml) ? "\n\n----\n" :
                "<br /><br /><hr /><span style=\"font-size: 11px\">");
            ownermsg.append("Link to comment management page:");
            ownermsg.append((escapeHtml) ? "\n" : "<br />");
           
            StringBuffer deleteURL = new StringBuffer(rootURL);
            deleteURL.append("/editor/commentManagement.do?method=query&entryid=" + entry.getId());
           
            if (escapeHtml) {
                ownermsg.append(deleteURL.toString());
            } else {
                ownermsg.append(
                        "<a href=\"" + deleteURL + "\">" + deleteURL + "</a></span>");
                msg.append("</Body></html>");
                ownermsg.append("</Body></html>");
            }
           
            String subject = null;
            if ((subscribers.size() > 1) ||
                    (StringUtils.equals(cd.getEmail(), user.getEmailAddress()))) {
                subject= "RE: "+resources.getString("email.comment.title")+": ";
            } else {
                subject = resources.getString("email.comment.title") + ": ";
            }
            subject += entry.getTitle();
           
            //------------------------------------------
            // --- Send message to email recipients
            try {
                javax.naming.Context ctx = (javax.naming.Context)
View Full Code Here

TOP

Related Classes of org.apache.roller.pojos.WeblogEntryData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.