You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.0 KiB

3 years ago
3 years ago
3 years ago
  1. from flask import Blueprint, render_template, url_for, redirect
  2. from flask_basicauth import BasicAuth
  3. basic_auth = BasicAuth()
  4. default_views = Blueprint('default_views', __name__, url_prefix='/')
  5. @default_views.route('/')
  6. def index():
  7. return render_template('index.html')
  8. @default_views.route('/handbook')
  9. def handbook():
  10. return render_template('handbook.html')
  11. @default_views.route('/wiki')
  12. @basic_auth.required
  13. def wiki():
  14. return render_template('wiki.html')
  15. @default_views.route('/worldmap')
  16. def worldmap():
  17. return render_template('worldmap.html')
  18. #@default_views.route('/treasure')
  19. #@default_views.route('/treasure/<string:treasure_type>')
  20. def treasure(treasure_type=None):
  21. # import requests
  22. # from lxml import html
  23. # Unused, we can't tap into Autarch's generator, so just link to a new tab
  24. # in navigation bar now
  25. if treasure_type is not None:
  26. with requests.Session() as s:
  27. # First grab the page to pull a fresh form_build_id
  28. treasure_page = s.get('http://autarch.co/treasure')
  29. dom_tree = html.fromstring(treasure_page.content)
  30. form_build_id = dom_tree.find('.//input[@name="form_build_id"]').attrib['value']
  31. # Use that form_build_id to make a request for generated treasure
  32. headers = {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}
  33. payload = {
  34. "form_id": "acks_treasure_form",
  35. "form_build_id": form_build_id,
  36. "treasure_type": treasure_type
  37. }
  38. response = s.post("http://autarch.co/system/ajax", data=payload, headers=headers)
  39. print("TG Response: {}, Payload: {}".format(response.text, payload))
  40. generated_treasure = response.json()[1]["data"].replace('class="form-textarea"', 'class="uk-textarea"')
  41. return render_template('treasure.html', generated_treasure=generated_treasure, treasure_type=treasure_type)
  42. return render_template('treasure.html')