From: Joshua Roesslein Date: Sat, 8 Jun 2013 21:56:06 +0000 (-0700) Subject: Switch search to API v1.1 endpoint. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=2098078d8634012c92e9f00a0fdfd9ea07b2236b;p=tweepy.git Switch search to API v1.1 endpoint. --- diff --git a/tweepy/__init__.py b/tweepy/__init__.py index 6ec29ea..24529e7 100644 --- a/tweepy/__init__.py +++ b/tweepy/__init__.py @@ -9,7 +9,7 @@ __version__ = '2.0' __author__ = 'Joshua Roesslein' __license__ = 'MIT' -from tweepy.models import Status, User, DirectMessage, Friendship, SavedSearch, SearchResult, ModelFactory, Category +from tweepy.models import Status, User, DirectMessage, Friendship, SavedSearch, SearchResults, ModelFactory, Category from tweepy.error import TweepError from tweepy.api import API from tweepy.cache import Cache, MemoryCache, FileCache diff --git a/tweepy/api.py b/tweepy/api.py index 3e9fe2a..3ad49d8 100644 --- a/tweepy/api.py +++ b/tweepy/api.py @@ -628,12 +628,10 @@ class API(object): """ search """ search = bind_api( - search_api = True, - path = '/search.json', - payload_type = 'search_result', payload_list = True, - allowed_param = ['q', 'lang', 'locale', 'rpp', 'page', 'since_id', 'geocode', 'show_user', 'max_id', 'since', 'until', 'result_type'] + path = '/search/tweets.json', + payload_type = 'search_results', + allowed_param = ['q', 'lang', 'locale', 'since_id', 'geocode', 'show_user', 'max_id', 'since', 'until', 'result_type'] ) - search.pagination_mode = 'page' """ trends/daily """ trends_daily = bind_api( diff --git a/tweepy/models.py b/tweepy/models.py index 8257e51..a0b78cd 100644 --- a/tweepy/models.py +++ b/tweepy/models.py @@ -209,34 +209,20 @@ class SavedSearch(Model): return self._api.destroy_saved_search(self.id) -class SearchResult(Model): +class SearchResults(ResultSet): @classmethod def parse(cls, api, json): - result = cls() - for k, v in json.items(): - if k == 'created_at': - setattr(result, k, parse_search_datetime(v)) - elif k == 'source': - setattr(result, k, parse_html_value(unescape_html(v))) - else: - setattr(result, k, v) - return result - - @classmethod - def parse_list(cls, api, json_list, result_set=None): - results = ResultSet() - results.max_id = json_list.get('max_id') - results.since_id = json_list.get('since_id') - results.refresh_url = json_list.get('refresh_url') - results.next_page = json_list.get('next_page') - results.results_per_page = json_list.get('results_per_page') - results.page = json_list.get('page') - results.completed_in = json_list.get('completed_in') - results.query = json_list.get('query') - - for obj in json_list['results']: - results.append(cls.parse(api, obj)) + results = SearchResults() + metadata = json['search_metadata'] + results.max_id = metadata.get('max_id') + results.since_id = metadata.get('since_id') + results.refresh_url = metadata.get('refresh_url') + results.completed_in = metadata.get('completed_in') + results.query = metadata.get('query') + + for status in json['statuses']: + results.append(Status.parse(api, status)) return results @@ -414,7 +400,7 @@ class ModelFactory(object): direct_message = DirectMessage friendship = Friendship saved_search = SavedSearch - search_result = SearchResult + search_results = SearchResults category = Category list = List relation = Relation