Skip to content

Commit 2e3dcd7

Browse files
committed
pass crackme object to solution_create and set has_markdown for uploaded markdown files
1 parent 27d664c commit 2e3dcd7

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

app/controllers/solution.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
MAX_INFO_LENGTH = 200
2727
MAX_CONTENT_LENGTH = 50000
2828
MIN_CONTENT_LENGTH = 200
29+
MARKDOWN_EXTENSIONS = frozenset({'.md', '.txt', '.markdown'})
2930

3031

3132
def _get_crackme_or_abort(hexid):
@@ -135,9 +136,11 @@ def upload_solution_post(hexidcrackme):
135136
return redirect(redirect_url)
136137

137138
original_filename = secure_filename(file.filename) or "unnamed"
139+
ext = os.path.splitext(original_filename)[1].lower()
140+
has_markdown = ext in MARKDOWN_EXTENSIONS
138141

139142
try:
140-
solution, crackme = solution_create(info, username, hexidcrackme, original_filename)
143+
solution = solution_create(info, username, crackme, original_filename, has_markdown)
141144
except Exception as e:
142145
print(f"Error creating solution: {e}")
143146
abort(500)
@@ -215,7 +218,7 @@ def editor_solution_post(hexidcrackme):
215218
return redirect(redirect_url)
216219

217220
try:
218-
solution, crackme = solution_create(info, username, hexidcrackme, original_filename='writeup.md', has_markdown=True)
221+
solution = solution_create(info, username, crackme, 'writeup.md', has_markdown=True)
219222
except Exception as e:
220223
print(f"Error creating solution: {e}")
221224
abort(500)

app/models/solution.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,11 @@ def get_solution_authors(crackme_hexid):
125125
return set(solution['author'] for solution in solutions)
126126

127127

128-
def solution_create(info, username, crackme_hexid, original_filename=None, has_markdown=False):
128+
def solution_create(info, username, crackme, original_filename=None, has_markdown=False):
129129
"""Create a new solution."""
130130
if not check_connection():
131131
raise ErrUnavailable("Database is unavailable")
132132

133-
# Get the crackme
134-
from app.models.crackme import crackme_by_hexid
135-
crackme = crackme_by_hexid(crackme_hexid)
136-
137133
collection = get_collection('solution')
138134
obj_id = ObjectId()
139135

@@ -153,4 +149,4 @@ def solution_create(info, username, crackme_hexid, original_filename=None, has_m
153149
}
154150

155151
collection.insert_one(solution)
156-
return solution, crackme
152+
return solution

0 commit comments

Comments
 (0)