Example #1
0
def get_tag_media(tag_name, from_time, to_time):
    config = ConfigParser.ConfigParser()
    config.read('insta-stalker.cfg')

    access_token = config.get('insta-stalker', 'access_token')
    api = InstagramAPI(access_token=access_token)

    count = 20

    print 'from_time: ' + str(timestamp_to_datetime(from_time / 1000))
    print 'to_time: ' + str(timestamp_to_datetime(to_time / 1000))

    max_id = to_time
    while max_id > from_time:

        recent_media, next = api.tag_recent_media(count, max_id, tag_name)

        # print 'count: ' + str(len(recent_media))

        for media in recent_media:
            # print 'username: '******'link: ' + media.link
            print 'time: ' + str(media.created_time)
            # print 'id: ' + media.id
            # print 'url: ' + media.images['standard_resolution'].url

        parsednext = urlparse.urlparse(next)

        max_id = int(urlparse.parse_qs(parsednext.query)['max_tag_id'][0])

        print 'max_tag_id: ' + str(max_id) + ' (' + str(timestamp_to_datetime(max_id / 1000)) + ')'
Example #2
0
    def parse(self):
        self._response['remote_id'] = self._response.pop('id')

        for prefix in ['video', 'image']:
            key = '%ss' % prefix
            if key in self._response:
                for k, v in self._response[key].items():
                    media = self._response[key][k]
                    if isinstance(media, ApiModel):
                        media = media.__dict__
                    self._response['%s_%s' % (prefix, k)] = media['url']

        if not isinstance(self._response['created_time'], datetime):
            self._response['created_time'] = timestamp_to_datetime(self._response['created_time'])

        if 'comment_count' in self._response:
            self._response['comments_count'] = self._response.pop('comment_count')
        elif 'comments' in self._response:
            self._response['comments_count'] = self._response.pop('comments')['count']

        if 'like_count' in self._response:
            self._response['likes_count'] = self._response.pop('like_count')
        elif 'likes' in self._response:
            self._response['likes_count'] = self._response.pop('likes')['count']

        if isinstance(self._response['caption'], ApiModel):
            self._response['caption'] = self._response['caption'].text
        elif isinstance(self._response['caption'], dict):
            self._response['caption'] = self._response['caption']['text']

        # if 'likes' in self._response:
        #     self._response['likes_users'] = self._response.pop('likes')

        super(Media, self).parse()
Example #3
0
 def test_timestamp_to_datetime(self):
     date_time = timestamp_to_datetime(float(self.timestamp))
     self.assertTrue(date_time.tzinfo is not None)
     self.assertEqual(date_time.tzinfo, pytz.UTC)