diff options
Diffstat (limited to 'core/fileAbstraction.py')
-rw-r--r-- | core/fileAbstraction.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/core/fileAbstraction.py b/core/fileAbstraction.py new file mode 100644 index 0000000..94b8b0c --- /dev/null +++ b/core/fileAbstraction.py @@ -0,0 +1,43 @@ +import troggle.settings as settings +import os +import urllib + +def urljoin(x, y): return x + "/" + y + +def listdir(*path): + try: + strippedpath = [p for p in path if p] + root = os.path.join(settings.FILES, *strippedpath ) + l = "" + #l = root + "\n" + isdir = os.path.isdir(root) #This seems to be required for os.path.isdir to work... + #l += str(isdir) + "\n" + for p in os.listdir(root): + if os.path.isdir(os.path.join(root, p)): + l += p + "/\n" + + elif os.path.isfile(os.path.join(root, p)): + l += p + "\n" + #Ignore non-files and non-directories + return l + except: + if strippedpath: + c = reduce(urljoin, strippedpath) + else: + c = "" + c = c.replace("#", "%23") + print "FILE: ", settings.FILES + "listdir/" + c + return urllib.urlopen(settings.FILES + "listdir/" + c).read() + +def dirsAsList(*path): + return [d for d in listdir(*path).split("\n") if len(d) > 0 and d[-1] == "/"] + +def filesAsList(*path): + return [d for d in listdir(*path).split("\n") if len(d) > 0 and d[-1] != "/"] + +def readFile(*path): + try: + f = open(os.path.join(settings.FILES, *path)) + except: + f = urllib.urlopen(settings.FILES + "download/" + reduce(urljoin, path)) + return f.read()
\ No newline at end of file |