Advertisement
Guest User

Untitled

a guest
Sep 20th, 2014
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.47 KB | None | 0 0
  1. import requests
  2. #import json
  3. import demjson
  4.  
  5. class BadJSON(Exception):
  6.     def __init__(self, value):
  7.         self.parameter = value
  8.     def __str__(self):
  9.         return repr(self.parameter)
  10.  
  11. class BloggerClient(object):
  12.     """ Client interface for Blogger API. """
  13.     def __init__(self, key):
  14.         self.key = key
  15.         self.base = 'https://www.googleapis.com/blogger/v3'
  16.        
  17.     def _send_request(self, url, parameters={}):
  18.         """ Sends an HTTP get request to Blogger API.
  19.            Returns JSON decoded response. """
  20.         url = '{base}{url}?'.format(base=self.base, url=url)
  21.         parameters['key'] = self.key
  22.         try:
  23.             r = requests.get(url, params=parameters)
  24.             print 'Connecting:', r.url, '\n'            # debug
  25.         except:
  26.             print "** Could not reach url:\n", url
  27.             return
  28.         ascii_rtext = r.text.encode('ascii', 'ignore').decode('ascii')
  29.         api_response = r'''{rtext}'''.format(rtext=ascii_rtext)
  30.         #print api_response      # debug
  31.         return self._jload(api_response)
  32.        
  33.     def _jload(self, api_response):
  34.         """ Accepts text API response. Returns JSON encoded response. """
  35.         try:
  36.             parsed = demjson.decode(api_response)
  37.         except:
  38.             print "** Could not decode JSON data\n"
  39.             raise BadJSON('{}\nAbove JSON failed to load'.format(repr(api_response)))
  40.             print repr(parsed)      # debug
  41.         return parsed
  42.        
  43.     def _is_200_response(self, parsed):
  44.         """ Returns true if loaded JSON is 200 ok status. """
  45.         pass
  46.        
  47.     def get_blog_id(self, blog_url):
  48.         """ Makes an API request for blog info at blog url. Returns blog id. """
  49.         api_url = '/blogs/byurl'
  50.         kwargs = {'url': blog_url}
  51.         blog = self._send_request(url=api_url, parameters=kwargs)
  52.         return blog['id']
  53.        
  54.     def get_blog_info(self, blog_url):
  55.         """ Makes an API request. Returns Blog item information.
  56.        Required params: url, key. """      
  57.         api_url = '/blogs/byurl'
  58.         kwargs = {'url': blog_url}
  59.         blog_info = self._send_request(api_url, kwargs)
  60.         return blog_info
  61.        
  62.     def get_posts(self, blog_id, **kwargs):
  63.         """ Makes an API request. Returns list of posts from blog id. """
  64.         api_url = '/blogs/{id}/posts'.format(id=blog_id)
  65.         return self._send_request(api_url, kwargs)
  66.    
  67. if __name__ == '__main__':
  68.     pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement