Python’s Universal Feed Parser, from Common Lisp
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.org
api.lisp
burgled-feedparser.asd
package.lisp

README.org

burgled-feedparser: Python’s Universal Feed Parser, from Common Lisp

burgled-feedparser provides a Common Lisp interface to Python’s Universal Feed Parser using the burgled-batteries library.

Synopsis

(asdf:load-system "burgled-feedparser")
(burgled-feedparser:parse "http://pinterface.livejournal.com/data/atom")
; => #<HASH-TABLE>

Why burgled-feedparser

I like Common Lisp better than Python. Python, on the other hand, has the defacto library for parsing feeds. Rather than tackle the immense job of attempting to port it and any dependencies which don’t current exist in CL; or writing some code in Python which outputs into a specific format that then must be parsed on the Lisp side; it seemed best to simply integrate the Python library into the CL image itself.

Basically, why port what you can subsume?

Public API

burgled-feedparser has four exported symbols.

PARSE
The Python function feedparser.parse(). This translates CPython pointers into Lisp objects as per BURGLED-BATTERIES.
PARSE*
The same as #’PARSE, except it does not do pointer translation.
USER-AGENT
The variable feedparser.USER_AGENT.
ACCESS
A general reader to make extracting values from nested structures easier. (Probably belongs in burgled-batteries.)

To Do

  • time struct support (requires work on burgled-batteries)
  • more advanced feedparser options (HTML cleaner settings, etc.)