⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bloggerapihandler.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.roller.presentation.xmlrpc;import org.apache.commons.lang.StringUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.xmlrpc.XmlRpcException;import org.roller.RollerException;import org.roller.model.Roller;import org.roller.model.UserManager;import org.roller.model.WeblogManager;import org.roller.pojos.PageData;import org.roller.pojos.UserData;import org.roller.pojos.WeblogEntryData;import org.roller.pojos.WebsiteData;import org.roller.presentation.RollerContext;import org.roller.presentation.RollerRequest;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Date;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import java.util.StringTokenizer;import java.util.Vector;import javax.servlet.http.HttpServletRequest;/** * Roller XML-RPC Handler for the Blogger v1 API. * * Blogger API spec can be found at http://plant.blogger.com/api/index.html * See also http://xmlrpc.free-conversant.com/docs/bloggerAPI * * @author David M Johnson */public class BloggerAPIHandler extends BaseAPIHandler{    static final long serialVersionUID = 2398898776655115019L;        private static Log mLogger =        LogFactory.getFactory().getInstance(RollerXMLRPCServlet.class);    public BloggerAPIHandler()    {        super();    }    //------------------------------------------------------------------------    /**     * Delete a Post     *     * @param appkey Unique identifier/passcode of the application sending the post     * @param postid Unique identifier of the post to be changed     * @param userid Login for a Blogger user who has permission to post to the blog     * @param password Password for said username     * @param publish Ignored     * @throws XmlRpcException     * @return     */    public boolean deletePost(String appkey, String postid, String userid,                              String password, boolean publish)                       throws Exception    {        mLogger.info("deletePost() Called =====[ SUPPORTED ]=====");        mLogger.info("     Appkey: " + appkey);        mLogger.info("     PostId: " + postid);        mLogger.info("     UserId: " + userid);        validate(userid,password);        Roller roller = RollerRequest.getRollerRequest().getRoller();        WeblogManager weblogMgr = roller.getWeblogManager();        try        {            WeblogEntryData entry = weblogMgr.retrieveWeblogEntry(postid);            entry.remove();            roller.commit();            flushPageCache(userid);        }        catch (Exception e)        {            String msg = "ERROR in blogger.deletePost: "+e.getClass().getName();            mLogger.error(msg,e);            e.printStackTrace();            throw new XmlRpcException(UNKNOWN_EXCEPTION, msg);        }        return true;    }    //------------------------------------------------------------------------    /**     * Edits the main index template of a given blog. Roller only support     * updating the main template, the default template of your weblog.     *     * @param appkey Unique identifier/passcode of the application sending the post     * @param blogid Unique identifier of the blog the post will be added to     * @param userid Login for a Blogger user who has permission to post to the blog     * @param password Password for said username     * @param template The text for the new template (usually mostly HTML).     * @param templateType Determines which of the blog's templates is to be set.     * @throws XmlRpcException     * @return     */    public boolean setTemplate(String appkey, String blogid, String userid,                               String password, String templateData,                               String templateType) throws Exception    {        mLogger.info("setTemplate() Called =====[ SUPPORTED ]=====");        mLogger.info("     Appkey: " + appkey);        mLogger.info("     BlogId: " + blogid);        mLogger.info("     UserId: " + userid);        mLogger.info("   Template: " + templateData);        mLogger.info("       Type: " + templateType);        validate(userid,password);        if (! templateType.equals("main"))        {            throw new XmlRpcException(                UNKNOWN_EXCEPTION, "Roller only supports main template");        }        try        {            Roller roller = RollerRequest.getRollerRequest().getRoller();            UserManager userMgr = roller.getUserManager();            PageData page = userMgr.retrievePage(templateType);            page.setTemplate(templateData);            userMgr.storePage(page);            flushPageCache(userid);            return true;        }        catch (RollerException e)        {            String msg = "ERROR in BlooggerAPIHander.setTemplate";            mLogger.error(msg,e);            throw new XmlRpcException(UNKNOWN_EXCEPTION,msg);        }    }    //------------------------------------------------------------------------    /**     * Returns the main or archive index template of a given blog     *     * @param appkey Unique identifier/passcode of the application sending the post     * @param blogid Unique identifier of the blog the post will be added to     * @param userid Login for a Blogger user who has permission to post to the blog     * @param password Password for said username     * @param templateType Determines which of the blog's templates will be returned. Currently, either "main" or "archiveIndex"     * @throws XmlRpcException     * @return     */    public String getTemplate(String appkey, String blogid, String userid,                              String password, String templateType)                       throws Exception    {        mLogger.info("getTemplate() Called =====[ SUPPORTED ]=====");        mLogger.info("     Appkey: " + appkey);        mLogger.info("     BlogId: " + blogid);        mLogger.info("     UserId: " + userid);        mLogger.info("       Type: " + templateType);        validate(userid,password);        try        {            Roller roller = RollerRequest.getRollerRequest().getRoller();            UserManager userMgr = roller.getUserManager();            PageData page = userMgr.retrievePage(templateType);            if ( null == page )            {                throw new XmlRpcException(UNKNOWN_EXCEPTION,"Template not found");            }            else            {                return page.getTemplate();            }        }        catch (Exception e)        {            String msg = "ERROR in BlooggerAPIHander.getTemplate";            mLogger.error(msg,e);            throw new XmlRpcException(UNKNOWN_EXCEPTION,msg);        }    }    //------------------------------------------------------------------------    /**     * Authenticates a user and returns basic user info (name, email, userid, etc.)     *     * @param appkey Unique identifier/passcode of the application sending the post     * @param userid Login for a Blogger user who has permission to post to the blog     * @param password Password for said username     * @throws XmlRpcException     * @return     */    public Object getUserInfo(String appkey, String userid, String password)                       throws Exception    {        mLogger.info("getUserInfo() Called =====[ SUPPORTED ]=====");        mLogger.info("     Appkey: " + appkey);        mLogger.info("     UserId: " + userid);        validate(userid,password);        try        {            Roller roller = RollerRequest.getRollerRequest().getRoller();            UserManager userMgr = roller.getUserManager();            UserData user = userMgr.getUser(userid);            // parses full name into two strings, firstname and lastname            String firstname = "", lastname = "";            StringTokenizer toker = new StringTokenizer(user.getFullName());            if (toker.hasMoreTokens())            {                firstname = toker.nextToken();            }            while (toker.hasMoreTokens())            {                if ( !lastname.equals("") )                {                    lastname += " ";                }                lastname += toker.nextToken();            }            RollerRequest rreq = RollerRequest.getRollerRequest();            HttpServletRequest req = rreq.getRequest();            String contextUrl =                RollerContext.getRollerContext(req).getAbsoluteContextUrl(req);                        // populates user information to return as a result            Hashtable result = new Hashtable();            result.put("nickname", user.getUserName());            result.put("userid", user.getUserName());            result.put("url", contextUrl+"/page/"+userid);            result.put("email", "");            result.put("lastname", lastname);            result.put("firstname", firstname);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -