flaskapp.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import subprocess
  2. from flask import Flask, render_template
  3. from dotenv import load_dotenv
  4. import os
  5. import re
  6. load_dotenv()
  7. app = Flask(__name__)
  8. @app.route("/")
  9. def home():
  10. result = subprocess.run(
  11. [
  12. os.environ["MCRCON"],
  13. "-H",
  14. os.environ["HOST"],
  15. "-p",
  16. os.environ["PASSWORD"],
  17. "list uuids",
  18. ],
  19. capture_output=True,
  20. text=True,
  21. )
  22. resultstring = result.stdout.strip()
  23. resultstring = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])').sub('', resultstring)
  24. messages = resultstring.split(': ')
  25. print(messages)
  26. messagelist = messages[0].split(" ")
  27. usercount = int(messagelist[2])
  28. maxcount = int(messagelist[7])
  29. userlist = None
  30. usercombolist = None
  31. if usercount > 0:
  32. userlist = messages[1].split(", ")
  33. usercombolist = []
  34. for user in userlist:
  35. username = user[: user.find(" ")]
  36. uuid = user[user.find("(") + 1 : -1]
  37. usercombolist.append((username, uuid))
  38. return render_template(
  39. "home.html",
  40. usercount=usercount,
  41. maxcount=maxcount,
  42. userlist=usercombolist,
  43. )
  44. if __name__ == "__main__":
  45. app.run(host="0.0.0.0")