J'utilise Feedzirra pour analyser mes flux RSS et cela fonctionne très bien - il est deux fois plus rapide Feed Normalizer dans mes tests initiaux. Plus important encore, il a de beaux wrappers qui vérifient les entrées mises à jour dans un flux. Quand j'utilisais son approche alimentation mise à jour, je suis tombé sur quelques questions:Vérification des flux RSS mis à jour avec Feedzirra
require 'feedzirra'
feed = Feedzirra::Feed.fetch_and_parse("http://feeds.feedburner.com/TechCrunch")
puts feed.etag #outputs the right tag
Le code ci-dessus imprime le ETag correct (vérifié avec Firebug). Maintenant, quand je veux vérifier les mises à jour, feedzirra vous demande les etags actuels, la date de dernière modification, etc. Quand je lui donne le bon ETag, il dit qu'il n'y a pas de mises à jour - c'est génial. Cependant, si je ne spécifie pas de ETag, il n'attrape pas le dernier ETag après avoir saisi tous les flux. C'est un problème parce que si une mise à jour se produit et que j'ai un ETag obsolète, je ne serai jamais capable d'attraper le ETag court d'appeler fetch_and_parse - une perte d'un autre fetch.
feed_to_update = Feedzirra::Parser::Atom.new
feed_to_update.feed_url = "http://feeds.feedburner.com/TechCrunch"
feed_to_update.etag = nil
feed_to_update.last_modified = nil
last_entry = Feedzirra::Parser::AtomEntry.new
last_entry.url = nil
feed_to_update.entries = [last_entry]
updated_feed = Feedzirra::Feed.update(feed_to_update)
puts updated_feed.updated?
puts updated_feed.etag
L'exemple ci-dessus est une version modifiée qui fait partie de la documentation de l'auteur: http://gist.github.com/132671. J'ai également essayé de donner une valeur ETag précédente et elle n'est pas mise à jour - j'ai choisi d'utiliser nil dans le code ci-dessus parce que les ETags changent fréquemment pour Techcrunch.
La sortie que je reçois est:
true
#note the above line is blank (basically printing nil)
que je fais quelque chose de mal et d'utiliser les fonctions correctement de quelque façon? ou est-ce un bug avec le programme? Avez-vous d'autres suggestions sur la recherche de flux mis à jour? Btw, j'ai aussi essayé d'utiliser la valeur 'last-modified-date' et pense toujours qu'il y a de nouvelles entrées même si la date correspond à la réponse de l'en-tête.
Merci, -e
mise à jour: Dans la sortie, je l'avais mal tapé 25 au-dessus de la ligne blanche. Je l'ai réparé maintenant. Pardon.