igorgue
igorgue

Reputation: 18252

Voting on Hacker News stories programmatically?

I decided to write an app like: http://michaelgrinich.com/hackernews/ but for Android devices, my idea will use a web application backend (because I rather code in Python and for the web than completely in Java for Android devices).

What I have right now implemented is something like this:

$ curl -i http://localhost:8080/stories.json?page=1\&stories=1
HTTP/1.0 200 OK
Date: Sun, 25 Apr 2010 07:59:37 GMT
Server: WSGIServer/0.1 Python/2.6.5
Content-Length: 296
Content-Type: application/json

[{"title": "Don\u2019t talk to aliens, warns Stephen Hawking", "url": "http://www.timesonline.co.uk/tol/news/science/space/article7107207.ece?", "unix_time": 1272175177, "comments": 15, "score": 38, "user": "chaostheory", "position": 1, "human_time": "Sun Apr 25 01:59:37 2010", "id": "1292241"}]

The next step (and final I think) is voting, my design is doing something like this:

$ curl -i http://localhost:8080/stories/1 -d "vote=up" -u username:password

Will vote up and:

$ curl -i http://localhost:8080/stories/1 -d "vote=down" -u username:password

Vote down.

I have no idea how to do it though... I was planning to use Twill but the login link is always different, e.g.:

http://news.ycombinator.com/x?fnid=7u89ccHKln

Later the Android app will consume this API.

Any experience with programmatically browsing Hacker News?

Upvotes: 0

Views: 653

Answers (1)

igorgue
igorgue

Reputation: 18252

Twill has a way to list all the links, and you get the links as an objects:

login_url = ''
for link in showlinks():
    if link.text == "login":
        login_url = link.url

go(login_url)

So link will be something like: http://news.ycombinator.com/x?fnid=SvdNlGQoqo

Upvotes: 2

Related Questions