From b58874666e3133c1dd80d8e45cec6582431f16ab Mon Sep 17 00:00:00 2001 From: Matvey Maslov Date: Sat, 30 Jul 2011 14:18:19 +0300 Subject: [PATCH] youtube_feed works --- profiles/views.py | 13 +++++++++++-- sources/youtube.py | 12 ++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/profiles/views.py b/profiles/views.py index 0a44fc7..3bad0d3 100644 --- a/profiles/views.py +++ b/profiles/views.py @@ -1,7 +1,16 @@ from django.shortcuts import render +from django.http import HttpResponseRedirect, HttpResponse + import json +from sources import youtube + +class ObjectEncoder(json.JSONEncoder): + def default(self, obj): + if hasattr(obj, '__json__'): + return obj.__json__() + return dict((k, v) for k, v in obj.__dict__.items() if not k.startswith("_")) def start(request): return render(request, 'profiles/start.html') @@ -12,5 +21,5 @@ def registration(request): def youtube_feed(request): - username = request.POST['username'] - return json.dumps([video for video in youtube.list_videos(username)]) + username = request.GET['username'] + return HttpResponse(json.dumps(youtube.list_videos(username), cls=ObjectEncoder)) diff --git a/sources/youtube.py b/sources/youtube.py index 1083177..9fb7137 100644 --- a/sources/youtube.py +++ b/sources/youtube.py @@ -10,7 +10,8 @@ def atom_datetime(atom_date): class YoutubeVideo(object): def __init__(self, entry): - self.entry = entry + self.title = entry.title.text + self.thumbnails = entry.media.thumbnail # def __getattr__(self, attr): # value = getattr(self.entry, attr) @@ -18,13 +19,8 @@ def __init__(self, entry): # return datetime.datetime.strptime(value.text, '%Y-%m-%dT%H:%M:%S.%fZ') # return value.text - @property - def title(self): - return self.entry.title.text - - @property - def thumbnails(self): - return entry.media.thumbnails + def json(self): + return self.__dict__ def __repr__(self): return "YoutubeVideo: '%s'" % self.title