/** * blogger.getPost retieves a given post. * * This API call is not documented on * {@link http://www.blogger.com/developers/api/1_docs/} * @see http://www.sixapart.com/developers/xmlrpc/blogger_api/bloggergetpost.html * * @param xmlrpcmsg XML-RPC Message * 0 appkey (string): Unique identifier/passcode of the application sending the post. * (See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .) * 1 postid (string): Unique identifier of the post to be deleted. * 2 username (string): Login for a Blogger user who has permission to edit the given * post (either the user who originally created it or an admin of the blog). * 3 password (string): Password for said username. * @return xmlrpcresp XML-RPC Response */ function blogger_getpost($m) { // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 2, 3))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: if (!xmlrpcs_can_view_item($edited_Item, $current_User)) { return xmlrpcs_resperror(3); } logIO('Permission granted.'); $post_date = mysql2date('U', $edited_Item->issue_date); $post_date = gmdate('Ymd', $post_date) . 'T' . gmdate('H:i:s', $post_date); $content = '<title>' . $edited_Item->title . '</title>'; $content .= '<category>' . $edited_Item->main_cat_ID . '</category>'; $content .= $edited_Item->content; $struct = new xmlrpcval(array('userid' => new xmlrpcval($edited_Item->creator_user_ID), 'dateCreated' => new xmlrpcval($post_date, 'dateTime.iso8601'), 'content' => new xmlrpcval($content), 'postid' => new xmlrpcval($edited_Item->ID)), 'struct'); logIO('OK.'); return new xmlrpcresp($struct); }
/** * mt.publishPost * * @see http://www.sixapart.com/developers/xmlrpc/movable_type_api/mtpublishpost.html * * @param xmlrpcmsg XML-RPC Message * 0 postid (string): Unique identifier of the post to publish * 1 username (string): Login for a user who is member of the blog. * 2 password (string): Password for said username. */ function mt_publishPost($m) { global $localtimenow, $DB; // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 1, 2))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } logIO('mt_publishPost: Login OK'); // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) { // Failed, return (last) error: return xmlrpcs_resperror(); } if (!$current_User->check_perm('item_post!published', 'edit', false, $edited_Item)) { return xmlrpcs_resperror(3); // Permission denied } logIO('mt_publishPost: Permission granted'); logIO('mt_publishPost: Old post status: ' . $edited_Item->status); $edited_Item->set('status', 'published'); //$edited_Item->set( 'datestart', date('Y-m-d H:i:s', $localtimenow) ); if ($edited_Item->dbupdate() === false) { // Could not update item... return xmlrpcs_resperror(99, 'Database error: ' . $DB->last_error); // DB error } logIO('mt_publishPost: Item published.'); // Execute or schedule notifications & pings: logIO('mt_publishPost: Handling notifications...'); $edited_Item->handle_post_processing(false, false); logIO('mt_publishPost: OK.'); return new xmlrpcresp(new xmlrpcval(1, 'boolean')); }
/** * mt.getPostCategories : Get the categories for a given post. * * @param xmlrpcmsg XML-RPC Message * 0 postid (string): Unique identifier of the post to query * 1 username (string): Login for a Blogger user who is member of the blog. * 2 password (string): Password for said username. */ function mt_getPostCategories($m) { global $xmlrpcerruser; global $DB; // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 1, 2))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: (we need at least one post/edit status) if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) { // Permission denied return xmlrpcs_resperror(3); // User error 3 } logIO('Permission granted.'); $categories = postcats_get_byID($edited_Item->ID); // Secondary categories $iSize = count($categories); // The number of objects ie categories logIO("mt_getgategorylist no of categories..." . $iSize); // works $struct = array(); for ($i = 0; $i < $iSize; $i++) { logIO("mt_getPostCategories categories ..." . $categories[$i]); // In database cat_ID and cat_name from tablecategories $sql = "SELECT * FROM T_categories WHERE cat_ID = {$categories[$i]} "; logIO("mt_getgategorylist sql..." . $sql); $rows = $DB->get_results($sql); foreach ($rows as $row) { $Categoryname = $row->cat_name; logIO("mt_getPostCategories Categoryname ..." . $Categoryname); } // Is this the primary cat? $isPrimary = $categories[$i] == $edited_Item->main_cat_ID ? 1 : 0; $struct[$i] = new xmlrpcval(array("categoryId" => new xmlrpcval($categories[$i]), "categoryName" => new xmlrpcval($Categoryname), "isPrimary" => new xmlrpcval($isPrimary)), "struct"); } logIO('OK.'); return new xmlrpcresp(new xmlrpcval($struct, "array")); }
/** * wp.newComment * * @see http://codex.wordpress.org/XML-RPC_wp#wp.newComment * * Leave the second and third parameter blank to send anonymous comments * * @param xmlrpcmsg XML-RPC Message * 0 blogid (int): Unique identifier of the blog. * 1 username (string): User login. * 2 password (string): Password for said username. * 3 post_id (int): Target post ID * 4 params (struct): * - comment_parent (int) * - content (string) * - author (string) * - author_url (string) * - author_email (string) */ function wp_newcomment($m) { // GET BLOG: /** * @var Blog */ if (!($Blog =& xmlrpcs_get_Blog($m, 0))) { // Blog not found return xmlrpcs_resperror(); } if (!($commented_Item =& xmlrpcs_get_Item($m, 3))) { // Item not found return xmlrpcs_resperror(); } $username = $m->getParam(1); $username = $username->scalarval(); $password = $m->getParam(2); $password = $password->scalarval(); $options = $m->getParam(4); $options = xmlrpc_decode_recurse($options); logIO('Params: ' . var_export($options, true)); $User = NULL; if (!empty($password) || !empty($username)) { // Not an anonymous comment, let's check username // CHECK LOGIN: /** * @var User */ if (!($User =& xmlrpcs_login($m, 1, 2))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } } $params = array('User' => &$User, 'password' => $password, 'username' => $username, 'content' => $options['content'], 'comment_parent' => intval($options['comment_parent']), 'author' => $options['author'], 'author_url' => $options['author_url'], 'author_email' => $options['author_email']); return xmlrpcs_new_comment($params, $commented_Item); }
/** * b2.getPostURL * * @param xmlrpcmsg XML-RPC Message * 0 ? NO LONGER USED (was: blogid (string): Unique identifier of the blog to query) * 1 ? (string) * 2 username (string): Login for a Blogger user who is member of the blog. * 3 password (string): Password for said username.193 * * 4 post_ID (string): Post to query * @return xmlrpcresp XML-RPC Response */ function b2_getposturl($m) { global $xmlrpcerruser; global $siteurl; // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 2, 3))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 4))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: (we need at least one post/edit status) if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) { // Permission denied return xmlrpcs_resperror(3); // User error 3 } logIO('Permission granted.'); logIO('OK.'); return new xmlrpcresp(new xmlrpcval($edited_Item->get_permanent_url())); }
/** * b2.getPostURL * * @param xmlrpcmsg XML-RPC Message * 0 ? NO LONGER USED (was: blogid (string): Unique identifier of the blog to query) * 1 ? (string) * 2 username (string): Login for a Blogger user who is member of the blog. * 3 password (string): Password for said username.193 * * 4 post_ID (string): Post to query * @return xmlrpcresp XML-RPC Response */ function b2_getposturl($m) { // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 2, 3))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 4))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: (user needs to be able to view the item) if (!xmlrpcs_can_view_item($edited_Item, $User)) { // Permission denied return xmlrpcs_resperror(3); // User error 3 } logIO('OK.'); return new xmlrpcresp(new xmlrpcval($edited_Item->get_permanent_url())); }
/** * metaWeblog.deletePost deletes a given post. * * This API call is not documented on * {@link http://www.blogger.com/developers/api/1_docs/} * @see http://www.xmlrpc.com/stories/storyReader$2460 * * @param xmlrpcmsg XML-RPC Message * 0 appkey (string): Unique identifier/passcode of the application sending the post. * (See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .) * 1 postid (string): Unique identifier of the post to be deleted. * 2 username (string): Login for a Blogger user who has permission to edit the given * post (either the user who originally created it or an admin of the blog). * 3 password (string): Password for said username. * @return xmlrpcresp XML-RPC Response */ function mw_deletepost($m) { // CHECK LOGIN: if (!($current_User =& xmlrpcs_login($m, 2, 3))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) { // Failed, return (last) error: return xmlrpcs_resperror(); } return xmlrpcs_delete_item($edited_Item); }
/** * metaweblog.getPost retieves a given post. * * @see http://www.xmlrpc.com/metaWeblogApi#basicEntrypoints * * @param xmlrpcmsg XML-RPC Message * 0 postid (string): Unique identifier of the post * 1 username (string): Login for a Blogger user who has permission to edit the given * post (either the user who originally created it or an admin of the blog). * 2 password (string): Password for said username. * @return xmlrpcresp XML-RPC Response */ function mw_getpost($m) { global $xmlrpcerruser; // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 1, 2))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 0))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: (we need at least one post/edit status) if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) { // Permission denied return xmlrpcs_resperror(3); // User error 3 } logIO('Permission granted.'); $post_date = mysql2date("U", $edited_Item->issue_date); $post_date = gmdate("Ymd", $post_date) . "T" . gmdate("H:i:s", $post_date); $struct = new xmlrpcval(array('link' => new xmlrpcval($edited_Item->get_permanent_url()), 'title' => new xmlrpcval($edited_Item->title), 'description' => new xmlrpcval($edited_Item->content), 'dateCreated' => new xmlrpcval($post_date, "dateTime.iso8601"), 'userid' => new xmlrpcval($edited_Item->creator_user_ID), 'postid' => new xmlrpcval($edited_Item->ID), 'content' => new xmlrpcval($edited_Item->content), 'permalink' => new xmlrpcval($edited_Item->get_permanent_url()), 'categories' => new xmlrpcval($edited_Item->main_cat_ID)), "struct"); $resp = $struct; logIO('OK.'); return new xmlrpcresp($resp); }
/** * blogger.getPost retieves a given post. * * This API call is not documented on * {@link http://www.blogger.com/developers/api/1_docs/} * @see http://www.sixapart.com/developers/xmlrpc/blogger_api/bloggergetpost.html * * @param xmlrpcmsg XML-RPC Message * 0 appkey (string): Unique identifier/passcode of the application sending the post. * (See access info {@link http://www.blogger.com/developers/api/1_docs/#access} .) * 1 postid (string): Unique identifier of the post to be deleted. * 2 username (string): Login for a Blogger user who has permission to edit the given * post (either the user who originally created it or an admin of the blog). * 3 password (string): Password for said username. * @return xmlrpcresp XML-RPC Response */ function blogger_getpost($m) { global $xmlrpcerruser; // CHECK LOGIN: /** * @var User */ if (!($current_User =& xmlrpcs_login($m, 2, 3))) { // Login failed, return (last) error: return xmlrpcs_resperror(); } // GET POST: /** * @var Item */ if (!($edited_Item =& xmlrpcs_get_Item($m, 1))) { // Failed, return (last) error: return xmlrpcs_resperror(); } // CHECK PERMISSION: (we need at least one post/edit status) // (we should be able to see even if we cannot edit the particular status of that post) if (!$current_User->check_perm('blog_post_statuses', 1, false, $edited_Item->blog_ID)) { // Permission denied return xmlrpcs_resperror(3); // User error 3 } logIO('Permission granted.'); $post_date = mysql2date("U", $edited_Item->issue_date); $post_date = gmdate("Ymd", $post_date) . "T" . gmdate("H:i:s", $post_date); $content = '<title>' . $edited_Item->title . '</title>'; $content .= '<category>' . $edited_Item->main_cat_ID . '</category>'; $content .= $edited_Item->content; $struct = new xmlrpcval(array('userid' => new xmlrpcval($edited_Item->creator_user_ID), 'dateCreated' => new xmlrpcval($post_date, 'dateTime.iso8601'), 'content' => new xmlrpcval($content), 'postid' => new xmlrpcval($edited_Item->ID)), "struct"); logIO('OK.'); return new xmlrpcresp($struct); }