]> code.delx.au - webdl/blobdiff - common.py
Improved error message for SBS
[webdl] / common.py
index 544345d3e2ab609e437e96ba2b445c0c3db3a229..f77c86c04e27397590133cea44960bee4fe2ce53 100644 (file)
--- a/common.py
+++ b/common.py
@@ -20,11 +20,14 @@ import urllib2
 import urlparse
 
 
-import autosocks
-autosocks.try_autosocks()
+try:
+       import autosocks
+       autosocks.try_autosocks()
+except ImportError:
+       pass
 
 CACHE_DIR = os.path.expanduser("~/.cache/webdl")
-USER_AGENT = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1"
+USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:21.0) Gecko/20100101 Firefox/21.0"
 
 class Node(object):
        def __init__(self, title, parent=None):
@@ -59,6 +62,9 @@ def load_root_node():
        import plus7
        plus7.fill_nodes(root_node)
 
+       import brightcove
+       brightcove.fill_nodes(root_node)
+
        return root_node
 
 valid_chars = frozenset("-_.()!@#%^ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
@@ -106,6 +112,12 @@ def urlopen(url, max_age):
 
        return open(filename)
 
+def grab_text(url, max_age):
+       f = urlopen(url, max_age)
+       text = f.read().decode("utf-8")
+       f.close()
+       return text
+
 def grab_html(url, max_age):
        f = urlopen(url, max_age)
        doc = html.parse(f, html.HTMLParser(encoding="utf-8", recover=True))
@@ -118,12 +130,17 @@ def grab_xml(url, max_age):
        f.close()
        return doc
 
-def grab_json(url, max_age, skip_assignment=False):
+def grab_json(url, max_age, skip_assignment=False, skip_function=False):
        f = urlopen(url, max_age)
        if skip_assignment:
                text = f.read()
                pos = text.find("=")
                doc = json.loads(text[pos+1:])
+       elif skip_function:
+               text = f.read()
+               pos = text.find("(")
+               rpos = text.rfind(")")
+               doc = json.loads(text[pos+1:rpos])
        else:
                doc = json.load(f)
        f.close()
@@ -217,6 +234,7 @@ def download_urllib(filename, url, referrer=None):
                        dst.write(buf)
                        sys.stdout.write(".")
                        sys.stdout.flush()
+               print
                convert_filename(filename)
                return True
        except KeyboardInterrupt: