| @@ -1,5 +1,8 @@ | |||||
| *.pyc | *.pyc | ||||
| __pycache__/ | __pycache__/ | ||||
| config/ | |||||
| data/ | |||||
| venv/ | venv/ | ||||
| config/* | |||||
| data/* | |||||
| !config/config.yml.sample | |||||
| @@ -17,8 +17,15 @@ Guide | |||||
| ### Setup | ### Setup | ||||
| cp config.yml.sample config.yml | |||||
| vim config.yml | |||||
| ... | ... | ||||
| ### Run | |||||
| ### Test | |||||
| ./app.py | |||||
| # go to http://localhost:8080 | |||||
| ### Deploy | |||||
| ... | ... | ||||
| @@ -6,7 +6,7 @@ from pathlib import Path | |||||
| from flask import Flask, g | from flask import Flask, g | ||||
| from flask_mako import MakoTemplates, render_template | from flask_mako import MakoTemplates, render_template | ||||
| from calefaction import __version__ as version | |||||
| import calefaction | |||||
| from calefaction.config import Config | from calefaction.config import Config | ||||
| from calefaction.eve import EVE | from calefaction.eve import EVE | ||||
| from calefaction.util import catch_errors, set_up_hash_versioning | from calefaction.util import catch_errors, set_up_hash_versioning | ||||
| @@ -23,7 +23,7 @@ set_up_hash_versioning(app) | |||||
| def prepare_request(): | def prepare_request(): | ||||
| g.config = config | g.config = config | ||||
| g.eve = eve | g.eve = eve | ||||
| g.version = version | |||||
| g.version = calefaction.__version__ | |||||
| @app.route("/") | @app.route("/") | ||||
| @catch_errors(app) | @catch_errors(app) | ||||
| @@ -0,0 +1,22 @@ | |||||
| # This is a sample config file for Calefaction. | |||||
| # Copy this to config.yml and modify it to set up your website. | |||||
| corp: | |||||
| # Find your corp's ID at, e.g., https://zkillboard.com/corporation/917701062/ | |||||
| id: 123456789 | |||||
| # Full corp name (doesn't need to match in-game name exactly, but should) | |||||
| name: My Corp Name Here | |||||
| welcome: |- | |||||
| (If you are seeing this message on the public internet, someone forgot to | |||||
| configure their website. Whoops!) | |||||
| This message is displayed to anyone who reaches your website without | |||||
| (or before) logging in. | |||||
| It's public, so don't give away any secrets. You might want to explain a bit | |||||
| about your corp, with recruitment information, or invite corp members to log | |||||
| in, or maybe just say something cryptic. | |||||
| You can type raw HTML in here. Newlines are ignored, except for double | |||||
| linebreaks, which are treated as separate paragraphs. | |||||
| @@ -1,12 +1,9 @@ | |||||
| <%! | |||||
| from datetime import datetime | |||||
| %>\ | |||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||
| <html lang="en"> | <html lang="en"> | ||||
| <head> | <head> | ||||
| <meta charset="utf-8"> | <meta charset="utf-8"> | ||||
| <title> | <title> | ||||
| <%block name="title">${g.config.get("corp.name")}</%block> | |||||
| <%block name="title">${g.config.get("corp.name") | h}</%block> | |||||
| </title> | </title> | ||||
| <link rel="stylesheet" type="text/css" href="${url_for('staticv', filename='main.css')}" /> | <link rel="stylesheet" type="text/css" href="${url_for('staticv', filename='main.css')}" /> | ||||
| <link rel="stylesheet" type="text/css" href="${url_for('staticv', filename='styles/minmatar.css')}" /> | <link rel="stylesheet" type="text/css" href="${url_for('staticv', filename='styles/minmatar.css')}" /> | ||||
| @@ -15,16 +12,40 @@ | |||||
| % endfor | % endfor | ||||
| </head> | </head> | ||||
| <body> | <body> | ||||
| ${next.body()} | |||||
| <footer> | |||||
| <div> | |||||
| <% copyright_year = datetime.now().year %> | |||||
| Copyright © ${copyright_year} ${g.config.get("corp.copyright")} | |||||
| • | |||||
| Running <a href="https://github.com/earwig/calefaction">Calefaction</a> ${g.version} | |||||
| • | |||||
| <a href="https://eveonline.com">EVE Online</a> and all related trademarks are property of <a href="https://ccpgames.com">CCP hf</a>. | |||||
| <%block name="header"> | |||||
| <header> | |||||
| <div> | |||||
| <div class="left"> | |||||
| <%block name="lefthead"> | |||||
| <a href="/"> | |||||
| <img id="corp-masthead" class="aligned" src="${g.eve.image.corp(g.config.get('corp.id'), 256)}"/> | |||||
| </a> | |||||
| <a href="/" class="aligned">${g.config.get("corp.name") | h}</a> | |||||
| </%block> | |||||
| </div><!-- | |||||
| --><div class="right"> | |||||
| <%block name="righthead"/> | |||||
| </div> | |||||
| </div> | |||||
| </header> | |||||
| </%block> | |||||
| <%block name="container"> | |||||
| <div id="container"> | |||||
| <div> | |||||
| <main> | |||||
| ${next.body()} | |||||
| </main> | |||||
| </div> | |||||
| </div> | </div> | ||||
| </footer> | |||||
| </%block> | |||||
| <%block name="footer"> | |||||
| <footer> | |||||
| <div> | |||||
| Running <a href="https://github.com/earwig/calefaction">Calefaction</a> ${g.version} | |||||
| • | |||||
| <a href="https://eveonline.com">EVE Online</a> and all related trademarks are property of <a href="https://ccpgames.com">CCP hf</a>. | |||||
| </div> | |||||
| </footer> | |||||
| </%block> | |||||
| </body> | </body> | ||||
| </html> | </html> | ||||
| @@ -1,9 +1,6 @@ | |||||
| <%inherit file="_layout.mako"/> | |||||
| <%inherit file="_base.mako"/> | |||||
| <%block name="lefthead"> | <%block name="lefthead"> | ||||
| <a href="/"> | |||||
| <img id="corp-masthead" class="aligned" src="${g.eve.image.corp(g.config.get('corp.id'), 256)}"/> | |||||
| </a> | |||||
| <a href="/" class="aligned">${g.config.get("corp.name")}</a> | |||||
| ${parent.lefthead()} | |||||
| <nav> | <nav> | ||||
| Campaign: XYZ | Map | Intel | Members... | Campaign: XYZ | Map | Intel | Members... | ||||
| </nav> | </nav> | ||||
| @@ -1,14 +0,0 @@ | |||||
| <%inherit file="_base.mako"/> | |||||
| <header> | |||||
| <div> | |||||
| <div class="left"><%block name="lefthead"/></div><!-- | |||||
| --><div class="right"><%block name="righthead"/></div> | |||||
| </div> | |||||
| </header> | |||||
| <div id="container"> | |||||
| <div> | |||||
| <main> | |||||
| ${next.body()} | |||||
| </main> | |||||
| </div> | |||||
| </div> | |||||
| @@ -1,15 +1,10 @@ | |||||
| <%inherit file="_base.mako"/> | <%inherit file="_base.mako"/> | ||||
| <%block name="title"> | <%block name="title"> | ||||
| Error – ${g.config.get("corp.name")} | |||||
| Error – ${g.config.get("corp.name") | h} | |||||
| </%block> | </%block> | ||||
| <div id="container"> | |||||
| <div> | |||||
| <main> | |||||
| <h1>Error!</h1> | |||||
| <p>You may report the following information to the developers:</p> | |||||
| <div id="error"> | |||||
| <pre>${traceback | trim,h}</pre> | |||||
| </div> | |||||
| </main> | |||||
| </div> | |||||
| <%block name="header"/> | |||||
| <h1>Error!</h1> | |||||
| <p>You may report the following information to the developers:</p> | |||||
| <div id="error"> | |||||
| <pre>${traceback | trim,h}</pre> | |||||
| </div> | </div> | ||||
| @@ -1,11 +1,9 @@ | |||||
| <%inherit file="_layout.mako"/> | |||||
| <%block name="lefthead"> | |||||
| <a href="/"> | |||||
| <img id="corp-masthead" class="aligned" src="${g.eve.image.corp(g.config.get('corp.id'), 256)}"/> | |||||
| </a> | |||||
| <a href="/" class="aligned">${g.config.get("corp.name")}</a> | |||||
| </%block> | |||||
| <%inherit file="_base.mako"/> | |||||
| <%block name="righthead"> | <%block name="righthead"> | ||||
| <img id="login-button" class="aligned" src="${url_for('staticv', filename='images/eve-login.png')}"/> | <img id="login-button" class="aligned" src="${url_for('staticv', filename='images/eve-login.png')}"/> | ||||
| </%block> | </%block> | ||||
| <p>Hello, world!</p> | |||||
| <div id="welcome"> | |||||
| % for paragraph in g.config.get("welcome").split("\n\n"): | |||||
| <p>${paragraph.replace("\n", " ")}</p> | |||||
| % endfor | |||||
| </div> | |||||