Further work on parsing Reddit comments

This commit is contained in:
2010-05-12 16:02:29 +01:00
parent 16211fe982
commit d68a0907c6
3 changed files with 39 additions and 5 deletions

View File

@@ -6,6 +6,35 @@ from datetime import datetime
class NotLoggedIn(Exception): class NotLoggedIn(Exception):
pass pass
class Comment:
""" Abstraction for comment data provided by JSON
Comments can be identifed by Kind = 1 """
kind = 1
def __init__(self, data):
self.id = data['id']
self.post = data['link_id'][3:]
self.body = data['body']
self.ups = data['likes']
self.downs = data['downs']
self.subreddit_id = data['subreddit_id']
self.subreddit = data['subreddit']
self.author = data['author']
self._rawdata = data
@property
def permalink(self):
return u'http://reddit.com/comments/%s/c/%s' % (self.post, self.id)
def __unicode__(self):
return u'/r/%s - %s' % (self.subreddit, self.author)
def __str__(self):
return self.__unicode__()
class Message(dict): class Message(dict):
""" Abstract for a Reddit Message """ """ Abstract for a Reddit Message """

View File

@@ -3,6 +3,8 @@ from django.contrib.auth.models import User
import simplejson as json import simplejson as json
import urllib import urllib
from datetime import datetime from datetime import datetime
from reddit.api import Comment
class RedditAccount(models.Model): class RedditAccount(models.Model):
""" """
@@ -53,6 +55,9 @@ class RedditAccount(models.Model):
posts = [] posts = []
for item in jsondoc['data']['children']: for item in jsondoc['data']['children']:
if item['kind'] == 't1':
posts.append(Comment(item['data']))
elif item['kind'] == 't3':
posts.append(item['data']) posts.append(item['data'])
return posts return posts

View File

@@ -75,11 +75,11 @@
<h3>Reddit Posts</h3> <h3>Reddit Posts</h3>
<ul> <ul>
{% for post in posts %} {% for post in posts %}
{% if post.permalink %} {% ifequal post.kind 1 %}
<p><b><a href="http://reddit.com{{ post.permalink }}">{{ post.title }}</a></b> - /r/{{ post.subreddit }}</p> <p><b><a href="{{ post.permalink }}">{{ post.title }}</a></b> - /r/{{ post.subreddit }}</p>
{% else %} {% else %}
<p>{{ post.body }} - <a href="http://reddit.com/comments/{{ post.link_id }}/">Permalink</a></p> <p>{{ post.body }} - (/r/{{post.subreddit}}) <a href="{{ post.permalink }}/">Permalink</a></p>
{% endif %} {% endifequal %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}