Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion app/routes/randomgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,32 @@ def index():
return render_template("randomgen.html")


@bp.route("/mode", methods=["POST"])
def randomgen_mode():
mode = request.form.get("mode")

if mode == "uuid3":
return """
<label class="flex items-center gap-2">
<span>Username:</span>
<input type="text" name="username" class="border rounded px-2 py-2" placeholder="Steve">
</label>
"""

return ""


@bp.route("/generate", methods=["POST"])
def randomgen_generate():
mode = request.form.get("mode")
match mode:
case "sha":
key = RandomGenService.generate_custom_sha1()
case "uuid":
case "uuid4":
key = RandomGenService.generate_uuidv4()
case "uuid3":
username = request.form.get("username", "")
key = RandomGenService.generate_minecraft_uuid(username)
case _:
key = None

Expand Down
5 changes: 5 additions & 0 deletions app/services/randomgen_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,8 @@ def generate_custom_sha1():
@staticmethod
def generate_uuidv4():
return uuid.uuid4()

@staticmethod
def generate_minecraft_uuid(username: str):
"""Generates the offline UUID of a Minecraft username"""
return uuid.uuid3(uuid.NAMESPACE_OID, f"OfflinePlayer:{username.strip}")
9 changes: 6 additions & 3 deletions app/templates/randomgen.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ <h1 class="text-3xl">Random Generator</h1>
<form hx-post="/randomgen/generate" hx-target="#output" hx-swap="innerHTML" class="my-4">
<label class="flex items-center gap-2">
<span>Generator:</span>
<select name="mode" class="cursor-pointer border rounded px-2 py-2">
<option value="sha">Custom SHA1</option>
<option value="uuid">UUID v4</option>
<select name="mode" hx-post="/randomgen/mode" hx-target="#mode-extra" hx-swap="innerHTML"
class="cursor-pointer border rounded px-2 py-2">
<option value="sha">SHA1 w/ Random Parameter</option>
<option value="uuid4">UUID v4</option>
<option value="uuid3">Minecraft Offline UUIDv3</option>
</select>
</label>
<div id="mode-extra" class="mt-3"></div>
<div class="my-4 whitespace-nowrap" id="output"></div>
<button type="submit"
class="cursor-pointer px-4 py-2 bg-purple-600 text-white rounded-lg hover:scale-105 transition duration-75">
Expand Down
Loading