2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-16 05:07:12 +00:00

moving i/l/t folders

This commit is contained in:
2025-02-05 17:35:37 +00:00
parent 7b462a883b
commit f757d7632c
5 changed files with 1127 additions and 76 deletions

View File

@@ -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):