summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2022-08-14 01:47:53 +0300
committerPhilip Sargent <philip.sargent@klebos.com>2022-08-14 01:47:53 +0300
commitb093d00ff46477c2fc7042bfd19962098cf6002c (patch)
tree4ff2cc79e472604bd897731ba190e067917dcbfb
parent8e9368014695bebef38ffd0f575d8079b6c4eab4 (diff)
downloadtroggle-b093d00ff46477c2fc7042bfd19962098cf6002c.tar.gz
troggle-b093d00ff46477c2fc7042bfd19962098cf6002c.tar.bz2
troggle-b093d00ff46477c2fc7042bfd19962098cf6002c.zip
match therion files to wallets, scans names therein
-rw-r--r--parsers/drawings.py43
-rw-r--r--parsers/scans.py2
2 files changed, 40 insertions, 5 deletions
diff --git a/parsers/drawings.py b/parsers/drawings.py
index 4b3e44d..1c5a1e8 100644
--- a/parsers/drawings.py
+++ b/parsers/drawings.py
@@ -29,7 +29,7 @@ def find_dwg_file(dwgfile, path):
mscansdir = re.search(r"(\d\d\d\d#X?\d+\w?|1995-96kh|92-94Surveybookkh|1991surveybook|smkhs)/(.*?(?:png|jpg|pdf|jpeg|gif|txt))$", path)
if mscansdir:
scanswalletl = Wallet.objects.filter(walletname=mscansdir.group(1))
- # This should be chnaged to properly detect if a list of folders is returned and do something sensible, not just pick the first.
+ # This should be changed to properly detect if a list of folders is returned and do something sensible, not just pick the first.
if len(scanswalletl):
wallet = scanswalletl[0]
if len(scanswalletl) > 1:
@@ -70,10 +70,43 @@ def find_dwg_file(dwgfile, path):
dwgfile.save()
-def findimageinsert(therionfile, xth_me):
+def findwalletimage(therionfile, foundpath):
'''Tries to link the drawing file (Therion format) to the referenced image (scan) file
'''
- pass
+ foundpath = foundpath.strip("{}")
+ mscansdir = re.search(r"(\d\d\d\d#\d+\w?|1995-96kh|92-94Surveybookkh|1991surveybook|smkhs)", foundpath)
+ if mscansdir:
+ scanswalletl = Wallet.objects.filter(walletname=mscansdir.group(1))
+ # This should be changed to properly detect if a list of folders is returned and do something sensible, not just pick the first.
+ if len(scanswalletl):
+ wallet = scanswalletl[0]
+ if len(scanswalletl) > 1:
+ message = "! More than one scan FOLDER matches filter query. [{}]: {} {} {}".format(therionfile, mscansdir.group(1), foundpath)
+ print(message)
+ DataIssue.objects.create(parser='Therion', message=message)
+ if wallet:
+ therionfile.dwgwallets.add(wallet)
+
+ scanfilename = Path(foundpath).name
+ scansfilel = wallet.singlescan_set.filter(name=scanfilename, wallet=wallet)
+ if len(scansfilel):
+ # message = f'! {len(scansfilel)} {scansfilel} = {scanfilename} found in the wallet specified {wallet.walletname}'
+ # print(message)
+ if len(scansfilel) > 1:
+ plist =[]
+ for sf in scansfilel:
+ plist.append(sf.ffile)
+ message = "! More than one image FILENAME matches filter query. [{}]: {} {} {} {} {}".format(scansfilel[0], mscansdir.group(1), mscansdir.group(2), dwgfile.dwgpath, path, plist)
+ print(message)
+ DataIssue.objects.create(parser='Therion', message=message)
+ scansfile = scansfilel[0]
+ therionfile.scans.add(scansfile)
+ else:
+ message = f'! Scanned file {scanfilename} mentioned in "{therionfile.dwgpath}" is not actually found in {wallet.walletname}'
+ wurl = f'/survey_scans/{wallet.walletname}/'.replace("#",":")
+ print(message)
+ DataIssue.objects.create(parser='Therion', message=message, url = wurl)
+
def findimportinsert(therionfile, imp):
'''Tries to link the scrap (Therion format) to the referenced therion scrap
@@ -120,10 +153,12 @@ def settherionfileinfo(filetuple):
message = f'! Un-parsed image filename: {therionfile.dwgname} : {xth_me.split()[-3]} - {therionfile.dwgpath}'
# print(message)
# DataIssue.objects.create(parser='xTherion', message=message, url=f'/dwgdataraw/{therionfile.dwgpath}')
+ # ! Un-parsed image filename: 107coldest : ../../../expofiles/surveyscans/2015/2015#20/notes.jpg - therion/plan/107coldest.th2
+
with open('therionrefs.log', 'a') as lg:
lg.write(message + '\n')
- findimageinsert(therionfile, xth_me)
+ findwalletimage(therionfile, xth_me.split()[-3])
for inp in rx_input.findall(ttext):
# if this 'input' is a .th2 file we have already seen, then we can assign this as a sub-file
diff --git a/parsers/scans.py b/parsers/scans.py
index 28d0325..6439549 100644
--- a/parsers/scans.py
+++ b/parsers/scans.py
@@ -93,7 +93,7 @@ def LoadListScansFile(wallet):
c=0
for (fyf, ffyf, fisdiryf) in gld:
- if re.search(r"\.(?:png|jpg|jpeg|pdf|svg|gif)(?i)$", fyf):
+ if re.search(r"\.(?:png|jpg|jpeg|pdf|svg|gif|xvi)(?i)$", fyf):
singlescan = SingleScan(ffile=ffyf, name=fyf, wallet=wallet)
singlescan.save()
c+=1