|
- from flask import Flask, render_template, redirect, request
- from time import time
- from urllib.parse import urlparse, unquote
- from markdown2 import markdown
- import requests
- import json
- from bs4 import BeautifulSoup
-
- app = Flask(
- __name__,
- static_url_path='',
- static_folder='static/',
- template_folder='templates/'
- )
-
- @app.route('/')
- def index():
- return render_template("index.html", nightly=False)
-
- @app.route('/nightly')
- def nightly():
- return render_template("index.html", nightly=True)
-
- @app.route('/agegate')
- def agegate():
- url = request.args.get("to", default=None)
-
- try:
- if urlparse(url).netloc and urlparse(url).netloc[-9:] != "crux.sexy":
- print("URL is not pointing at crux.sexy")
- url = "https://crux.sexy/"
- except:
- url = "https://crux.sexy"
-
- try:
- r = requests.get(url, cookies={"agegate": "true"})
-
- soup = BeautifulSoup(r.text, "html5lib")
-
- headers = []
-
- for item in soup.head.findAll("meta"):
- if item.has_attr("name") and item["name"] == "viewport":
- continue
- if item.has_attr("content"):
- headers.append(str(item))
- except:
- headers = []
-
- return render_template("age-gate.html", url=url, headers="\n".join(headers))
-
- @app.route('/accept')
- def accept():
- url = request.args.get("url", default=None)
-
- if urlparse(url).netloc and urlparse(url).netloc[-9:] != "crux.sexy":
- print("oops")
- url = "/"
-
- if not url:
- url = "/"
-
- res = redirect(url, 307)
- res.set_cookie("agegate", "true", time() + 60*60*24*365, domain="crux.sexy")
- return res
-
- @app.route('/changelog')
- def changelog():
- game_names = ["stroll", "feast", "gorge", "satiate", "macrovision"]
- games = []
- for game in game_names:
- data = json.load(open("{0}/changelog.json".format(game)))
- keys = sorted(data.keys())[::-1]
- versions = []
- for key in keys:
- versions.append({"version": key, "changes": markdown(data[key])})
- games.append({"name": game, "versions": versions})
-
- return render_template("changelog.html", games=games)
-
- @app.route('/commits')
- def commits():
- game_names = ["stroll", "feast", "gorge", "satiate", "macrovision"]
- games = []
- for game in game_names:
- data = json.load(open("commits/{0}.json".format(game)))
- games.append({"name": game, "commits": data})
-
- return render_template("commits.html", games=games)
-
- if __name__ == "__main__":
- app.run(debug=True, host='0.0.0.0', port=5002)
|