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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user