« SpringSource Releases tc Server Developer Edition Preview | Main | Testing for Trace and Track »

10/28/2009

Bling v0.4 Released - Blog Ping Tool

I'm releasing an updated version of bling today.  Written in groovy, the changes and additions made in this version are as follows:

  1. Added 2 Additional Services:  BlogBuzzMachine and FeedBlitz.  
  2. IceRocket is no longer managed separately since using the same XML-RPC calls that everything else uses also now seems to work for IceRocket.  Right now, the section of the script that contained the separate IceRocket calls has been commented out and will be removed entirely in the net release.
  3. As mentioned above in the version 3.0 section, WeBlogALot has been removed.  In the time since version 3.0 was released, I never got a successful ping.
  4. The spooky and primitive output format utilizing whitespace and tabs has been replaced with padded output.  Thanks again to Mr.Haki for publishing his post about Padding Strings in Groovy.  
  5. Finally, fixed a potential bug in the !response.flerror section, where !response was actually set as !resp.
With this script, after modifying it to include your Blog Title and Blog URL, you can ping 22 blog directories, news aggregators, and other blog services.  This script is a bit different from all the other posts out there in that I've actually tested each endpoint and the ones included in bling seem to work.

The main bling page provides all the documentation and the main downloads page has been updated.  Source is below.

#!/usr/bin/env groovy

import groovy.net.xmlrpc.*
import groovy.util.slurpersupport.GPathResult

// You'll want to make this next section your own
def blogTitle = "YOUR_BLOG_TITLE_HERE"
def blogURL = "YOUR_BLOG_URL_HERE"

// Set up a map (hash) of popular rpc endpoints
// It is too bad for my syntax highlighter, but some of 
// the blogs containing periods in their names necessitated
// placing them in quotes. 

def trackbacks = [
 Google:'http://blogsearch.google.com/ping/RPC2',
 Weblogs:'http://rpc.weblogs.com/RPC2',
 FeedBurner:'http://ping.feedburner.com/',
 Moreover:'http://api.moreover.com/RPC2',
 Syndic8:'http://ping.syndic8.com/xmlrpc.php' ,
 BlogRolling:'http://rpc.blogrolling.com/pinger/',
 Technorati:'http://rpc.technorati.com/rpc/ping' ,
 NewsGator:'http://services.newsgator.com/ngws/xmlrpcping.aspx',
 Bloglines:'http://www.bloglines.com/ping',
 'Blo.gs':'http://ping.blo.gs/',
 BlogCatalog:'http://rpc.blogcatalog.com/',
 PubSub:'http://xping.pubsub.com/ping/',
 'MyBlog.jp':'http://ping.myblog.jp/',
 Goo:'http://blog.goo.ne.jp/XMLRPC',
 BlogPeople:'http://www.blogpeople.net/servlet/weblogUpdates',
 Twingly:'http://rpc.twingly.com/',
 Spinn3r:'http://rpc.spinn3r.com/open/RPC2',
 PostRank:'http://api.postrank.com/v2/ping',
 WasaLive:'http://www.wasalive.com/ping/',
 BlogBuzzMachine:'http://rpc.blogbuzzmachine.com/RPC2',
 IceRocket:'http://rpc.icerocket.com:10080/',
 FeedBlitz:'http://www.feedblitz.com/f/f.fbz?XmlPing',
 ]

// Set up canned responses to make the outputted responses nicer.
// Previously, the output used the literal response from the endpoint
// which did not look all that nice in a terminal window.
def weal = "Thanks for the ping!"
def woe = "PING ATTEMPT FAILED."

// Here is the section responsible for iterating through each ping
// url in the trackbacks map.

println "====PING RESULTS===="
trackbacks.each {
 try{
 def url = it.value
 def proxy = new XMLRPCServerProxy(url)
 response = proxy.weblogUpdates.ping(blogTitle, blogURL)
 response.data instanceof GPathResult

 if (!response.flerror)
 println " ${it.key}".padRight(25) + "${weal}"
 else
 println " ${it.key}".padRight(25) + "${woe}"

 }catch(ConnectException ex) {
 println " ${it.key}".padRight(25) + "${woe}" 
 }catch(IOException ex){
 println " ${it.key}".padRight(25) + "${woe}"
 }
}
println "===================="

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a01156fbc6fe6970c0120a627f658970b

Listed below are links to weblogs that reference Bling v0.4 Released - Blog Ping Tool:

Comments