Pinging Technorati and Google with Django
This simple Django snippet demonstrates how to ping Technorati and Google when a blog post has been added or updated.
import xmlrpclib
from django.core import urlresolvers
from django.db.models import signals
from django.dispatch import dispatcher
from django.contrib.sites.models import Site
def send_pings(sender, instance):
base_url = 'http://%s' % Site.objects.get_current().domain
blog_url = '%s%s' % (base_url, urlresolvers.reverse('blog-index'))
entry_url = '%s%s' % (base_url, instance.get_absolute_url())
# Ping Technorati
j = xmlrpclib.Server('http://rpc.technorati.com/rpc/ping')
reply = j.weblogUpdates.ping('Jason Davies', entry_url)
# Ping Google Blog Search
j = xmlrpclib.Server('http://blogsearch.google.com/ping/RPC2')
reply = j.weblogUpdates.ping('Jason Davies', blog_url, entry_url)
dispatcher.connect(send_pings, sender=Entry, signal=signals.post_save)