summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfreebase/__init__.py6
-rw-r--r--freebase/api/session.py16
-rw-r--r--freebase/sandbox.py6
-rwxr-xr-xtest/test_all.py15
4 files changed, 36 insertions, 7 deletions
diff --git a/freebase/__init__.py b/freebase/__init__.py
index 3cca4ff..6df7d0c 100755
--- a/freebase/__init__.py
+++ b/freebase/__init__.py
@@ -5,7 +5,7 @@ import sandbox
__all__ = ["HTTPMetawebSession", "sandbox"]
-base = HTTPMetawebSession("freebase.com")
+_base = HTTPMetawebSession("freebase.com")
# we want to add base's functions to __init__.py
# so that we can say freebase.func() and really
@@ -16,11 +16,11 @@ base = HTTPMetawebSession("freebase.com")
# a world in and of itself
self = sys.modules[__name__]
-for funcname in dir(base):
+for funcname in dir(_base):
# we only want the 'real' functions
if not funcname.startswith("_"):
- func = getattr(base, funcname)
+ func = getattr(_base, funcname)
# let's make sure we're getting functions
# instead of constants or whatever
diff --git a/freebase/api/session.py b/freebase/api/session.py
index 28fe569..7db1ae6 100644
--- a/freebase/api/session.py
+++ b/freebase/api/session.py
@@ -650,6 +650,22 @@ class HTTPMetawebSession(MetawebSession):
return self._mqlresult(r)
+ def uri_submit(self, URI, document=None, content_type=None):
+ """ submit a URI to freebase. For a more complete description,
+ see http://www.freebase.com/edit/topic/en/api_service_uri_submit """
+
+ service = "/api/service/uri_submit"
+
+ form = dict(uri=URI)
+ if document is not None:
+ form["document"] = document
+ if content_type is not None:
+ form["content_type"] = content_type
+
+ r = self._httpreq_json(service, 'POST', form=form)
+ return self._mqlresult(r)
+
+
def search(self, query, format=None, prefixed=None, limit=20, start=0,
type=None, type_strict="any", domain=None, domain_strict=None,
escape="html", timeout=None, mql_filter=None, mql_output=None):
diff --git a/freebase/sandbox.py b/freebase/sandbox.py
index 2d11be2..0bf3811 100644
--- a/freebase/sandbox.py
+++ b/freebase/sandbox.py
@@ -30,7 +30,7 @@
import sys
from freebase.api.session import HTTPMetawebSession
-base = HTTPMetawebSession("sandbox.freebase.com")
+_base = HTTPMetawebSession("sandbox.freebase.com")
__all__ = ["HTTPMetawebSession"]
@@ -41,11 +41,11 @@ __all__ = ["HTTPMetawebSession"]
# a little trick to refer to ourselves
self = sys.modules[__name__]
-for funcname in dir(base):
+for funcname in dir(_base):
# we only want the 'real' functions
if not funcname.startswith("_"):
- func = getattr(base, funcname)
+ func = getattr(_base, funcname)
# let's make sure we're getting functions
# instead of constants or whatever
diff --git a/test/test_all.py b/test/test_all.py
index cf52eef..b07cb35 100755
--- a/test/test_all.py
+++ b/test/test_all.py
@@ -203,7 +203,8 @@ class TestFreebase(unittest.TestCase):
self.assertNotEqual(len(r1), len(r2))
def test_touch(self):
- pass
+ # this one's hard to test... let's just make sure it works.
+ freebase.touch()
def test_geosearch(self):
@@ -213,8 +214,20 @@ class TestFreebase(unittest.TestCase):
r0 = freebase.geosearch(location="/en/california")
self.assertNotEqual(len(r0), 0)
+ json = freebase.geosearch(location="/en/san_francisco", format="json")
+ kml = freebase.geosearch(location="/en/san_francisco", format="kml")
+ self.assertNotEqual(json, kml)
+ def test_uri_submit(self):
+ # test a pdf
+ r = freebase.sandbox.uri_submit("http://www.jcbl.or.jp/game/nec/necfest07/nec2007_data/HayashiMiyake.pdf", content_type="application/pdf")
+ self.assertEqual(r['/type/content/media_type'], 'application/pdf')
+
+ # test an image
+ r = freebase.sandbox.uri_submit("http://datamob.org/media/detail_freebase.png")
+ self.assertEqual(r['/type/content/media_type'], 'image/png')
+
if __name__ == '__main__':