Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

« Newer Snippets
Older Snippets »
2 total  XML / RSS feed 

quick fix for the broken wp_newCategory function in the wordpress xmlrpc.php

// just replace the original one and call each arg as a var from the xml client
// if you dont need desc and parent_id (pid) you also dont need to send the slug
// because its slugged by wp_insert_category anyway... ;)
// it also returns the category id if it already exists without adding a new one

function wp_newCategory($args) {
global $wpdb;
$this->escape($args);

$blog_id = (int) $args[0];
$username = $args[1];
$password = $args[2];
$category_name = $args[3];
$category_slug = $args[4];
$category_pid = $args[5];
$category_desc = $args[6];

if(!$this->login_pass_ok($username, $password)) {
return($this->error);
}

// Set the user context and make sure they are
// allowed to add a category.
set_current_user(0, $username);
if(!current_user_can("manage_categories", $page_id)) {
return(new IXR_Error(401, __("Sorry, you do not have the right to add a category.")));
}

// We need this to make use of the wp_insert_category()
// funciton.
require_once(ABSPATH . "wp-admin/admin-db.php");

$cats = $wpdb->get_results("SELECT cat_ID,cat_name,category_parent FROM $wpdb->categories WHERE cat_name = '".mysql_escape_string( $category_name )."' LIMIT 1", ARRAY_A);
if( count( $cats ) == 1 ) return( $cats[0]['cat_ID'] );

// If no slug was provided make it empty so that
// WordPress will generate one.
if(empty($category_slug)) {
$category_slug = "";
}

// If no parent_id was provided make it empty
// so that it will be a top level page (no parent).
if ( !isset($category_pid) )
$category_pid = "";

// If no description was provided make it empty.
if(empty($category_desc)) {
$category_desc = "";
}

$new_category = array(
"cat_name" => $category_name,
"category_nicename" => $category_slug,
"category_parent" => $category_pid,
"category_description" => $category_desc
);

$cat_id = wp_insert_category($new_category);
if(!$cat_id) {
return(new IXR_Error(500, __("Sorry, the new category failed.")));
}

return($cat_id);
}

Ruby script to post daily del.icio.us links to a blog.

This is a ruby script I (sloppily) cooked up to post daily del.icio.us links to my blog. It requires the Rubilicious library, and (because I'm lazy) is hardcoded to point at my blog.

Change the line

server = XMLRPC::Client.new( "cracker.mocephus.org", "/xmlrpc.php")


So that it points to your blog and your xmlrpc endpoint. Only tested with my Wordpress blog.

An example run would be:

./daily_delicious.rb myblogusername myblogpassword mydelicioususername mydeliciouspassword 1


The last argument is how many days back you'd like to gather links for.

Example post here

#!/usr/local/bin/ruby

require "xmlrpc/client"
require 'rubygems'
require_gem 'Rubilicious'

begin
        unless ARGV.size == 5
                $stderr.puts "Usage: $0 [bloguser] [blogpass] [deluser] [delpass] [days_back]"
                exit -1
        end
        bloguser,blogpass,deluser,delpass,days_back= ARGV

        # Gather Links
        links_date = (Time.now - (86400 * days_back.to_i))
        r = Rubilicious.new(deluser,delpass)
        content = "
    " r.posts(links_date.strftime("%Y-%m-%d")).each do |link| content += "
  • \"#{link['href']}\">#{link['href']}" content += "
      " content += "
    • Description: #{link['description']}
    • " content += "
    • #{link['extended']}
    • " content += "
    • Posted: #{link['time']}
    • " content += "
  • " end content += "
" content += "

Click \"http://del.icio.us/mocephus/\">here for all of my del.icio.us bookmarks." # Post Links To Blog Via XMLRPC server = XMLRPC::Client.new( "cracker.mocephus.org", "/xmlrpc.php") newPost = Hash.new newPost['title'] = "del.icio.us bookmarks - #{links_date.strftime('%m/%d/%Y')}" newPost['description'] = content result = server.call("metaWeblog.newPost",1,bloguser,blogpass,newPost,true) rescue XMLRPC::FaultException => e puts "XMLRPC Error: " puts e.faultCode puts e.faultString rescue StandardError => e puts e.to_s end

« Newer Snippets
Older Snippets »
2 total  XML / RSS feed