Ejemplo n.º 1
0
    def timeline(self, timeline=None, since_id=None, count=DEFAULT_FETCH,
            callback=None, loadImages=True):
        args = {'count' : count}
        search = False
        if timeline.startswith('search.json'):
            # Special case search timeline
            search = True
            args = {'rpp' : count}

        if since_id:
            args['since_id'] = since_id

        sep = '?'
        if timeline.find('?') >= 0:
            sep = '&'
        data = None
        try:
            util.get_global('app').in_progress = True
            data = self._fetch('/%s%s%s' % (timeline, sep, urllib.urlencode(args)))
            if loadImages:
                if search:
                    data = data['results']
                for status in data:
                    who, img = None, None
                    if not search:
                        who = status['user']['screen_name']
                        img = status['user']['profile_image_url']
                    else:
                        who = status['from_user']
                        img = status['profile_image_url']

                    try:
                        util.saveImageToFile(who, img)
                    except Exception, ex:
                        logging.error('Downloading failed: %s %s' % (status, ex))
        finally:
            util.get_global('app').in_progress = False
            if not callback:
                return data
            gobject.idle_add(callback, data)