diff --git a/.gitignore b/.gitignore index e941606..1f61295 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,11 @@ # Don't check in site specific settings. settings.ini settings.yml +/db # Compiled Python *.pyc +__pycache__ /site/www/static/photos/*.jpg /site/www/static/photos/*.png diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..174f7df --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +clean: + find . | grep -E '(__pycache__|\.py[oc])' | xargs rm -rf diff --git a/defaults.yml b/defaults.yml index fa294ec..4fd0d5c 100644 --- a/defaults.yml +++ b/defaults.yml @@ -29,6 +29,10 @@ rophako: # by other spots in this config file, for easy overriding). _date_format: &DATE_FORMAT '%A, %B %d %Y @ %I:%M:%S %p' + # Preferred time zone to present datetimes in. See `pytz.all_timezones` for + # valid options here. Examples: "US/Eastern", "America/Los_Angeles" etc. + timezone: US/Pacific + # Where to save temp files for photo uploads etc. tempdir: /tmp diff --git a/requirements.txt b/requirements.txt index 3fa57f0..1c3571c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ flask flask-sslify redis +pytz bcrypt pillow requests diff --git a/rophako/app.py b/rophako/app.py index c5f4b68..71bf418 100644 --- a/rophako/app.py +++ b/rophako/app.py @@ -8,6 +8,7 @@ from flask import (Flask, g, request, session, render_template, send_file, from flask_sslify import SSLify import jinja2 import os.path +import datetime import sys # Get the Flask app object ready right away so other modules can import it @@ -63,6 +64,7 @@ app.jinja_loader = jinja2.ChoiceLoader([ jinja2.FileSystemLoader(x) for x in tem app.jinja_env.globals["csrf_token"] = rophako.utils.generate_csrf_token app.jinja_env.globals["include_page"] = rophako.utils.include app.jinja_env.globals["settings"] = lambda: Config +app.jinja_env.globals["strftime"] = lambda x: datetime.datetime.utcnow().strftime(x) # Preload the emoticon data. import rophako.model.emoticons as Emoticons diff --git a/rophako/utils.py b/rophako/utils.py index acd60fd..55021c0 100644 --- a/rophako/utils.py +++ b/rophako/utils.py @@ -9,6 +9,7 @@ import codecs import uuid import datetime import time +import pytz import re import importlib import smtplib @@ -329,8 +330,9 @@ def server_name(): def pretty_time(time_format, unix): """Pretty-print a time stamp.""" - date = datetime.datetime.fromtimestamp(unix) - return date.strftime(time_format) + tz = pytz.timezone(Config.site.timezone) + date = datetime.datetime.fromtimestamp(unix, pytz.utc) + return date.astimezone(tz).strftime(time_format) def sanitize_name(name): diff --git a/rophako/www/layout.html b/rophako/www/layout.html index 504b3de..f0f8198 100644 --- a/rophako/www/layout.html +++ b/rophako/www/layout.html @@ -56,7 +56,7 @@