Skip to content

Instantly share code, notes, and snippets.

@ironmanMA
Forked from scriptmonster/diffbot_cli.py
Last active August 29, 2015 14:21
Show Gist options
  • Save ironmanMA/046fead50441e69dda33 to your computer and use it in GitHub Desktop.
Save ironmanMA/046fead50441e69dda33 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import urllib
import urllib2
import httplib
import json
class DiffbotService(object):
def __init__(self, token, method='GET', contentType='text/plain', debug=False):
self.serviceUrl = None
self.token = token
self.method = method
self.contentType = contentType
self.debug = debug
def handleArgs(self, url, **kwargs):
raise NotImplementedError
def callService(self, url, **kwargs):
serviceArgs = self.handleArgs(url, **kwargs);
fullUrl = '%(url)s?%(data)s' % {'url':self.serviceUrl, 'data':urllib.urlencode(serviceArgs)}
handler = urllib2.HTTPHandler()
if self.debug:
handler.set_http_debuglevel(1)
opener = urllib2.build_opener(handler)
request = urllib2.Request(fullUrl)
request.add_header('Content-Type', self.contentType)
request.get_method = lambda: self.method
try:
service = opener.open(request)
result = service.read()
return json.loads(result)
except urllib2.HTTPError,e:
result = e.read()
return json.loads(result)
class ArticleAPI(DiffbotService):
def __init__(self, token, method='GET', contentType='text/plain', debug=False):
super(ArticleAPI, self).__init__(token, method, contentType, debug)
self.serviceUrl = 'http://api.diffbot.com/v2/article'
def handleArgs(self, url, **kwargs):
args = {}
args['url'] = url
args['token'] = self.token
for key, value in kwargs.iteritems():
args[key] = value
return args
if __name__ == '__main__':
article = ArticleAPI('ddd1f6b7e04a628a90aa83a21bd17dd3a', 'POST', debug=True)
print article.callService('http://ismailtaha.com', fields='meta')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment