Merge remote-tracking branch 'up/cleanup' into cleanup

This commit is contained in:
Fincent7 2022-04-10 11:41:27 +02:00
commit 6bd8972af1
5 changed files with 783 additions and 582 deletions

1
.gitignore vendored
View file

@ -13,3 +13,4 @@ combined.js
*.DS_Store
.vscode/
web/atlas-before-ids-migration.json
*.pyc

View file

@ -188,7 +188,49 @@ def convert_subreddit_to_website(entry: dict):
entry["subreddit"] = ""
return entry
def calculate_center(path: list):
"""
Caluclates the center of a polygon
adapted from /web/_js/draw.js:calucalteCenter()
"""
area = 0
x = 0
y = 0
for i in range(len(path)):
point1 = path[i]
point2 = path[i-1 if i != 0 else len(path)-1]
f = point1[0] * point2[1] - point2[0] * point1[1]
area += f
x += (point1[0] + point2[0]) * f
y += (point1[1] + point2[1]) * f
area *= 3
if area != 0:
return [x // area + 0.5, y // area + 0.5]
else:
# get the center of a straight line
max_x = max(i[0] for i in path)
min_x = min(i[0] for i in path)
max_y = max(i[1] for i in path)
min_y = min(i[1] for i in path)
return [(max_x + min_x) // 2 + 0.5, (max_y + min_y) // 2 + 0.5]
def update_center(entry: dict):
"""
checks if the center of a entry is up to date, and updates it if it's either missing or outdated
"""
if 'path' not in entry:
return entry
path = entry['path']
if len(path) > 1:
calculated_center = calculate_center(path)
if 'center' not in entry or entry['center'] != calculated_center:
entry['center'] = calculated_center
return entry
def validate(entry: dict):
"""
@ -256,6 +298,8 @@ def print_(*args, **kwargs):
entry = fix_no_protocol_urls(entry)
print_("Removing extras...")
entry = remove_extras(entry)
print_("Updating center")
entry = update_center(entry)
print_("Validating...")
status_code = validate(entry)
print_("Completed!")
@ -287,4 +331,4 @@ def go(path):
print("Writing completed. All done.")
go("../web/atlas.json")
go("../web/atlas.json")

View file

@ -231,33 +231,25 @@ function initDraw(){
function calculateCenter(path){
var area = 0,
i,
j,
point1,
point2;
i,
j,
point1,
point2,
x = 0,
y = 0,
f;
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
point1 = path[i];
point2 = path[j];
area += point1[0] * point2[1];
area -= point1[1] * point2[0];
}
area *= 3;
var x = 0,
y = 0,
f;
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
point1 = path[i];
point2 = path[j];
f = point1[0] * point2[1] - point2[0] * point1[1];
area += f;
x += (point1[0] + point2[0]) * f;
y += (point1[1] + point2[1]) * f;
}
area *= 3;
for (i = 0, j = path.length - 1; i < path.length; j=i,i++) {
point1 = path[i];
point2 = path[j];
f = point1[0] * point2[1] - point2[0] * point1[1];
x += (point1[0] + point2[0]) * f;
y += (point1[1] + point2[1]) * f;
}
return [~~(x / area)+0.5, ~~(y / area)+0.5];
return [Math.floor(x / area)+0.5, Math.floor(y / area)+0.5];
}
function undo(){

View file

@ -285,6 +285,7 @@ function buildObjectsList(filter, sort){
value.name.toLowerCase().indexOf(filter) !== -1
|| value.description.toLowerCase().indexOf(filter) !== -1
|| value.subreddit && value.subreddit.toLowerCase().indexOf(filter) !== -1
|| value.id === filter
);
});
document.getElementById("atlasSize").innerHTML = "Found "+sortedAtlas.length+" entries.";
@ -838,4 +839,4 @@ function initViewGlobal() {
}
}
});
}
}

File diff suppressed because it is too large Load diff