Exemplo n.º 1
0
  def _flickr(self, email):
    queries = {"email": "flickr.people.findByEmail",
               "user": "******"
               }

    params =  {"method": queries['email'],
               "api_key": FLICKR_KEY,
               "find_email": email,
               "format": "json"
               }

    response = http_request(email, "GET", FLICKR_HOST, FLICKR_PATH, params)
    if response.is_error():
     return response

    message = response['raw_data']
    # Jump over the first 14 characters and get the actual JSON
    message = message[RESPONSE_PREFIX_LENGTH:len(message)-1]
    data = simplejson.loads(message)

    if data['stat'] == 'fail':
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    user_id = data['user']['id']

    params['method'] = queries['user']
    params['user_id'] = str(user_id)
    del params['find_email']

    response = http_request(email, "GET", FLICKR_HOST, FLICKR_PATH, params)
    if response.is_error():
      return response

    return FlickrResponse(response)
Exemplo n.º 2
0
  def _google_plus(self, email):
    username = email[0:email.find('@')]
    host = email[email.find('@')+1:]

    domains = ['gmail', 'google']
    for domain in domains:
      to_check = True if host.find(domain) >= 0 else False
      if to_check is True:
        break

    if to_check is False:
      return Response(NOT_FOUND_ERROR_CODE,
        'Email address not matching Google\'s email naming policies', email)

    response = http_request(email, "GET", PICASA_HOST, "/%s" % username, {})

    if response.is_error():
      return response
    user_id = self._get_user_id(response['raw_data'])
    if not user_id:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    params = {'key': GOOGLE_PLUS_KEY}
    response = http_request(email, "GET", GOOGLE_HOST,
      "%s%s" % (GOOGLE_PLUS_PATH, user_id), params, httplib.HTTPS_PORT)

    if response.is_error():
      return response

    return GooglePlusResponse(response)
Exemplo n.º 3
0
  def _pinterest(self, username, email):
    params = {}
    response = http_request(email, 'GET',
                        PINTEREST_HOST, "/%s/" % urllib.quote(username), params)
    if response.is_error():
      return response

    return PinterestResponse(response, username)
Exemplo n.º 4
0
  def _linkedin(self, username, email):
    params = {}
    response = http_request(email, 'GET',
        LINKEDIN_HOST, "%s%s" % (LINKEDIN_PATH, urllib.quote(username)), params)
    if response.is_error():
      return response

    return LinkedinResponse(response, username)
Exemplo n.º 5
0
  def _twitter(self, username, email):
    params = {}
    response = http_request(email, 'GET',
                          TWITTER_HOST, "/%s" % urllib.quote(username), params)
    if response.is_error():
      return response

    return TwitterResponse(response, username)
Exemplo n.º 6
0
  def _github(self, email):
    response = http_request(email, "GET", GITHUB_HOST,
               "%s%s" % (GITHUB_PATH, email), {}, httplib.HTTPS_PORT)

    if response.is_error():
      return response

    return GithubResponse(response)
Exemplo n.º 7
0
  def _aboutme(self, username, email):
    params = {}
    response = http_request(email, 'GET',
                          ABOUTME_HOST, "/%s" % urllib.quote(username), params)
    if '302 Found' in response['raw_data']:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    return AboutmeResponse(response, username)
Exemplo n.º 8
0
  def _myspace(self, email):
    params = {'searchTerms': email,
              'searchBy': 'email',
              'format': 'json'
              }
    response = http_request(email, "GET", MYSPACE_HOST, MYSPACE_PATH, params)

    if response.is_error():
      return response

    return MyspaceResponse(response)
Exemplo n.º 9
0
  def _jigsaw(self, email):
    params = {"token": JIGSAW_KEY,
              "email": email,
              }

    response = http_request(email, "GET", JIGSAW_HOST, JIGSAW_PATH,
                            params, httplib.HTTPS_PORT)
    if response.is_error():
      return response

    message = response['raw_data']
    data = simplejson.loads(message)

    if data['totalHits'] == 0:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    return JigsawResponse(response)
Exemplo n.º 10
0
  def _soundcloud(self, username, email):
    params = {
                "client_id" : SOUNDCLOUD_KEY,
                "q" : urllib.quote(username),
                "limit" : SOUNDCLOUD_LIMIT
             }

    response = http_request(email, 'GET', SOUNDCLOUD_HOST, \
                                         SOUNDCLOUD_PATH, params)
    if response.is_error():
      return response

    message = response['raw_data']
    data = simplejson.loads(message)

    if len(data) == 0:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    return SoundcloudResponse(response, username)
Exemplo n.º 11
0
  def _lastfm(self, username, email):
    params = {
                "method" : "user.getinfo",
                "user" : urllib.quote(username),
                "api_key" :  LASTFM_KEY,
                "format" : "json"
             }

    response = http_request(email, 'GET', LASTFM_HOST, LASTFM_PATH, params)
    if response.is_error():
      return response

    message = response['raw_data']
    data = simplejson.loads(message)

    if 'error' in data:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    return LastfmResponse(response)
Exemplo n.º 12
0
  def _foursquare(self, email):
    today = datetime.date.today()
    v = "%d%d%d" % (today.year, today.month, today.day)
    params = {
              'email': email,
              'oauth_token': FOURSQUARE_OAUTH,
              'v': v,
             }
    response = http_request(email, "GET", FOURSQUARE_HOST, FOURSQUARE_PATH,
                                                    params, httplib.HTTPS_PORT)

    if response.is_error() or len(response['raw_data']) == 0:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response
    data = simplejson.loads(response['raw_data'])['response']['results']
    if len(data) is 0:
      response['status'] = NOT_FOUND_ERROR_CODE
      return response

    return FoursquareResponse(response)
Exemplo n.º 13
0
  def __init__(self, response, username):
    super(AboutmeResponse, self).__init__(response['status'],
                          response['raw_data'], response['email'])
    data = BeautifulSoup(response['raw_data'])

    profiles = [ABOUTME_HOST + "/" + username]
    self['username'] = username

    profile_box = data.find(id='profile_box')
    if profile_box:
      try:
        if profile_box.div.h1.string:
          self['display_name'] = profile_box.div.h1.string
      except:
        pass

    for website in data.find_all('a', {'class': 'website'}):
      profiles.append(website.get('href'))

    for content in ABOUTME_CONTENT:
      content_response = http_request(self['email'], 'GET', ABOUTME_HOST,
                      "/content/%s/%s" % (urllib.quote(username), content), {})
      data = BeautifulSoup(content_response['raw_data'])
      body = data.find('body', {'class':'aboutmeapp'})
      try:
        profile = body.find('div', {'class':'top_section'}).h1.a.get('href')
        if profile:
          profiles.append(profile)
      except:
        pass

    if profiles:
      response = process_profiles(profiles)
      self['profiles'] = profiles
      if response:
        self.enhance_response(response)