Skip to content
This repository was archived by the owner on Oct 4, 2023. It is now read-only.

Commit 24b37b2

Browse files
committed
Add GET queries with params; replies
1 parent e61d1a4 commit 24b37b2

3 files changed

Lines changed: 31 additions & 10 deletions

File tree

imgur-python/imgur/factory.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,24 @@ def build_oauth(access, refresh, expire_time=None):
4747
else:
4848
return AccessToken(access, refresh, expire_time)
4949

50+
def build_get_request(self, endpoint, urlparams=None):
51+
if isinstance(endpoint, str):
52+
url = self.API_URL + endpoint
53+
else:
54+
url = self.API_URL + '3/' + ('/'.join(endpoint)) + ".json"
55+
56+
if urlparams is not None:
57+
req = urllibrequest(url + '?' + urllibencode(urlparams))
58+
else:
59+
req = urllibrequest(url)
60+
61+
return req
62+
63+
def build_put_request(self, endpoint, data=None):
64+
self.build_request(self, endpoint, data, 'PUT')
65+
def build_post_request(self, endpoint, data=None):
66+
self.build_request(self, endpoint, data, 'POST')
67+
5068
def build_request(self, endpoint, data=None, method=None):
5169
"""Expects an endpoint like 'image.json' or a tuple like ('gallery', 'hot', 'viral', '0').
5270
Prepends 3/ and appends \.json to the tuple-form, not the endpoint form."""

imgur-python/imgur/imgur.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ def retrieve(self, request):
4848
if res['success'] is not True:
4949
raise Exception(res['data']['error']['message'])
5050

51-
return res['data']
51+
return res['data']

imgur-python/main.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
'comment',
2020
'vote-gallery',
2121
'vote-comment',
22-
'add-album-image'
22+
'add-album-image',
23+
'replies'
2324
]
2425

2526
oauth_commands = [
@@ -130,14 +131,14 @@ def handle_authorized_commands(factory, action):
130131
print('Comment too long (trim by %d characters).' % (len(text) - 140))
131132
sys.exit(1)
132133

133-
req = factory.build_request(('gallery', item_hash, 'comment'), {
134+
req = factory.build_post_request(('gallery', item_hash, 'comment'), {
134135
'comment': text
135136
})
136137
elif action == 'add-album-image':
137138
album_id = sys.argv[3]
138139
image_ids = ','.join(sys.argv[4:])
139140

140-
req = factory.build_request(('album', album_id), {
141+
req = factory.build_put_request(('album', album_id), {
141142
'ids[]': image_ids
142143
}, 'PUT')
143144

@@ -149,7 +150,9 @@ def handle_authorized_commands(factory, action):
149150
else:
150151
target = ('comment', target_id, 'vote', vote)
151152

152-
req = factory.build_request(target, "")
153+
req = factory.build_get_request(target, "")
154+
elif action == 'replies':
155+
req = factory.build_get_request(('account', 'me', 'notifications', 'replies'), {'new': 'false'})
153156

154157
try:
155158
res = imgur.retrieve(req)
@@ -169,7 +172,7 @@ def handle_oauth_commands(factory, config, action):
169172
imgur = factory.build_api()
170173

171174
if action == 'credits':
172-
req = factory.build_request(('credits',))
175+
req = factory.build_get_request(('credits',))
173176
res = imgur.retrieve(req)
174177
print(res)
175178
elif action == 'refresh':
@@ -222,19 +225,19 @@ def handle_unauthorized_commands(factory, action):
222225
else:
223226
if action == 'list-comments':
224227
item_hash = sys.argv[2]
225-
req = factory.build_request(('gallery', item_hash, 'comments'))
228+
req = factory.build_get_request(('gallery', item_hash, 'comments'))
226229

227230
if action == 'get-album':
228231
id = sys.argv[2]
229-
req = factory.build_request(('album', id))
232+
req = factory.build_get_request(('album', id))
230233

231234
if action == 'get-comment':
232235
cid = sys.argv[2]
233-
req = factory.build_request(('comment', cid))
236+
req = factory.build_get_request(('comment', cid))
234237

235238
if action == 'get-gallery':
236239
id = sys.argv[2]
237-
req = factory.build_request(('gallery', id))
240+
req = factory.build_get_request(('gallery', id))
238241

239242
res = imgur.retrieve(req)
240243
print(res)

0 commit comments

Comments
 (0)