summaryrefslogtreecommitdiffstats
path: root/core/fileAbstraction.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/fileAbstraction.py')
-rw-r--r--core/fileAbstraction.py43
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