示例#1
0
    def twitteruser_query(self, user, search):
        t_api = Twython()
        htmlentities = dict(
            map(lambda (key, value):
            ('&' + str(key) + ';', value), htmlentitydefs.entitydefs.items())
        )
        try:
            unitext = ''
            if search != None:
                query = search + ' from:' + user
                tweetlist = t_api.searchTwitter(q=query, rpp='1')
                if len(tweetlist['results']) > 0:
                    unitext = tweetlist['results'][0]['text']
                # else:
                #     tweetlist = t_api.getUserTimeline(screen_name=user,
                #                                       count='200',
                #                                       page='1')
                #     for tweet in tweetlist:
                #         if tweet['text'].lower().find(
                #             search.lower()) > -1:
                #             unitext = tweet['text']
                #             break
            else:
                tweetlist = t_api.getUserTimeline(screen_name=user,
                                                  count='1')
                unitext = tweetlist[0]['text']

            if len(unitext) > 0:
                msg = user + ': '
                msg = msg + saxutils.unescape(
                    unitext.encode("utf-8"), htmlentities)
                msg = msg.replace('\n', ' ')
                self.connection.notice(channel, msg)

        except (TwythonError, IndexError, KeyError, urllib2.HTTPError,
                urllib2.URLError) as e:
            print 'exception while retrieving user: ' + user
            print type(e)
            print e