Advertisement
MrDood_Modding

Untitled

Sep 18th, 2019
731
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.03 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. from flask import Flask, request, redirect
  3. import os
  4. import uuid
  5. app = Flask(__name__)
  6. user_to_secret = {}
  7. class UserSecrets:
  8.     def __init__(self, secrets=[]):
  9.         self.secrets = secrets
  10.     def add_secret(self, secret):
  11.         self.secrets.append(secret)
  12.         return len(self.secrets) - 1
  13.     def get_secret(self, secret_index):
  14.         try:
  15.             return self.secrets[secret_index]
  16.         except KeyError:
  17.             return "Secret does not exist!"
  18. @app.route("/source")
  19. def source():
  20.     with open(__file__, "r") as f:
  21.         return f.read()
  22. @app.route("/robots.txt")
  23. def robots():
  24.     return "User-agent: *\nDisallow: /source"
  25. @app.route("/")
  26. def hello():
  27.     return """Hello! Are you a robot? This is a secret management server."""
  28. @app.route("/create_account", methods=["POST"])
  29. def create_account():
  30.     secrets = request.get_json()
  31.     user_id = str(uuid.uuid4())
  32.     if isinstance(secrets, list):
  33.         user_to_secret[user_id] = UserSecrets(secrets)
  34.     else:
  35.         user_to_secret[user_id] = UserSecrets()
  36.         return user_id
  37. @app.route("/secrets", methods=["POST", "GET", "DELETE"])
  38. def secret():
  39.     if request.method == "POST":
  40.         user_id = request.form.get("user_id")
  41.         secret = request.form.get("secret")
  42.         try:
  43.             return str(user_to_secret[user_id].add_secret(secret))
  44.         except KeyError:
  45.             return "You do not have a SecretStorage!"
  46.     else:
  47.         user_id = request.args.get("user_id")
  48.         try:
  49.             secret_id = int(request.args.get("secret_id"))
  50.         except ValueError:
  51.             return "The secret id should be an integer!"
  52.         try:
  53.             return user_to_secret[user_id].get_secret(secret_id)
  54.         except KeyError:
  55.             return "You do not have a SecretStorage!"
  56. if __name__ == "__main__":
  57.     admin_secrets = UserSecrets()
  58.     admin_secrets.add_secret(os.environ['FLAG'])
  59.     app.run(debug=True, port=5001, host="0.0.0.0")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement