diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:34:52 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:34:52 +0100 |
commit | b66189bc9e506109766b7377a46b0321bcca71e5 (patch) | |
tree | 3b35a7e2e42af482ec6d07053d9abdc52f931372 | |
parent | 832f1f53c6f3bd4e1323df728f8fe974df6f5dc4 (diff) | |
download | troggle-b66189bc9e506109766b7377a46b0321bcca71e5.tar.gz troggle-b66189bc9e506109766b7377a46b0321bcca71e5.tar.bz2 troggle-b66189bc9e506109766b7377a46b0321bcca71e5.zip |
[svn] Continued file abstracted work, to get survey files from either hard disk or the web.
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8173 by julian @ 1/18/2009 12:45 AM
-rw-r--r-- | expo/fileAbstraction.py | 25 | ||||
-rw-r--r-- | expo/view_surveys.py | 38 | ||||
-rw-r--r-- | parsers/surveys.py | 13 |
3 files changed, 43 insertions, 33 deletions
diff --git a/expo/fileAbstraction.py b/expo/fileAbstraction.py new file mode 100644 index 0000000..deb1a4a --- /dev/null +++ b/expo/fileAbstraction.py @@ -0,0 +1,25 @@ +import troggle.settings as settings
+import os
+
+def urljoin(x, y): return x + "/" + y
+
+def listdir(*path):
+ try:
+ l = ""
+ root = os.path.join(settings.FILES, *path)
+ 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:
+ return urllib.urlopen(settings.FILES + "listdir/" + reduce(urljoin, path))
+
+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 diff --git a/expo/view_surveys.py b/expo/view_surveys.py index cd3210b..2c5b5a1 100644 --- a/expo/view_surveys.py +++ b/expo/view_surveys.py @@ -1,38 +1,22 @@ -import troggle.settings as settings
+import fileAbstraction
from django.http import HttpResponse, Http404
-import os
+
def listdir(request, path):
- try:
- l = []
- print settings.FILES, "t", path, "t"
- root = os.path.join(settings.FILES, path)
- print root
- for p in os.listdir(root):
- if os.path.isdir(os.path.join(root, p)):
- l.append(p + "/")
- elif os.path.isfile(os.path.join(root, p)):
- l.append(p)
- #Ignore non-files and non-directories
- return HttpResponse(str(l), mimetype = "text/plain")
- except:
- try:
- return HttpResponse(urllib.urlopen(settings.FILES + "listdir/" + name), mimetype = "text/plain")
- except:
- raise Http404
+ #try:
+ return HttpResponse(fileAbstraction.listdir(path), mimetype = "text/plain")
+ #except:
+ # raise Http404
def upload(request, path):
pass
def download(request, path):
- try:
- f = open(os.path.join(settings.FILES, path))
- except:
- try:
- f = urllib.urlopen(settings.FILES + "download/" + path)
- except:
- raise Http404
- return HttpResponse(f.read(), mimetype=getMimeType(path.split(".")[-1]))
+ #try:
+ return HttpResponse(fileAbstraction.readFile(path), mimetype=getMimeType(path.split(".")[-1]))
+ #except:
+ # raise Http404
+
def getMimeType(extension):
try:
diff --git a/parsers/surveys.py b/parsers/surveys.py index 86d7dc6..1fc5edb 100644 --- a/parsers/surveys.py +++ b/parsers/surveys.py @@ -7,6 +7,7 @@ from troggle import * os.environ['DJANGO_SETTINGS_MODULE']='troggle.settings'
import troggle.settings as settings
import troggle.expo.models as models
+import fileAbstraction
#import settings
#import expo.models as models
@@ -16,9 +17,9 @@ import datetime def openFileOrWeb(name):
try:
- f = open(os.path.join(settings.SURVEYS, name))
+ f = open(os.path.join(settings.FILES, name))
except:
- f = urllib.urlopen(settings.SURVEYS + name)
+ f = urllib.urlopen(settings.FILES + "download/" + name)
return f.readlines()
surveytab = openFileOrWeb("Surveys.csv")
@@ -57,12 +58,12 @@ for survey in surveyreader: # add survey scans
def parseSurveyScans(year):
- yearPath=os.path.join(settings.SURVEYS, year.year)
- yearFileList=os.listdir(yearPath)
- for surveyFolder in yearFileList:
+ yearDirList = [d for d in fileAbstraction.listdir(year.year).split("\n") if d[-1] == "/"]
+ for surveyFolder in yearDirList:
+ print surveyFolder
try:
surveyNumber=re.match(r'\d\d\d\d#0*(\d+)',surveyFolder).groups()
- scanList=os.listdir(os.path.join(yearPath,surveyFolder))
+ scanList=fileAbstraction.listdir(yearPath, surveyFolder).split("\n")
except AttributeError:
print surveyFolder + " ignored"
continue
|