@@ -70,11 +70,6 @@ def login(self, force = False):
70
70
print ("Login success!\n " )
71
71
return True ;
72
72
73
- def tagFeed (self , tag ):
74
- userFeed = self .SendRequest ("feed/tag/" + tag + "/?rank_token=" + self .rank_token + "&ranked_content=true&" )
75
- # TODO Instagram.php 1000-1015
76
- return userFeed
77
-
78
73
def like (self , mediaId ):
79
74
data = json .dumps ({
80
75
'_uuid' : self .uuid ,
@@ -83,7 +78,7 @@ def like(self, mediaId):
83
78
'media_id' : mediaId
84
79
})
85
80
86
- return self .SendRequest (" media/" + str (mediaId ) + " /like/" , self .generateSignature (data ))
81
+ return self .SendRequest (' media/' + str (mediaId ) + ' /like/' , self .generateSignature (data ))
87
82
88
83
def SendRequest (self , endpoint , post = None , login = False ):
89
84
if (not self .isLoggedIn and not login ):
@@ -191,15 +186,15 @@ def editMedia(self, mediaId, captionText = ''):
191
186
'_csrftoken' : self .token ,
192
187
'caption_text' : captionText
193
188
})
194
- return self .SendRequest (" media/" + str (mediaId ) + " /edit_media/" , self .generateSignature (data ))
189
+ return self .SendRequest (' media/' + str (mediaId ) + ' /edit_media/' , self .generateSignature (data ))
195
190
196
191
def removeSelftag (self , mediaId ):
197
192
data = json .dumps ({
198
193
'_uuid' : self .uuid ,
199
194
'_uid' : self .username_id ,
200
195
'_csrftoken' : self .token
201
196
})
202
- return self .SendRequest (" media/" + str (mediaId ) + " /remove/" , self .generateSignature (data ))
197
+ return self .SendRequest (' media/' + str (mediaId ) + ' /remove/' , self .generateSignature (data ))
203
198
204
199
def mediaInfo (self , mediaId ):
205
200
data = json .dumps ({
@@ -208,7 +203,7 @@ def mediaInfo(self, mediaId):
208
203
'_csrftoken' : self .token ,
209
204
'media_id' : mediaId
210
205
})
211
- return self .SendRequest (" media/" + str (mediaId ) + " /info/" , self .generateSignature (data ))
206
+ return self .SendRequest (' media/' + str (mediaId ) + ' /info/' , self .generateSignature (data ))
212
207
213
208
def deleteMedia (self , mediaId ):
214
209
data = json .dumps ({
@@ -217,7 +212,7 @@ def deleteMedia(self, mediaId):
217
212
'_csrftoken' : self .token ,
218
213
'media_id' : mediaId
219
214
})
220
- return self .SendRequest (" media/" + str (mediaId ) + " /delete/" , self .generateSignature (data ))
215
+ return self .SendRequest (' media/' + str (mediaId ) + ' /delete/' , self .generateSignature (data ))
221
216
222
217
def comment (self , mediaId , commentText ):
223
218
data = json .dumps ({
@@ -226,7 +221,7 @@ def comment(self, mediaId, commentText):
226
221
'_csrftoken' : self .token ,
227
222
'comment_text' : commentText
228
223
})
229
- return self .SendRequest (" media/" + str (mediaId ) + " /comment/" , self .generateSignature (data ))
224
+ return self .SendRequest (' media/' + str (mediaId ) + ' /comment/' , self .generateSignature (data ))
230
225
231
226
def deleteComment (self , mediaId , captionText , commentId ):
232
227
data = json .dumps ({
@@ -235,7 +230,7 @@ def deleteComment(self, mediaId, captionText, commentId):
235
230
'_csrftoken' : self .token ,
236
231
'caption_text' : captionText
237
232
})
238
- return self .SendRequest (" media/" + str (mediaId ) + " /comment/" + str (commentId ) + " /delete/" , self .generateSignature (data ))
233
+ return self .SendRequest (' media/' + str (mediaId ) + ' /comment/' + str (commentId ) + ' /delete/' , self .generateSignature (data ))
239
234
240
235
def changeProfilePicture (self , photo ):
241
236
# TODO Instagram.php 705-775
@@ -247,31 +242,31 @@ def removeProfilePicture(self):
247
242
'_uid' : self .username_id ,
248
243
'_csrftoken' : self .token
249
244
})
250
- return self .SendRequest (" accounts/remove_profile_picture/" , self .generateSignature (data ))
245
+ return self .SendRequest (' accounts/remove_profile_picture/' , self .generateSignature (data ))
251
246
252
247
def setPrivateAccount (self ):
253
248
data = json .dumps ({
254
249
'_uuid' : self .uuid ,
255
250
'_uid' : self .username_id ,
256
251
'_csrftoken' : self .token
257
252
})
258
- return self .SendRequest (" accounts/set_private/" , self .generateSignature (data ))
253
+ return self .SendRequest (' accounts/set_private/' , self .generateSignature (data ))
259
254
260
255
def setPublicAccount (self ):
261
256
data = json .dumps ({
262
257
'_uuid' : self .uuid ,
263
258
'_uid' : self .username_id ,
264
259
'_csrftoken' : self .token
265
260
})
266
- return self .SendRequest (" accounts/set_public/" , self .generateSignature (data ))
261
+ return self .SendRequest (' accounts/set_public/' , self .generateSignature (data ))
267
262
268
263
def getProfileData (self ):
269
264
data = json .dumps ({
270
265
'_uuid' : self .uuid ,
271
266
'_uid' : self .username_id ,
272
267
'_csrftoken' : self .token
273
268
})
274
- return self .SendRequest (" accounts/current_user/?edit=true" , self .generateSignature (data ))
269
+ return self .SendRequest (' accounts/current_user/?edit=true' , self .generateSignature (data ))
275
270
276
271
def editProfile (self , url , phone , first_name , biography , email , gender ):
277
272
data = json .dumps ({
@@ -286,10 +281,13 @@ def editProfile(self, url, phone, first_name, biography, email, gender):
286
281
'email' : email ,
287
282
'gender' : gender ,
288
283
})
289
- return self .SendRequest (" accounts/edit_profile/" , self .generateSignature (data ))
284
+ return self .SendRequest (' accounts/edit_profile/' , self .generateSignature (data ))
290
285
291
286
def getUsernameInfo (self , usernameId ):
292
- return self .SendRequest ("users/" + str (usernameId ) + "/info/" )
287
+ return self .SendRequest ('users/' + str (usernameId ) + '/info/' )
288
+
289
+ def getSelfUsernameInfo (self ):
290
+ return self .getUsernameInfo (self .username_id )
293
291
294
292
def getRecentActivity (self ):
295
293
activity = self .SendRequest ('news/inbox/?' )
@@ -307,15 +305,84 @@ def getv2Inbox(self):
307
305
return inbox
308
306
309
307
def getUserTags (self , usernameId ):
310
- tags = self .SendRequest ('usertags/' + str (usernameId ) + '/feed/?rank_token=' + self .rank_token + '&ranked_content=true&' )
308
+ tags = self .SendRequest ('usertags/' + str (usernameId ) + '/feed/?rank_token=' + str ( self .rank_token ) + '&ranked_content=true&' )
311
309
# TODO Instagram.php 975-985
312
310
return tags
313
311
314
312
def getSelfUserTags (self ):
315
313
return self .getUserTags (self .username_id )
316
314
317
- def getSelfUsernameInfo (self ):
318
- return self .getUsernameInfo (self .username_id )
315
+ def tagFeed (self , tag ):
316
+ userFeed = self .SendRequest ('feed/tag/' + str (tag ) + '/?rank_token=' + str (self .rank_token ) + '&ranked_content=true&' )
317
+ # TODO Instagram.php 1000-1015
318
+ return userFeed
319
+
320
+ def getMediaLikers (self , mediaId ):
321
+ likers = self .SendRequest ('media/' + str (mediaId ) + '/likers/?' )
322
+ # TODO Instagram.php 1025-1035
323
+ return likers
324
+
325
+ def getGeoMedia (self , usernameId ):
326
+ locations = self .SendRequest ('maps/user/' + str (usernameId ) + '/' )
327
+ # TODO Instagram.php 1050-1060
328
+ return locations
329
+
330
+ def getSelfGeoMedia (self ):
331
+ return self .getGeoMedia (self .username_id )
332
+
333
+ def fbUserSearch (self , query ):
334
+ query = self .SendRequest ('fbsearch/topsearch/?context=blended&query=' + str (query ) + '&rank_token=' + str (self .rank_token ))
335
+ # TODO Instagram.php 1080-1090
336
+ return query
337
+
338
+ def searchUsers (self , query ):
339
+ query = self .SendRequest ('users/search/?ig_sig_key_version=' + str (self .SIG_KEY_VERSION )
340
+ + '&is_typeahead=true&query=' + str (query ) + '&rank_token=' + str (self .rank_token ))
341
+ # TODO Instagram.php 1100-1110
342
+ return query
343
+
344
+ def searchUsername (self , usernameName ):
345
+ query = self .SendRequest ('users/' + str (usernameName ) + '/usernameinfo/' )
346
+ # TODO Instagram.php 1080-1090
347
+ return query
348
+
349
+ def syncFromAdressBook (self , contacts ):
350
+ return self .SendRequest ('address_book/link/?include=extra_display_name,thumbnails' , json .dumps (contacts ))
351
+
352
+ def searchTags (self , query ):
353
+ query = self .SendRequest ('tags/search/?is_typeahead=true&q=' + str (query ) + '&rank_token=' + str (self .rank_token ))
354
+ # TODO Instagram.php 1160-1170
355
+ return query
356
+
357
+ def getTimeline (self ):
358
+ query = self .SendRequest ('feed/timeline/?rank_token=' + str (self .rank_token ) + '&ranked_content=true&' )
359
+ # TODO Instagram.php 1180-1190
360
+ return query
361
+
362
+ def getUserFeed (self , usernameId , maxid = None , minTimestamp = None ):
363
+ # TODO Instagram.php 1200-1220
364
+ return False
365
+
366
+ def getSelfUserFeed (self ):
367
+ return self .getUserFeed (self .username_id )
368
+
369
+ def getHashtagFeed (self , hashtagString , maxid = None ):
370
+ # TODO Instagram.php 1230-1250
371
+ return False
372
+
373
+ def searchLocation (self , query ):
374
+ locationFeed = self .SendRequest ('fbsearch/places/?rank_token=' + str (self .rank_token ) + '&query=' + str (query ))
375
+ # TODO Instagram.php 1250-1270
376
+ return locationFeed
377
+
378
+ def getLocationFeed (self , locationId , maxid = None ):
379
+ # TODO Instagram.php 1280-1300
380
+ return False
381
+
382
+ def getPopularFeed (self ):
383
+ popularFeed = self .SendRequest ('feed/popular/?people_teaser_supported=1&rank_token=' + str (self .rank_token ) + '&ranked_content=true&' )
384
+ # TODO Instagram.php 1315-1325
385
+ return popularFeed
319
386
320
387
InstagramAPI = InstagramAPI ("login" , "password" )
321
388
InstagramAPI .login () # login
0 commit comments