Ping FeedBurner в приложении Django - PullRequest
4 голосов
/ 10 апреля 2009

У меня есть сайт django, и некоторые каналы публикуются через FeedBurner. Я хотел бы пинговать FeedBurner всякий раз, когда я сохраняю экземпляр конкретной модели. На веб-сайте FeedBurner сказано использовать механизм ping XML-RPC, но я не могу найти много документации о том, как его реализовать.

Какой самый простой способ выполнить пинг XML-RPC в django / Python?

Ответы [ 3 ]

12 голосов
/ 10 апреля 2009

Вы можете использовать функцию Django signals, чтобы получить обратный вызов после сохранения модели:

import xmlrpclib
from django.db.models.signals import post_save
from app.models import MyModel

def ping_handler(sender, instance=None, **kwargs):
    if instance is None:
        return
    rpc = xmlrpclib.Server('http://ping.feedburner.google.com/')
    rpc.weblogUpdates.ping(instance.title, instance.get_absolute_url())

post_save.connect(ping_handler, sender=MyModel)

Очевидно, вы должны обновить это с тем, что работает для вашего приложения и прочитать сигналы на случай, если вы хотите другое событие.

2 голосов
/ 10 апреля 2009

Используйте подключаемые приложения, Люк!

http://github.com/svetlyak40wt/django-pingback/

1 голос
/ 10 апреля 2009

может быть, что-то вроде этого:

import xmlrpclib
j = xmlrpclib.Server('http://feedburnerrpc')
reply = j.weblogUpdates.ping('website title','http://urltothenewpost')
...