Esempio n. 1
0
 def get_rate_limits(self):
     '''Actualizando llamdas restantes a la api'''
     try:
         rtn = self.http.request('%s/account/rate_limit_status' %
                                 self.apiurl)
         return Response(self.__create_rate(rtn), 'rate')
     except TurpialException, exc:
         return Response(None, 'error', exc.msg)
Esempio n. 2
0
    def get_favorites(self):
        '''Actualizando favoritos'''
        self.log.debug('Descargando favoritos')

        try:
            rtn = self.http.request('%s/favorites' % self.apiurl)
            self.favorites = self.response_to_statuses(rtn)
            return Response(self.favorites, 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 3
0
 def filter_term(self, args):
     arg = args['arg']
     print "protocols.py: ", arg, type(arg).__name__
     if type(arg).__name__ == 'list':
         self._filter_by_list(arg)
     else:
         self._filter_by_term(arg)
     
     return (Response(self.get_muted_timeline(self.timeline), 'status'), 
             Response(self.get_muted_timeline(self.replies), 'status'),
             Response(self.get_muted_timeline(self.favorites), 'status'))
Esempio n. 4
0
 def start_oauth(self, args):
     auth = args['auth']
     if auth['oauth-key'] != '' and auth['oauth-secret'] != '' and \
     auth['oauth-verifier'] != '':
         token = self.http.build_token(auth)
         return Response(token, 'auth-done')
     else:
         try:
             url = self.http.request_token()
             return Response(url, 'auth-token')
         except TurpialException, exc:
             return Response(None, 'error', exc.msg)
Esempio n. 5
0
    def get_timeline(self, args):
        '''Actualizando linea de tiempo'''
        self.log.debug('Descargando timeline')
        count = args['count']

        try:
            rtn = self.http.request('%s/statuses/home_timeline' % self.apiurl,
                                    {'count': count})
            self.timeline = self.response_to_statuses(rtn)
            return Response(self.get_muted_timeline(self.timeline), 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 6
0
    def destroy_direct(self, args):
        '''Destruyendo tweet directo'''
        id = args['id']
        self.log.debug('Destruyendo directo: %s' % id)

        try:
            rtn = self.http.request('%s/direct_messages/destroy' % self.apiurl,
                                    {'id': id})
            self._destroy_direct(rtn['id'])
            return Response(self.directs, 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 7
0
    def get_replies(self, args):
        '''Actualizando menciones'''
        self.log.debug('Descargando menciones')
        count = args['count']

        try:
            rtn = self.http.request('%s/statuses/mentions' % self.apiurl,
                                    {'count': count})
            self.replies = self.response_to_statuses(rtn)
            return Response(self.replies, 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 8
0
    def get_directs(self, args):
        '''Actualizando mensajes directos'''
        self.log.debug('Descargando directos')
        count = args['count']

        try:
            rtn = self.http.request('%s/direct_messages' % self.apiurl,
                                    {'count': count})
            self.directs = self.response_to_statuses(rtn, type=UPDATE_TYPE_DM)
            return Response(self.directs, 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 9
0
 def search(self, args):
     ''' Buscando en Twitter '''
     query = args['query']
     count = args['count']
     self.log.debug('Buscando tweets: %s' % query)
     
     try:
         rtn = self.http.request('%s/search' % self.apiurl2, 
             {'q': query, 'rpp': count})
         return Response(self.response_to_statuses(rtn['results']), 'status')
     except TurpialException, exc:
         return Response(None, 'error', exc.msg)
Esempio n. 10
0
    def get_sent(self, args):
        '''Actualizando mensajes enviados'''
        self.log.debug('Descargando mis dents')
        count = args['count']

        try:
            rtn = self.http.request('%s/statuses/user_timeline' % self.apiurl,
                                    {'count': count})
            self.directs = self.response_to_statuses(rtn)
            return Response(self.directs, 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 11
0
    def follow(self, args):
        '''Siguiendo a un amigo'''
        user = args['user']
        self.log.debug('Siguiendo a: %s' % user)

        try:
            rtn = self.http.request('%s/friendships/create' % self.apiurl,
                                    {'screen_name': user})
            user = self.__create_profile(rtn)
            self._add_friend(user)
            return Response([self.profile, user, True], 'mixed')
        except TurpialException, exc:
            return Response([None, user, True], 'error', exc.msg)
Esempio n. 12
0
    def unfollow(self, args):
        '''Dejando de seguir a un amigo'''
        user = args['user']
        self.log.debug('Dejando de seguir a: %s' % user)

        try:
            rtn = self.http.request('%s/friendships/destroy' % self.apiurl,
                                    {'screen_name': user})
            user = self.__create_profile(rtn)
            self._del_friend(user)
            return Response([self.profile, user, False], 'mixed')
        except TurpialException, exc:
            return Response(False, 'error', exc.msg)
Esempio n. 13
0
    def destroy_status(self, args):
        '''Destruyendo tweet'''
        id = args['id']
        self.log.debug('Destruyendo tweet: %s' % id)

        try:
            rtn = self.http.request('%s/statuses/destroy' % self.apiurl,
                                    {'id': id})
            self._destroy_status(str(rtn['id']))
            return (Response(self.get_muted_timeline(self.timeline),
                             'status'), Response(self.favorites, 'status'))
        except TurpialException, exc:
            return (Response(None, 'error',
                             exc.msg), Response(None, 'error', exc.msg))
Esempio n. 14
0
    def repeat(self, args):
        '''Haciendo retweet'''
        id = args['id']
        self.log.debug('Retweet: %s' % id)

        try:
            rtn = self.http.request('%s/statuses/retweet' % self.apiurl, args)
            #users = self.__get_retweet_users(id)
            status = self.__create_status(rtn)
            #status.retweet_by = users
            # FIXME: Modificar también los replies y favoritos
            self._add_status(self.timeline, status)
            return Response(self.get_muted_timeline(self.timeline), 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 15
0
    def get_list_statuses(self, args):
        '''Actualizando estados de una lista'''
        id = args['id']
        user = args['user']
        count = args['count']
        self.log.debug('Descargando lista %s' % id)

        try:
            rtn = self.http.request(
                '%s/%s/lists/%s/statuses' % (self.apiurl, user, id),
                {'per_page': count})
            statuses = self.response_to_statuses(rtn)
            return Response(self.get_muted_timeline(statuses), 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 16
0
    def auth(self, args):
        ''' Inicio de autenticacion segura '''
        self.log.debug('Iniciando autenticacion segura')
        username = args['username']
        password = args['password']

        try:
            self.http.auth(username, password, None)
            rtn = self.http.request('%s/account/verify_credentials' %
                                    self.apiurl)
            self.profile = self.__create_profile(rtn)
            self.profile.password = password
            return Response(self.profile, 'profile')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 17
0
 def update_profile(self, args):
     '''Actualizando perfil'''
     self.log.debug('Actualizando perfil')
     
     name = args['name']
     url = args['url']
     bio = args['bio']
     location = args['location']
     
     try:
         rtn = self.http.request('%s/account/update_profile' % self.apiurl, 
             {'name': name, 'url': url, 'location': location, 
             'description': bio})
         return Response(self.__create_profile(rtn), 'profile')
     except TurpialException, exc:
         return Response(None, 'error', exc.msg)
Esempio n. 18
0
    def get_friends_list(self):
        '''Descargando lista de amigos'''
        tries = 0
        count = 0
        cursor = -1
        friends = []

        self.log.debug('Descargando Lista de Amigos')
        while 1:
            try:
                rtn = self.http.request('%s/statuses/friends' % self.apiurl,
                                        {'cursor': cursor})
            except TurpialException, exc:
                tries += 1
                if tries < 3:
                    continue
                else:
                    return Response(None, 'error', exc.msg)

            for user in rtn['users']:
                friends.append(self.__create_profile(user))
                count += 1
            if rtn['next_cursor'] > 0:
                cursor = rtn['next_cursor']
                continue
            else:
                break
Esempio n. 19
0
    def get_lists(self):
        ''' Obteniendo las listas del usuario '''
        tries = 0
        count = 0
        cursor = -1
        lists = []

        self.log.debug('Descargando Listas del usuario')
        # Descargando listas propias
        while 1:
            try:
                rtn = self.http.request(
                    '%s/%s/lists' % (self.apiurl, self.profile.username),
                    {'cursor': cursor})
            except TurpialException, exc:
                tries += 1
                if tries < 3:
                    continue
                else:
                    return Response(None, 'error', exc.msg)

            for ls in rtn['lists']:
                lists.append(self.__create_list(ls))
                count += 1
            if rtn['next_cursor'] > 0:
                cursor = rtn['next_cursor']
                continue
            else:
                break
Esempio n. 20
0
    def update_status(self, args):
        '''Actualizando estado'''
        in_reply_id = args['in_reply_id']
        text = args['text']

        if in_reply_id:
            args['in_reply_to_status_id'] = in_reply_id

        args['status'] = text
        args['source'] = 'Turpial'
        self.log.debug(u'Nuevo tweet: %s' % text)

        try:
            rtn = self.http.request('%s/statuses/update' % self.apiurl, args)
            status = self.__create_status(rtn)
            self._add_status(self.timeline, status)
            return Response(self.get_muted_timeline(self.timeline), 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 21
0
    def update_status(self, args):
        '''Actualizando estado'''
        in_reply_id = args['in_reply_id']
        text = args['text']

        if in_reply_id:
            args = {'status': text, 'in_reply_to_status_id': in_reply_id}
        else:
            args = {'status': text}
        self.log.debug(u'Nuevo tweet: %s' % text)

        try:
            rtn = self.http.request('%s/statuses/update' % self.apiurl, args)
            # Evita que se duplique el último estado del usuario
            if rtn['id'] != self.profile.last_update_id:
                status = self.__create_status(rtn)
                self._add_status(self.timeline, status)
                self.profile.last_update = rtn['text']
                self.profile.last_update_id = rtn['id']
            return Response(self.get_muted_timeline(self.timeline), 'status')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
Esempio n. 22
0
    def get_conversation(self, args):
        '''Obteniendo conversacion'''
        id = args['id']
        conversation = []

        self.log.debug(u'Obteniendo conversación:')

        while 1:
            try:
                rtn = self.http.request('%s/statuses/show' % self.apiurl,
                                        {'id': id})
            except TurpialException, exc:
                return Response(None, 'error', exc.msg)

            self.log.debug('--Descargado Tweet: %s' % id)
            conversation.append(rtn)

            if rtn['in_reply_to_status_id']:
                id = str(rtn['in_reply_to_status_id'])
            else:
                break
Esempio n. 23
0
    def unmark_favorite(self, args):
        '''Desmarcando tweet como favorito'''
        id = args['id']
        self.log.debug('Desmarcando tweet como favorito: %s' % id)

        try:
            rtn = self.http.request('%s/favorites/destroy' % self.apiurl,
                                    {'id': id})
            status = self.__create_status(rtn)
            self._unset_status_favorite(status)
            return (Response(self.get_muted_timeline(self.timeline),
                             'status'), Response(self.replies, 'status'),
                    Response(self.favorites, 'status'))
        except TurpialException, exc:
            return (Response(None, 'error',
                             exc.msg), Response(None, 'error', exc.msg),
                    Response(None, 'error', exc.msg))
Esempio n. 24
0
        self.log.debug('Iniciando autenticacion segura')
        username = args['username']
        password = args['password']

        try:
            self.http.auth(username, password, None)
            rtn = self.http.request('%s/account/verify_credentials' %
                                    self.apiurl)
            self.profile = self.__create_profile(rtn)
            self.profile.password = password
            return Response(self.profile, 'profile')
        except TurpialException, exc:
            return Response(None, 'error', exc.msg)
        except Exception, exc:
            self.log.debug('Authentication Error: %s' % exc)
            return Response(None, 'error', _('Authentication Error'))

    def start_oauth(self, args):
        auth = args['auth']
        token = self.http.build_token(auth)
        return Response(token, 'auth-done')

    def get_timeline(self, args):
        '''Actualizando linea de tiempo'''
        self.log.debug('Descargando timeline')
        count = args['count']

        try:
            rtn = self.http.request('%s/statuses/home_timeline' % self.apiurl,
                                    {'count': count})
            self.timeline = self.response_to_statuses(rtn)
Esempio n. 25
0
 def start_oauth(self, args):
     auth = args['auth']
     token = self.http.build_token(auth)
     return Response(token, 'auth-done')