Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View tclancy's full-sized avatar

Tom Clancy tclancy

View GitHub Profile
def my_decorator(function=None):
def _decorator(view_function):
def _view(request, *args, **kwargs):
if not some_security_check(request.user):
return HttpResponseRedirect(reverse('auth_login'))
return view_function(request, *args, **kwargs)
_view.__name__ = view_function.__name__
_view.__dict__ = view_function.__dict__
_view.__doc__ = view_function.__doc__
_view.__module__ = view_function.__module__
@tclancy
tclancy / middleware.py
Created February 15, 2013 17:37
Standalone Django SSL Redirection Middleware, stolen from Satchmo. Put USE_SSL = True/ False in your settings and then add {'SSL': settings.USE_SSL} to relevant urls.py definitions.
"""
SSL Middleware
Stephen Zabel
This middleware answers the problem of redirecting to (and from) a SSL secured path
by stating what paths should be secured in urls.py file. To secure a path, add the
additional view_kwarg 'SSL':True to the view_kwargs.
For example
@tclancy
tclancy / Dover Goodreads Bookmarklet
Last active December 15, 2015 10:39
Search Dover, NH Library by Title from Goodreads Detail Page
javascript:window.open("http://librarycatalog.dover.nh.gov/cgi-bin/koha/opac-search.pl?idx=&q="+encodeURIComponent(document.getElementById("bookTitle").innerText.replace(/\([^\)]+\)/, '').replace(/^\s\s*/, '').replace(/\s\s*$/, '')));
@tclancy
tclancy / gist:5753154
Last active December 18, 2015 08:19
Really ugly and rough code to sort some content out of Excel
from collections import defaultdict
import operator
import os
from xlrd import open_workbook
"""
starting from the "raw" data, which I'm assuming is the first tab, Sorted by Customer
group everything by part number and get the total sold
then list the items in descending order of popularity
Do you need any other data beyond part and total sold? Looks like I should sum the Extended Price column as well?
@tclancy
tclancy / AWS Backup
Last active December 19, 2015 03:48
Simple, unsubtle hack to back up files matching two patterns to AWS. Designed for a Django project right now, but no real need for the coupling.
#!/usr/bin/env python
import datetime
import os
import time
from zipfile import ZipFile, ZIP_DEFLATED
from django.conf import settings
from django.core.mail import mail_admins
from django.core.management.base import BaseCommand
@tclancy
tclancy / gist:5986873
Created July 12, 2013 19:01
Sending Email from Django. Need to have SERVER_EMAIL and DEFAULT_FROM_EMAIL set. If you don't set the latter, no admin mail gets sent.
EMAIL_HOST = 'smtp.server.net'
EMAIL_HOST_USER = 'user'
EMAIL_HOST_PASSWORD = 'p@ssword'
DEFAULT_FROM_EMAIL = 'forms@exmaple.com'
SERVER_EMAIL = 'forms@example.com'
# for SSL only
EMAIL_PORT = 587
EMAIL_USE_TLS = True
@tclancy
tclancy / Ecobee API
Created August 3, 2013 21:29
Working on an API for Ecobee
import datetime
import requests
from django.utils import simplejson
class EcobeeAPI(object):
def __init__(self, access_token, thermostat_ids):
self.api_url = 'https://api.ecobee.com/%s?format=json&body=%s'
self.access_token = access_token
@tclancy
tclancy / Coffeescript compiling
Created September 3, 2013 21:02
Coffeescript compiling
coffee -c path/to/file/or/dir
you can also set up a watch so that it compiles whenever you save: coffee -wc path/to/file/or/dir
@tclancy
tclancy / wtf
Last active December 24, 2015 00:49
Coffeescript/ JavaScript reduce() initial value confuses me. Documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
coffee> values = [2, 4, 4, 4, 5, 5, 7, 9]
[ 2,
4,
4,
4,
5,
5,
7,
9 ]
# lack of an initial value doesn't matter here?
#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'
Daemons.run('postgresql_agent.rb')