Permalink
Browse files

Initial commit

  • Loading branch information...
Seth Dandridge
Seth Dandridge committed Jan 28, 2016
0 parents commit 75a2ff9bfeb25c16d1af9320f4785a53e68f21cf
Showing 1,567 changed files with 269,558 additions and 0 deletions.
No changes.
No changes.
Binary file not shown.
@@ -0,0 +1,133 @@
from flask import Blueprint, request, g, jsonify
from models import Orgy
from database import get_db_session
import re
api = Blueprint('api', __name__, subdomain='api')
YOUTUBE_REGEX = (r'(https?://)?(www\.)?'
'(youtube|youtu|youtube-nocookie)\.(com|be)/'
'(watch\?v=|embed/|v/|.+\?v=)?([^&=%\?]{11})')
@api.after_request
def after(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
@api.route('/check_name', methods=['POST'])
def check_name():
name = request.form.get('name')
if not name:
return 'InvalidName'
elif not re.search("^[a-zA-Z0-9\-]+$", name):
return 'InvalidName'
elif not len(name) < 64:
return 'InvalidName'
else:
db_session = get_db_session()
existing_party = db_session.query(Orgy)\
.filter(Orgy.name.ilike(name))\
.filter(Orgy.is_old == False)\
.one_or_none()
if existing_party:
return 'InUse'
else:
return 'Success'
@api.route('/check_youtube', methods=['POST'])
def check_youtube():
youtube_url = request.form.get('youtube_url')
if not youtube_url:
return 'InvalidYoutube'
elif not re.search(YOUTUBE_REGEX, youtube_url):
return 'InvalidYoutube'
else:
return 'Success'
@api.route('/create', methods=['POST'])
def create_party():
# Required fields
name = request.form.get('name')
foreground = request.form.get('foreground')
background = request.form.get('background')
direction = request.form.get('direction')
# Optional fields
youtube_url = request.form.get('youtube')
creator_ip = request.remote_addr
# Make sure foreground was included in POST
if not foreground:
return 'Missing foreground! Please upload a foreground image', 400
# Validate image foreground image input and construct imgur URL
if re.search(r"^[a-zA-Z0-9]+$", foreground):
foreground_url = "http://i.imgur.com/" + foreground + ".gif"
else:
return 'Foreground image invalid! Please retry upload', 400
# Make sure background was included in POST
if not background:
return 'Missing background! Please upload a background image', 400
# Validate image background image input and construct imgur URL
if re.search("^[a-zA-Z0-9]+$", background):
background_url = "http://i.imgur.com/" + background + ".gif"
else:
return 'Background image invalid! Please retry upload', 400
# Make sure direction was included in POST
if not direction:
return 'Missing direction! Hey wat r u doin?', 400
# Validate direction input and construct ltr/rtl boolean
if direction == 'right':
is_left_to_right = True
elif direction == 'left':
is_left_to_right = False
else:
return 'Invalid direction! Hey wat r u doing?', 400
# Validate youtube URL
if youtube_url:
youtube_match = re.search(YOUTUBE_REGEX, youtube_url)
if youtube_match:
youtube_id = youtube_match.group(6)
else:
return 'Invalid YouTube URL!', 400
else:
youtube_id = None
# Make sure name was included in POST
if not name:
return 'Missing name! Please pick a name for your party', 400
# Validate name
elif not re.search("^[a-zA-Z0-9\-]+$", name):
return 'Invalid name! Pick a different name', 400
# Make sure name isn't too long to be a subdomain
elif len(name) > 63:
return 'Name too long! Pick a shorter name', 400
# Forbid protected subdomains
elif name.lower() in ['my', 'static', 'api', 'www']:
return 'Forbidden name! Pick a different name', 400
# Create DB session
db_session = get_db_session()
# Make sure name is not already taken
existing_orgy = db_session.query(Orgy)\
.filter(Orgy.name.ilike(name))\
.filter(Orgy.is_old == False)\
.one_or_none()
if existing_orgy:
return name + ' already exists! Pick a different name', 400
# Instantiate new party and commit to DB
new_orgy = Orgy(name=name, is_old=False,
foreground_url=foreground_url,
background_url=background_url,
is_left_to_right=is_left_to_right,
youtube_id=youtube_id, creator_ip=creator_ip)
db_session.add(new_orgy)
db_session.commit()
# Return new party URL for client-side redirect target
new_party_url = 'http://' + name.lower() + '.corgiorgy.com'
print name, 'party:', new_party_url
return new_party_url, 201
Binary file not shown.
@@ -0,0 +1,24 @@
from flask import g
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('postgresql://seth2:@/mycorgi')
db_session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
def get_db_session():
g._database = True
return db_session
Base = declarative_base()
def init_db():
# import all modules here that might define models so that
# they will be registered properly on the metadata. Otherwise
# you will have to import them first before calling init_db()
import models
Base.metadata.create_all(bind=engine)
print 'done creating tables'
Binary file not shown.
@@ -0,0 +1,80 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate () {
unset pydoc
# reset old environment variables
if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r 2>/dev/null
fi
if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
PS1="$_OLD_VIRTUAL_PS1"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
if [ ! "$1" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
VIRTUAL_ENV="/home/seth2/mycorgi3/env"
export VIRTUAL_ENV
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "$PYTHONHOME" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
unset PYTHONHOME
fi
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
alias pydoc="python -m pydoc"
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r 2>/dev/null
fi
@@ -0,0 +1,42 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV "/home/seth2/mycorgi3/env"
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
if ("" != "") then
set env_name = ""
else
if (`basename "$VIRTUAL_ENV"` == "__") then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
else
set env_name = `basename "$VIRTUAL_ENV"`
endif
endif
# Could be in a non-interactive environment,
# in which case, $prompt is undefined and we wouldn't
# care about the prompt anyway.
if ( $?prompt ) then
set _OLD_VIRTUAL_PROMPT="$prompt"
set prompt = "[$env_name] $prompt"
endif
unset env_name
alias pydoc python -m pydoc
rehash
@@ -0,0 +1,74 @@
# This file must be used with "source bin/activate.fish" *from fish* (http://fishshell.com)
# you cannot run it directly
function deactivate -d "Exit virtualenv and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
# set an empty local fish_function_path, so fish_prompt doesn't automatically reload
set -l fish_function_path
# erase the virtualenv's fish_prompt function, and restore the original
functions -e fish_prompt
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
end
set -e VIRTUAL_ENV
if test "$argv[1]" != "nondestructive"
# Self destruct!
functions -e deactivate
end
end
# unset irrelevant variables
deactivate nondestructive
set -gx VIRTUAL_ENV "/home/seth2/mycorgi3/env"
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
# unset PYTHONHOME if set
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.
# copy the current fish_prompt function as the function _old_fish_prompt
functions -c fish_prompt _old_fish_prompt
# with the original prompt function copied, we can override with our own.
function fish_prompt
# Prompt override?
if test -n ""
printf "%s%s" "" (set_color normal)
_old_fish_prompt
return
end
# ...Otherwise, prepend env
set -l _checkbase (basename "$VIRTUAL_ENV")
if test $_checkbase = "__"
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal)
_old_fish_prompt
else
printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal)
_old_fish_prompt
end
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end
@@ -0,0 +1,34 @@
"""By using execfile(this_file, dict(__file__=this_file)) you will
activate this virtualenv environment.
This can be used when you must use an existing Python interpreter, not
the virtualenv bin/python
"""
try:
__file__
except NameError:
raise AssertionError(
"You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
import sys
import os
old_os_path = os.environ['PATH']
os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if sys.platform == 'win32':
site_packages = os.path.join(base, 'Lib', 'site-packages')
else:
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
Oops, something went wrong.

0 comments on commit 75a2ff9

Please sign in to comment.