summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-02-05 17:35:37 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-02-05 17:35:37 +0000
commitf757d7632c24ba251c7042c16f2d4fa77ba2493f (patch)
tree017cd9d41c1ae09e6d657786ecd9c8db25740440 /core
parent7b462a883b83107fc3985b59a7a13390e45079a2 (diff)
downloadtroggle-f757d7632c24ba251c7042c16f2d4fa77ba2493f.tar.gz
troggle-f757d7632c24ba251c7042c16f2d4fa77ba2493f.tar.bz2
troggle-f757d7632c24ba251c7042c16f2d4fa77ba2493f.zip
moving i/l/t folders
Diffstat (limited to 'core')
-rw-r--r--core/views/cave_kataster.py122
1 files changed, 89 insertions, 33 deletions
diff --git a/core/views/cave_kataster.py b/core/views/cave_kataster.py
index 6ad3059..13c6dc3 100644
--- a/core/views/cave_kataster.py
+++ b/core/views/cave_kataster.py
@@ -32,16 +32,27 @@ def fix(request, areacode="1626"):
ents_html = settings.ENTRANCEDESCRIPTIONS
caves_html = settings.CAVEDESCRIPTIONS
- to_move = set()
+ to_move = []
- caves_in_area = Cave.objects.filter(areacode=areacode, kataster_number="")
+ caves_in_area = list(Cave.objects.filter(areacode=areacode, kataster_number=""))
caves_nodir=[]
ents = []
print(f"\n---------- {areacode}")
+
+ # hack because some caves in 1623 have already been katastered. Bugger. That screws things up.
+ for i in range(303,316):
+ more = Cave.objects.filter(areacode=areacode, kataster_number=f"{i}")
+ # print(more)
+ caves_in_area.append(more[0])
+
for c in caves_in_area:
- c_html = caves_html / f"{c.areacode}-{c.unofficial_number}.html"
+ cave_id = f"{c.areacode}-{c.unofficial_number}"
+ c_html = caves_html / f"{cave_id}.html"
if not c_html.is_file():
- raise
+ cave_id = f"{c.areacode}-{c.kataster_number}"
+ c_html = caves_html / f"{cave_id}.html"
+ if not c_html.is_file():
+ raise
ents.append(c.entrances())
with open(c_html, 'r') as f:
for line in f:
@@ -50,51 +61,96 @@ def fix(request, areacode="1626"):
# print(c, search_term, match, line)
for m in match:
dir, filename = m
- to_move.add(("c", c.unofficial_number, dir,filename))
-
+ to_move.append(("c", dir, cave_id[5:], c_html.name, filename))
+ # for item in to_move:
+ # print(item)
for ce in ents:
+ cc = ce[0].cave
+ # print(cc)
+ original_number = cc.unofficial_number
for e in ce:
- print(e.entrance.slug, e.entrance.filename)
+ # print(" ",e.entrance.slug, e.entrance.filename)
e_html = ents_html / e.entrance.filename
+ print(range(303,316), cc.kataster_number)
+ if cc.kataster_number and int(cc.kataster_number) in range(303,316):
+ original_number = cc.kataster_number
+ u = cc.unofficial_number
+ k = cc.kataster_number
+ print(u,k)
+ e_html = ents_html / e_html.name.replace(f"{cc.unofficial_number}",f"{cc.kataster_number}")
+ if not e_html.is_file():
+ e_html = ents_html / e_html.name.replace(f"{original_number}",f"{cc.kataster_number}")
+ original_number = cc.kataster_number
+ if not e_html.is_file():
+ raise
with open(e_html, 'r') as f:
for line in f:
search_term = f"{areacode}" + "/(l|t|i)/([^'\"]*)"
if match := re.findall(search_term, line):
- # print(c, search_term, match, line)
+ print(c, search_term, match, line)
for m in match:
dir, filename = m
- to_move.add(("e", c.unofficial_number, dir,filename))
-
- for c in caves_in_area:
- cave_dir = settings.EXPOWEB / areacode / c.unofficial_number
- if cave_dir.is_dir():
- print(f"YES {c.unofficial_number}")
- for subfile in cave_dir.iterdir():
- if subfile.name not in triple:
- print(f" ---- {subfile.name}")
- else:
- print(f" ++++ {subfile.name}")
- else:
- # print(f"NO {c.unofficial_number}")
- caves_nodir.append(c.unofficial_number)
+ to_move.append(("e", dir, original_number, e.entrance.filename, filename))
+ to_move = list(set(to_move))
+ to_move.sort(key=lambda tup: tup[2])
+ # for c in caves_in_area:
+ # cave_dir = settings.EXPOWEB / areacode / c.unofficial_number
+ # if cave_dir.is_dir():
+ # print(f"YES {c.unofficial_number}")
+ # for subfile in cave_dir.iterdir():
+ # if subfile.name not in triple:
+ # print(f" ---- {subfile.name}")
+ # else:
+ # print(f" ++++ {subfile.name}")
+ # else:
+ # # print(f"NO {c.unofficial_number}")
+ # caves_nodir.append(c.unofficial_number)
- for item in to_move:
- print(item)
-
- caves_nodir.sort()
- print("\n Caves with no description directories")
- for c in caves_nodir:
- print(f"{c}, ", end="")
+ for key, dir, cave_id, filename, target in to_move:
+ if key == "c":
+ print((key, dir, cave_id, filename, target))
print("")
+ for key, dir, cave_id, filename, target in to_move:
+ if key == "e":
+ print((key, dir, cave_id, filename, target))
+
+ newdirs = set()
+ for key, dir, cave_id, filename, target in to_move:
+ newdirs.add(cave_id)
+
+ x_script = f"cd {settings.EXPOWEB / areacode}\n"
+ for id in newdirs:
+ # PATH.mkdir(parents=True, exist_ok=True)
+ for d in triple:
+ x_script += f"mkdir -p {id}/{d}\n"
+
+ # This duplicates things horribly: every individual /l/ means a whole set of duplicate sed lines
+ # simplify with a set somehow..
+ # don't trigger this on seeing a /l/, just do it at the end on all the cave_data and entrance_data files we have seen.
+ x_script += f"cd {settings.EXPOWEB / areacode}\n"
+ for key, dir, cave_id, filename, target in to_move:
+ x_script += f"mv {dir}/\"{target}\" {cave_id}/{dir}\n"
+ if dir =="t":
+ x_script += f"mv i/\"{target}\" {cave_id}/i\n"
+ if dir =="l":
+ x_script += f"sed -i 's|\/{areacode}\/i\/|/{areacode}/{cave_id}/i/|g' {cave_id}/l/*.html\n"
+ x_script += f"sed -i \"s|\/{areacode}\/i\/|/{areacode}/{cave_id}/i/|g\" {cave_id}/l/*.html\n"
+ for q in triple:
+ if key =="e":
+ x_script += f"sed -i 's|\/{areacode}\/{q}\/|/{areacode}/{cave_id}/{q}/|g' ../entrance_data/'{filename}'\n"
+ x_script += f"sed -i \"s|\/{areacode}\/{q}\/|/{areacode}/{cave_id}/{q}/|g\" ../entrance_data/'{filename}'\n"
+ if key == "c":
+ x_script += f"sed -i 's|\/{areacode}\/{q}\/|/{areacode}/{cave_id}/{q}/|g' ../cave_data/'{filename}'\n"
+ x_script += f"sed -i \"s|\/{areacode}\/{q}\/|/{areacode}/{cave_id}/{q}/|g\" ../cave_data/'{filename}'\n"
-
+ script_rows = str(max(35,3+x_script.count('\n')))
return render(
request,
- "cave_fix.html",
- {"areacode": areacode, "caves_nodir": caves_nodir,
+ "cave_fix.html",
+ {"areacode": areacode, "caves_nodir": caves_nodir,
+ "x_script": x_script, "rows": script_rows,
}, )
- return HttpResponseRedirect("/caves")
def misplaced_html_files(cave):