| @@ -0,0 +1,110 @@ | |||||
| # Byte-compiled / optimized / DLL files | |||||
| __pycache__/ | |||||
| *.py[cod] | |||||
| *$py.class | |||||
| # C extensions | |||||
| *.so | |||||
| # Distribution / packaging | |||||
| .Python | |||||
| build/ | |||||
| develop-eggs/ | |||||
| dist/ | |||||
| downloads/ | |||||
| eggs/ | |||||
| .eggs/ | |||||
| lib/ | |||||
| lib64/ | |||||
| parts/ | |||||
| sdist/ | |||||
| var/ | |||||
| wheels/ | |||||
| *.egg-info/ | |||||
| .installed.cfg | |||||
| *.egg | |||||
| MANIFEST | |||||
| # PyInstaller | |||||
| # Usually these files are written by a python script from a template | |||||
| # before PyInstaller builds the exe, so as to inject date/other infos into it. | |||||
| *.manifest | |||||
| *.spec | |||||
| # Installer logs | |||||
| pip-log.txt | |||||
| pip-delete-this-directory.txt | |||||
| # Unit test / coverage reports | |||||
| htmlcov/ | |||||
| .tox/ | |||||
| .coverage | |||||
| .coverage.* | |||||
| .cache | |||||
| nosetests.xml | |||||
| coverage.xml | |||||
| *.cover | |||||
| .hypothesis/ | |||||
| .pytest_cache/ | |||||
| # Translations | |||||
| *.mo | |||||
| *.pot | |||||
| # Django stuff: | |||||
| *.log | |||||
| local_settings.py | |||||
| db.sqlite3 | |||||
| # Flask stuff: | |||||
| instance/ | |||||
| .webassets-cache | |||||
| # Scrapy stuff: | |||||
| .scrapy | |||||
| # Sphinx documentation | |||||
| docs/_build/ | |||||
| # PyBuilder | |||||
| target/ | |||||
| # Jupyter Notebook | |||||
| .ipynb_checkpoints | |||||
| # pyenv | |||||
| .python-version | |||||
| # celery beat schedule file | |||||
| celerybeat-schedule | |||||
| # SageMath parsed files | |||||
| *.sage.py | |||||
| # Environments | |||||
| .env | |||||
| .venv | |||||
| env/ | |||||
| venv/ | |||||
| ENV/ | |||||
| env.bak/ | |||||
| venv.bak/ | |||||
| # Spyder project settings | |||||
| .spyderproject | |||||
| .spyproject | |||||
| # Rope project settings | |||||
| .ropeproject | |||||
| # mkdocs documentation | |||||
| /site | |||||
| # mypy | |||||
| .mypy_cache/ | |||||
| .vscode | |||||
| # current data | |||||
| *.json | |||||
| @@ -0,0 +1,14 @@ | |||||
| from flask import Flask, render_template | |||||
| app = Flask( | |||||
| __name__, | |||||
| static_url_path='', | |||||
| static_folder='static/', | |||||
| template_folder='templates/' | |||||
| ) | |||||
| @app.route('/') | |||||
| def index(): | |||||
| return render_template("age-gate.html") | |||||
| if __name__ == "__main__": | |||||
| app.run(debug=True, host='0.0.0.0', port=5001) | |||||
| @@ -0,0 +1,6 @@ | |||||
| Click==7.0 | |||||
| Flask==1.1.1 | |||||
| itsdangerous==1.1.0 | |||||
| Jinja2==2.10.3 | |||||
| MarkupSafe==1.1.1 | |||||
| Werkzeug==0.16.0 | |||||
| @@ -0,0 +1,77 @@ | |||||
| html, body, div, span, applet, object, iframe, | |||||
| h1, h2, h3, h4, h5, h6, p, blockquote, pre, | |||||
| a, abbr, acronym, address, big, cite, code, | |||||
| del, dfn, em, img, ins, kbd, q, s, samp, | |||||
| small, strike, strong, sub, sup, tt, var, | |||||
| b, u, i, center, | |||||
| dl, dt, dd, ol, ul, li, | |||||
| fieldset, form, label, legend, | |||||
| table, caption, tbody, tfoot, thead, tr, th, td, | |||||
| article, aside, canvas, details, embed, | |||||
| figure, figcaption, footer, header, hgroup, | |||||
| menu, nav, output, ruby, section, summary, | |||||
| time, mark, audio, video { | |||||
| margin: 0; | |||||
| padding: 0; | |||||
| border: 0; | |||||
| font-size: 100%; | |||||
| font: inherit; | |||||
| vertical-align: baseline; | |||||
| } | |||||
| /* HTML5 display-role reset for older browsers */ | |||||
| article, aside, details, figcaption, figure, | |||||
| footer, header, hgroup, menu, nav, section { | |||||
| display: block; | |||||
| } | |||||
| body { | |||||
| line-height: 1; | |||||
| } | |||||
| ol, ul { | |||||
| list-style: none; | |||||
| } | |||||
| blockquote, q { | |||||
| quotes: none; | |||||
| } | |||||
| blockquote:before, blockquote:after, | |||||
| q:before, q:after { | |||||
| content: ''; | |||||
| content: none; | |||||
| } | |||||
| table { | |||||
| border-collapse: collapse; | |||||
| border-spacing: 0; | |||||
| } | |||||
| body, html { | |||||
| height: 100%; | |||||
| width: 100%; | |||||
| } | |||||
| body { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| text-align: center; | |||||
| flex-direction: column; | |||||
| font-family: sans-serif; | |||||
| background-color: #100d1e; | |||||
| } | |||||
| .best { | |||||
| font-size: 100px; | |||||
| flex-wrap: center; | |||||
| color: #7991cd; | |||||
| } | |||||
| .footer { | |||||
| position: sticky; | |||||
| top: 95%; | |||||
| color: #58678e; | |||||
| } | |||||
| a { | |||||
| color: #3e3852; | |||||
| } | |||||
| a:hover { | |||||
| color: #726899; | |||||
| } | |||||
| @@ -0,0 +1,10 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <title>Age Gate</title> | |||||
| <link rel="stylesheet" type="text/css" href="best.css"> | |||||
| </head> | |||||
| <body> | |||||
| <p class="best">OI</p> | |||||
| </body> | |||||
| </html> | |||||