diff --git a/imgurpython/client.py b/imgurpython/client.py index 544330b..54bd00e 100644 --- a/imgurpython/client.py +++ b/imgurpython/client.py @@ -1,6 +1,7 @@ import base64 import requests from .imgur.models.tag import Tag +from .imgur.models.topic import Topic from .imgur.models.album import Album from .imgur.models.image import Image from .imgur.models.account import Account @@ -679,3 +680,20 @@ def mark_notifications_as_read(self, notification_ids): def default_memes(self): response = self.make_request('GET', 'memegen/defaults') return [Image(meme) for meme in response] + + # Topic-related endpoints + def default_topics(self): + topics = self.make_request('GET', 'topics/defaults') + return [Topic(topic) for topic in topics] + + def gallery_topic(self, topic_id, sort='viral', page=0, windown='week'): + if sort == 'top': + response = self.make_request('GET', 'topics/%s/%s/%s/%d' % (topic_id, sort, window, page)) + else: + response = self.make_request('GET', 'topics/%s/%s/%d' % (topic_id, sort, page)) + + return build_gallery_images_and_albums(response) + + def gallery_topic_item(self, topic_id, item_id): + response = self.make_request('GET', 'topics/%s/%s' % (topic_id, item_id)) + return build_gallery_images_and_albums(response) diff --git a/imgurpython/imgur/models/topic.py b/imgurpython/imgur/models/topic.py new file mode 100644 index 0000000..2d0f336 --- /dev/null +++ b/imgurpython/imgur/models/topic.py @@ -0,0 +1,8 @@ +class Topic(object): + + def __init__(self, *initial_data, **kwargs): + for dictionary in initial_data: + for key, value in dictionary.iteritems(): + setattr(self, key, value) + for key, value in kwargs.iteritems(): + setattr(self, key, value)