narwal
narwal copied to clipboard
Thin Python 2.7 wrapper for reddit's API
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.