summaryrefslogtreecommitdiff
path: root/lib/dumpfm.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dumpfm.py')
-rw-r--r--lib/dumpfm.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/dumpfm.py b/lib/dumpfm.py
new file mode 100644
index 0000000..e7f2688
--- /dev/null
+++ b/lib/dumpfm.py
@@ -0,0 +1,59 @@
+#!/usr/bin/python2.7
+import urllib
+import urllib2
+import simplejson as json
+import sys
+import re
+import os
+urlencode = urllib.urlencode
+urlopen = urllib2.urlopen
+Request = urllib2.Request
+
+DEFAULT_TERM = "pizza"
+
+#{{{
+def get_request(url):
+ try:
+ headers = {
+ 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
+ 'Accept': '*/*'
+ }
+ req = Request(url, None, headers)
+ response = urlopen(req)
+ return response.read()
+ except IOError, e:
+ if hasattr(e, 'code'):
+ sys.stderr.write( '%s - ERROR %s' % (url, e.code))
+ else:
+ sys.stderr.write(str(e))
+ sys.exit(1)
+#}}}
+class Image_url():
+ def __init__(self, result):
+ self._url = result['url']
+ def url(self):
+ if self._url[0] == '/':
+ return "{}{}".format('http://dump.fm/images', self._url)
+ else :
+ return "{}{}".format('http://', self._url)
+class DumpFmImageSearch:
+ def __init__(self):
+ self._search_url = 'http://dump.fm/cmd/search/'
+ def search(self, *args): # something like this should work.
+ if len(args) < 1:
+ sys.stderr.write("Must provide search term");
+ raise ValueError
+ terms = "+".join(map(lambda x : urllib.quote(x), args));
+ url = "{}{}".format(self._search_url, terms)
+ resp = get_request(url);
+ return map(
+ lambda x: Image_url(x),
+ json.loads(resp)
+ )
+
+
+if __name__ == '__main__':
+ term = sys.argv[1] if len(sys.argv) > 1 else DEFAULT_TERM
+ s = DumpFmImageSearch()
+ images = s.search(term)
+ print images[0].url()