summaryrefslogtreecommitdiffstats
path: root/parsers/QMs.py
diff options
context:
space:
mode:
Diffstat (limited to 'parsers/QMs.py')
-rw-r--r--parsers/QMs.py71
1 files changed, 49 insertions, 22 deletions
diff --git a/parsers/QMs.py b/parsers/QMs.py
index 44c38c7..96b91fa 100644
--- a/parsers/QMs.py
+++ b/parsers/QMs.py
@@ -8,29 +8,56 @@ import re
QM.objects.all().delete()
-
-
-def parseSteinbrQMs():
- try:
- steinBr=Cave.objects.get(official_name="Steinbrückenhöhle")
- except Cave.DoesNotExist:
- print "Steinbruckenhoehle is not in the database. Please run parsers.cavetab first."
- return
-
+def parseCaveQMs(cave,pathToCSV):
+ if cave=='stein':
+ try:
+ steinBr=Cave.objects.get(official_name="Steinbrückenhöhle")
+ except Cave.DoesNotExist:
+ print "Steinbruckenhoehle is not in the database. Please run parsers.cavetab first."
+ return
+ elif cave=='hauch':
+ try:
+ hauchHl=Cave.objects.get(official_name="Hauchhöhle")
+ except Cave.DoesNotExist:
+ print "Steinbruckenhoehle is not in the database. Please run parsers.cavetab first."
+ return
- qmPath = settings.EXPOWEB+r"smkridge/204/qm.csv"
- qmReader = csv.reader(open(qmPath,'r'),dialect="excel-tab")
+ qmPath = settings.EXPOWEB+pathToCSV
+ qmCSVContents = open(qmPath,'r')
+ dialect=csv.Sniffer().sniff(qmCSVContents.read())
+ qmCSVContents.seek(0,0)
+ qmReader = csv.reader(qmCSVContents,dialect=dialect)
qmReader.next() # Skip header row
for line in qmReader:
- year=int(line[0][1:5])
-
- #check if placeholder exists for given year, create it if not
- placeholder, hadToCreate = LogbookEntry.objects.get_or_create(date__year=year, text="placeholder for QMs in 204", defaults={"date": date(year, 1, 1),"cave":steinBr})
- if hadToCreate:
- print "204 placeholder logbook entry for " + str(year) + " added to database"
- QMnum=re.match(r".*?-\d*?-X?(?P<numb>\d*)",line[0]).group("numb")
- newQM = QM(found_by=placeholder,number=QMnum,grade=line[1],area=line[2],location_description=line[3],nearest_station_description=line[4],completion_description=line[5],comment=line[6])
- newQM.save()
- print "QM "+str(newQM) + " added to database"
+ try:
+ year=int(line[0][1:5])
+ #check if placeholder exists for given year, create it if not
+ if cave=='stein':
+ placeholder, hadToCreate = LogbookEntry.objects.get_or_create(date__year=year, text="placeholder for QMs in 204", defaults={"date": date(year, 1, 1),"cave":steinBr})
+ elif cave=='hauch':
+ placeholder, hadToCreate = LogbookEntry.objects.get_or_create(date__year=year, text="placeholder for QMs in 234", defaults={"date": date(year, 1, 1),"cave":hauchHl})
+ if hadToCreate:
+ print cave+" placeholder logbook entry for " + str(year) + " added to database"
+ QMnum=re.match(r".*?-\d*?-X?(?P<numb>\d*)",line[0]).group("numb")
+ newQM = QM()
+ newQM.found_by=placeholder
+ newQM.number=QMnum
+ if line[1]=="Dig":
+ newQM.grade="D"
+ else:
+ newQM.grade=line[1]
+ newQM.area=line[2]
+ newQM.location_description=line[3]
+ newQM.nearest_station_description=line[4]
+ newQM.completion_description=line[5]
+ newQM.comment=line[6]
+ newQM.save()
+ print "QM "+str(newQM) + " added to database"
+ except KeyError:
+ continue
+# except IndexError:
+# print "Index error in " + str(line)
+# continue
-parseSteinbrQMs() \ No newline at end of file
+parseCaveQMs(cave='stein',pathToCSV=r"smkridge/204/qm.csv")
+parseCaveQMs(cave='hauch',pathToCSV=r"smkridge/234/qm.csv")