diff --git a/fabfile.py b/fabfile.py index b7d0861..ab324d6 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,9 +1,12 @@ +#!/usr/bin/env python +# -- coding: utf-8 -- + from fabric.api import cd, local, env, run, sudo from boto.s3.connection import S3Connection from boto.s3.key import Key -import datetime, sys +import datetime, hashlib, sys from settings_local import AMAZON_API_KEY, AMAZON_API_SECRET, ENV_HOST @@ -12,9 +15,21 @@ env.hosts = [ENV_HOST] env.site_path = '/var/www/snipt' env.venv_path = '/home/nick/.virtualenvs/snipt' +def _display_message(message, extra_line=True): + if extra_line: + msg = '\n{}\n========================\n\n'.format(message) + else: + msg = '{}\n========================\n\n'.format(message) + try: + from fabric.colors import cyan + sys.stderr.write(cyan(msg)) + except ImportError: + print(msg) + def _python(cmd): return env.venv_path.rstrip('/') + '/bin/python ' + cmd + def dep(): _display_message('Collect static (local)') @@ -48,28 +63,6 @@ def dep(): run(_python('manage.py collectstatic --ignore cache --noinput')) -def db(): - with cd(env.site_path): - - _display_message('Sync DB and migrate') - ################ - - run(_python('manage.py syncdb')) - run(_python('manage.py migrate')) - -def re(): - with cd(env.site_path): - - _display_message('Kill gunicorn process') - ################ - - sudo('supervisorctl stop snipt') - - _display_message('Restart gunicorn process') - ################ - - sudo('supervisorctl start snipt') - def db_backup(): filename = datetime.datetime.now().strftime('%h-%d-%y__%I-%M-%S_%p.pgdump') @@ -85,14 +78,75 @@ def db_backup(): local('rm {}'.format(filename)) -def _display_message(message, extra_line=True): - if extra_line: - msg = '\n{}\n========================\n\n'.format(message) - else: - msg = '{}\n========================\n\n'.format(message) - try: - from fabric.colors import cyan - sys.stderr.write(cyan(msg)) - except ImportError: - print(msg) +def db(): + with cd(env.site_path): + + _display_message('Sync DB and migrate') + ################ + + run(_python('manage.py syncdb')) + run(_python('manage.py migrate')) + +def gravatars(): + + from fabric.contrib import django + django.settings_module('settings') + + from django.contrib.auth.models import User + + import requests + + _display_message('Updating all users\' Gravatar flags') + ################ + + for user in User.objects.all().order_by('id'): + + _display_message('{}. {}'.format(user.pk, user.username.encode('ascii', 'ignore'))) + ################ + + email_md5 = hashlib.md5(user.email.lower()).hexdigest() + + print 'Email MD5: {}'.format(email_md5) + + if user.profile.has_gravatar == False: + + greq = requests.get('http://en.gravatar.com/{}.json'.format(email_md5)) + + if greq.json() == 'User not found': + has_gravatar = False + else: + has_gravatar = True + + else: + has_gravatar = True + print 'Already had Gravatar! Not checking again.' + + if has_gravatar and not user.profile.has_gravatar: + profile = user.profile + profile.has_gravatar = True + profile.save() + + try: + from fabric.colors import green, red + + if has_gravatar: + print 'Has Gravatar: {}'.format(green(has_gravatar)) + else: + print 'Has Gravatar: {}'.format(red(has_gravatar)) + + except ImportError: + print 'Has Gravatar: {}'.format(has_gravatar) + +def re(): + with cd(env.site_path): + + _display_message('Kill gunicorn process') + ################ + + sudo('supervisorctl stop snipt') + + _display_message('Restart gunicorn process') + ################ + + sudo('supervisorctl start snipt') diff --git a/media/img/default-gravatar-homepage.gif b/media/img/default-gravatar-homepage.gif index 8b13789..aaa7529 100644 Binary files a/media/img/default-gravatar-homepage.gif and b/media/img/default-gravatar-homepage.gif differ diff --git a/settings.py b/settings.py index 9157b44..a9c652b 100644 --- a/settings.py +++ b/settings.py @@ -76,7 +76,7 @@ STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ) -SECRET_KEY = '' +SECRET_KEY = 'changethis' INSTALLED_APPS = ( 'gunicorn', diff --git a/templates/homepage.html b/templates/homepage.html index 3e89316..e72760e 100644 --- a/templates/homepage.html +++ b/templates/homepage.html @@ -59,7 +59,7 @@
{% for coder in coders %} - {{ coder.username }} + {{ coder.username }} {% endfor %}
diff --git a/views.py b/views.py index ab197db..2a5d61c 100644 --- a/views.py +++ b/views.py @@ -18,7 +18,7 @@ from settings_local import STRIPE_SECRET_KEY @render_to('homepage.html') def homepage(request): - random_users = UserProfile.objects.filter(has_gravatar=True).order_by('?')[:100] + random_users = UserProfile.objects.filter(has_gravatar=True).order_by('?')[:50] coders = [] for random_user in random_users: