def __init__(self, wip_id, auth_key): #super(Behance, self).__init__(auth_key) Behance.__init__(self, auth_key) self.wip_id = wip_id self.base_url = url_join(ENDPOINTS['api'], ENDPOINTS['wip']) self._get_wip_details()
def __init__(self, project_id, auth_key): Behance.__init__(self, auth_key) self.project_id = project_id self.base_url = url_join(ENDPOINTS['api'], ENDPOINTS['project']) #Call behance API and populate data self._get_project_details()
def project_search(self, *args, **kwargs): """Search for projects on Behance. Takes any number of text search terms, as well as key/value filters. Valid filters: [valid values] sort: [featured_date, appreciations, views, comments, published_date] time: [all, today, week, month] field: [URL-encoded field name from Behance list of defined creative fields] country: [2-letter FIPS country code] state: [State or province name] page: [page number of results, 1-indexed] tags: [single tag name or pipe separated list of tags] """ if len(args) == 0: #Make sure user provides search terms... return None else: #Build the URL _base_url = url_join(ENDPOINTS['api'], ENDPOINTS['project']) _terms = "+".join(urllib.parse.quote(arg) for arg in args) _filters = urllib.parse.urlencode(kwargs) _url = '%s?api_key=%s&q=%s&%s' % (_base_url, self.auth_key, _terms, _filters) #Get results from API return [Behance(data=proj) for proj in self._do_api_search(_url)['projects']]
def _get_project_details(self): """Internal function to call Behance API and parse data.""" #Build the URL _url = url_join(self.base_url, str(self.project_id)) _url = "%s?api_key=%s" % (_url, self.auth_key) #Call the API _results = self._get_api_data(_url)['project'] self.set_data(_results)
def _get_user_details(self): #Build the URL _url = url_join(self.base_url, str(self.user_id)) _url = "%s?api_key=%s" % (_url, self.auth_key) #Call the API _results = self._get_api_data(_url)['user'] self.set_data(_results)
def get_revision_comments(self, revision_id, **kwargs): _base_url = url_join(self.base_url, self.wip_id, str(revision_id), '/comments') if len(kwargs) > 0: _filters = urllib.urlencode(kwargs) _url = '%s?api_key=%s&%s' % (_base_url, self.auth_key, _filters) else: _url = '%s?api_key=%s' % (_base_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['comments'])
def get_projects(self, **kwargs): _base_url = url_join(self.base_url, self.collection_id, 'projects') if len(kwargs) > 0: _filters = urllib.urlencode(kwargs) _url = '%s?api_key=%s&%s' % (_base_url, self.auth_key, _filters) else: _url = '%s?api_key=%s' % (_base_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['projects'])
def get_following(self, **kwargs): _base_url = url_join(self.base_url, self.user_id, 'following') if len(kwargs) > 0: _filters = urllib.urlencode(kwargs) _url = '%s?api_key=%s&%s' % (_base_url, self.auth_key, _filters) else: _url = '%s?api_key=%s' % (_base_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['following'])
def wip_search(self, *args, **kwargs): if len(args) == 0: return None else: _base_url = url_join(ENDPOINTS['api'], ENDPOINTS['wip']) _terms = "+".join(urllib.parse.quote(arg) for arg in args) _filters = urllib.parse.urlencode(kwargs) _url = '%s?api_key=%s&q=%s&%s' % (_base_url, self.auth_key, _terms, _filters) #Get results from API return [Behance(data=wip) for wip in self._do_api_search(_url)['wips']]
def user_search(self, *args, **kwargs): """Search for users on Behance. Takes any number of text search terms, as well as key/value filters as supported by Behance API.""" if len(args) == 0: return None else: _base_url = url_join(ENDPOINTS['api'], ENDPOINTS['user']) _terms = "+".join(urllib.parse.quote(arg) for arg in args) _filters = urllib.parse.urlencode(kwargs) _url = '%s?api_key=%s&q=%s&%s' % (_base_url, self.auth_key, _terms, _filters) #Get results from API return [Behance(data=user) for user in self._do_api_search(_url)['users']]
def get_revision(self, revision_id): _url = url_join(self.base_url, self.wip_id, str(revision_id)) _url = '%s?api_key=%s' % (_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['revision'])
def _get_wip_details(self): _url = url_join(self.base_url, self.wip_id) _url = '%s?api_key=%s' % (_url, self.auth_key) _results = self._get_api_data(_url)['wip'] self.set_data(_results)
def __init__(self, collection_id, auth_key): Behance.__init__(self, auth_key) self.collection_id = collection_id self.base_url = url_join(ENDPOINTS['api'], ENDPOINTS['collection']) self._get_collection_details()
def _get_collection_details(self): _url = url_join(self.base_url, str(self.collection_id)) _url = "%s?api_key=%s" % (_url, self.auth_key) _results = self._get_api_data(_url)['collection'] self.set_data(_results)
def get_work_experience(self): _base_url = url_join(self.base_url, self.user_id, 'work_experience') _url = "%s?api_key=%s" % (_base_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['work_experience'])
def __init__(self, user_id, auth_key): Behance.__init__(self, auth_key) self.user_id = user_id self.base_url = url_join(ENDPOINTS['api'], ENDPOINTS['user']) self._get_user_details()
def get_stats(self): _base_url = url_join(self.base_url, self.user_id, 'stats') _url = "%s?api_key=%s" % (_base_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['stats'])
def get_comments(self): """Returns comments for a project as an attribute. If called more than once, will store the value to prevent repeatedly calling the API.""" _url = url_join(self.base_url, str(self.project_id), 'comments') _url = "%s?api_key=%s" % (_url, self.auth_key) return self._parse_data(self._get_api_data(_url)['comments'])