Thin Python 2.7 wrapper for reddit's API
Python
Switch branches/tags
Nothing to show
Latest commit 58c409a May 21, 2012 @larryng version bump
Permalink
Failed to load latest commit information.
docs
narwal
tests
.gitignore
HISTORY.rst
LICENSE
MANIFEST.in
README.rst
requirements.txt
setup.py

README.rst

narwal

narwal (sic) is a Python wrapper for reddit's API made to be simple, intuitive, and concise, i.e. pythonic.

>>> import narwal
>>> session = narwal.connect('narwal_bot', 'hunter2', user_agent="i'm a narw(h)al!")
>>> frontpage = session.hot()
>>> for link in frontpage[:3]:
    ...   print link
    ...
    (3088) Words can not describe how much I love this pic of Obama and Clinton
    (1697) Rough day for a mom at the airport.
    (1370) I felt awful when this happened.
>>> frontpage[1].upvote()
<Response [200]>
>>> frontpage[1].comment('cool story bro')
<Comment [narwal_bot: cool story bro]>

See the docs at http://narwal.readthedocs.org/.

Works with Python 2.7.

Installation

To install, just do the usual:

$ pip install narwal

Examples

Start a session:

>>> import narwal
>>> session = narwal.connect(user_agent='narwal demo')

Start a logged in session:

>>> session = narwal.connect('narwal_bot', 'password', user_agent='narwal demo')

Get the front page:

>>> page1 = session.hot()

Get the next page:

>>> page2 = page1.more()

Get the fourth link's comments:

>>> comments = page1[3].comments()

Get the second link of r/test/top:

>>> link = session.top('test')[1]

Submit a comment to it:

>>> comment = link.comment('the narwhal ba--')

Downvote the comment we just submitted:

>>> comment.downvote()
<Response [200]>

And reply to it:

>>> comment.reply('NO! *slap*')
<Comment [(1) narwal_bot: NO! *slap*]>

Check our inbox:

>>> inbox = session.inbox()

Read the first message:

>>> print inbox[0]
larryng: hi there

Get the sender's account info and submissions:

>>> user = session.user(inbox[0].author)
>>> user.submitted()
[<Link [(1) test post please ...]>]

Plus a whole lot more, since most of the reddit API has been implemented. See the API docs (or the source) for more features.