summaryrefslogtreecommitdiff
path: root/lib/utils/APIClients.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils/APIClients.py')
-rw-r--r--lib/utils/APIClients.py104
1 files changed, 0 insertions, 104 deletions
diff --git a/lib/utils/APIClients.py b/lib/utils/APIClients.py
deleted file mode 100644
index 24ab97b..0000000
--- a/lib/utils/APIClients.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# APIClients for grabbing data from popular web services
-# By Scott Gilbertson
-# Copyright is lame, take what you want, except for those portions noted
-
-# Dependencies:
-import sys, urllib
-import xml.etree.cElementTree as xml_parser
-
-
-DEBUG = 0
-
-"""
-base class -- handles GoodReads.com, but works for any rss feed, just send an empty string for anything you don't need
-"""
-class APIClient:
- def __init__(self, base_path, api_key):
- self.api_key = api_key
- self.base_path = base_path
-
- def __getattr__(self, method):
- def method(_self=self, _method=method, **params):
- url = "%s%s?%s&" % (self.base_path, self.api_key, urllib.urlencode(params))
- if DEBUG: print url
- data = self.fetch(url)
- return data
-
- return method
-
- def fetch(self, url):
- u = urllib.FancyURLopener(None)
- usock = u.open(url)
- rawdata = usock.read()
- if DEBUG: print rawdata
- usock.close()
- return xml_parser.fromstring(rawdata)
-
-"""
- Extend APIClient to work with the ma.gnolia.com API
- (http://wiki.ma.gnolia.com/Ma.gnolia_API)
- Adds some error handling as well
-"""
-class MagnoliaError(Exception):
- def __init__(self, code, message):
- self.code = code
- self.message = message
-
- def __str__(self):
- return 'Magnolia Error %s: %s' % (self.code, self.message)
-
-
-class MagnoliaClient(APIClient):
- def __getattr__(self, method):
- def method(_self=self, _method=method, **params):
- url = "%s%s?%s&api_key=%s" % (self.base_path, _method, urllib.urlencode(params), self.api_key)
- if DEBUG: print url
- data = APIClient.fetch(self, url)
- return data
- return method
-
-
-"""
- Extend APIClient to work with the Flickr API
- (http://www.flickr.com/services/api/)
- Adds error handling as well
-"""
-
-class FlickrError(Exception):
- def __init__(self, code, message):
- self.code = code
- self.message = message
-
- def __str__(self):
- return 'Flickr Error %s: %s' % (self.code, self.message)
-
-class FlickrClient(APIClient):
- def __getattr__(self, method):
- def method(_self=self, _method=method, **params):
- _method = _method.replace("_", ".")
- url = "%s?method=%s&%s&api_key=%s" % (self.base_path, _method, urllib.urlencode(params), self.api_key)
- if DEBUG: print url
- data = APIClient.fetch(self, url)
- return data
- return method
-
-class TumblrClient:
- def __init__(self, base_path):
- self.base_path = base_path
-
- def __getattr__(self, method):
- def method(_self=self, _method=method, **params):
- url = "%s" % (self.base_path)
- if DEBUG: print url
- data = self.fetch(url)
- return data
-
- return method
-
- def fetch(self, url):
- u = urllib.FancyURLopener(None)
- usock = u.open(url)
- rawdata = usock.read()
- if DEBUG: print rawdata
- usock.close()
- return xml_parser.fromstring(rawdata)