예제 #1
0
def handle_list_events():
    """
    Display frontpage form
    """
    upcoming_events = get_upcoming_events()
    ongoing_events = get_ongoing_events()

    # Setup Are You A Human check
    ayah.configure(app.config['ARE_YOU_HUMAN_PUBLISHER_KEY'], app.config['ARE_YOU_HUMAN_SCORING_KEY'])
    ayah_html = ayah.get_publisher_html()

    return render_template('index.html', upcoming_events=upcoming_events, ongoing_events=ongoing_events,
                           ayah_html=ayah_html)
예제 #2
0
def add_article(request):
    ayah.configure(settings.AYAH_PUBLISHER_KEY, settings.AYAH_SCORING_KEY)
    if request.method == "POST":
        form = ArticleForm(request.POST)
        if form.is_valid():
            #subject = form.cleaned_data['subject']
            #message = form.cleaned_data['message']
            #sender = form.cleaned_data['sender']
            #cc_myself = form.cleaned_data['cc_myself']


            ayah_form_secret = form.data.get('session_secret')
            if not settings.DEBUG and not ayah.score_result(ayah_form_secret):
                return HttpResponseRedirect('/')

        
            recipients = [settings.DEFAULT_FROM_EMAIL]
            message = 'Url - %s Tags: %s' % (form.cleaned_data['link'], form.cleaned_data['tags'])

            test = form.save(commit=False)
            # Add user
            test.added_by = request.user
            test.save()

            article_id = Article.objects.get(id=test.id)

            for tag in form.cleaned_data['tags']:
                # Add the tags to the article
                Article_Tags(article=article_id, tag=tag).save()

            from django.core.mail import send_mail
            send_mail('New article: %s' % form.cleaned_data['link'], message, '*****@*****.**', recipients)
            return HttpResponseRedirect('/')
    else:
        form = ArticleForm()

    return render_to_response('article/add_article.html', 
        {
        'form':form,
        'ayah': ayah.get_publisher_html()
        },
        context_instance=RequestContext(request)
    )
예제 #3
0
def handle_remove_event():
    """
    Validate secret code and remove event, flash and redirect to frontpage
    """
    # TODO Aikaperusteinen hidaste avainten brute force -spämmäyksen estoon
    if request.method == 'GET':
        flash(u'Käytä lomaketta')
        return redirect(url_for('handle_list_events'))

    # Get data from form
    remove_short_name = request.form['short_name'].strip().lower()
    remove_secret = request.form['secret'].strip().lower()
    ayah_session_secret = strip_tags(request.form['session_secret'].strip())

    # Setup Are You A Human check
    ayah.configure(app.config['ARE_YOU_HUMAN_PUBLISHER_KEY'], app.config['ARE_YOU_HUMAN_SCORING_KEY'])

    # Validation
    if is_valid_short_name(remove_short_name) != True:
        flash(u'Lyhytnimi tai salainen avain ei täsmää. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    if is_valid_secret_key(remove_secret, app.config['SECRET_KEY_CHARACTERS']) != True:
        flash(u'Lyhytnimi tai salainen avain ei täsmää. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    if event_exists(remove_short_name) != True:
        flash(u'Lyhytnimi tai salainen avain ei täsmää. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # Call Are You A Human scoring service
    if ayah.score_result(ayah_session_secret) == False:
        flash(u'Spämmitarkistus epäonnistui. Tarkista että et ole spämmirobotti ja/tai yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    if not remove_event_with_secret(remove_short_name, remove_secret):
        flash(u'Lyhytnimi tai salainen avain ei täsmää. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))
    else:
        flash(u'Tapahtuma poistettu onnistuneesti.')
        return redirect(url_for('handle_list_events'))
예제 #4
0
파일: index.py 프로젝트: mattyg/GitPage
import ayah
from settings import *




REPO_REMOTE_PATH = REPO_USERNAME+'@'+REPO_SERVER+REPO_NAME+'.git'
REPO_PATH = ROOT_PATH+REPO_NAME+'/'
flatfiles_path = REPO_PATH
templates = web.template.render(ROOT_PATH+'templates/')
#print 'cd '+REPO_PATH+' && git fetch '+REPO_REMOTE_PATH+' && git reset --soft master'
# check if git repo is up-to-date
res =subprocess.Popen('cd '+REPO_PATH+' && git fetch '+REPO_REMOTE_PATH+' && git reset --soft master',shell=True)

# configure ayah
ayah.configure(AYAH_PUB_KEY,AYAH_SCOR_KEY)


urls = (
	'^/contact', 'contact',
	'^/(.*)[/]*$', 'page'
)
app = web.application(urls, globals(),autoreload=False)


def load_pagefile(name):
	if os.path.isdir(flatfiles_path+name):
		flatfiles = os.listdir(flatfiles_path+name)
		if 'index' in flatfiles:
			return markdown2.markdown_path(flatfiles_path+name+'/index')
		else:
예제 #5
0
import sys
from os.path import abspath, basename, dirname, join, normpath

from django.core.mail import send_mail

#Initialization of Are you human
import ayah
ayah.configure("15aaa63b65ead6b11342d1c7f349c68e875a3f16", "5d736518475d70a969d57bf2caadb32ce7160500")


########## PATH CONFIGURATION
# Absolute filesystem path to this Django project directory.
DJANGO_ROOT = dirname(dirname(abspath(__file__)))


# Site name.
SITE_NAME = basename(DJANGO_ROOT)

# Absolute filesystem path to the top-level project folder.
SITE_ROOT = dirname(DJANGO_ROOT)

# Add all necessary filesystem paths to our system path so that we can use
# python import statements.
sys.path.append(SITE_ROOT)
sys.path.append(normpath(join(DJANGO_ROOT, 'apps')))
sys.path.append(normpath(join(DJANGO_ROOT, 'libs')))




ADMINS = (
예제 #6
0
def handle_add_event():
    """
    Validate and add event, flash and redirect to frontpage
    """

    # TODO Aikaperusteinen hidaste tapahtumien lisäyksen spämmäämiseen
    if request.method == 'GET':
        flash(u'Käytä lomaketta')
        return redirect(url_for('handle_list_events'))

    # Get data from form
    add_short_name = strip_tags(request.form['short_name'].strip())
    add_name = strip_tags(request.form['name'].strip())
    add_url = request.form['url'].strip().lower()
    add_start_time = strip_tags(request.form['start_time'].strip())
    add_end_time = strip_tags(request.form['end_time'].strip())
    ayah_session_secret = strip_tags(request.form['session_secret'].strip())

    # Setup Are You A Human check
    ayah.configure(app.config['ARE_YOU_HUMAN_PUBLISHER_KEY'], app.config['ARE_YOU_HUMAN_SCORING_KEY'])

    # Validate short name
    if is_valid_short_name(add_short_name) != True:
        flash(u'Tapahtuman lyhytnimi ei ole kelvollinen. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # Parse times and validate them
    add_start_time = parse_date(add_start_time)
    add_end_time = parse_date(add_end_time)

    if add_start_time == False:
        flash(u'Tapahtuman alkuaika ei ole kelvollinen. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    if add_end_time == False:
        flash(u'Tapahtuman päättymisaika ei ole kelvollinen. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # Check that end time is later than start time
    if add_start_time >= add_end_time:
        flash(u'Tapahtuma ei voi päättyä ennen alkamistaan. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # Check if event already exists with short name
    if event_exists(add_short_name):
        flash(u'Tapahtuman lyhytnimi on jo käytössä. Valitse toinen nimi tai poista olemassa oleva tapahtuma.')
        return redirect(url_for('handle_list_events'))

    # Call Are You A Human scoring service
    if ayah.score_result(ayah_session_secret) == False:
        flash(u'Spämmitarkistus epäonnistui. Tarkista että et ole spämmirobotti ja/tai yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # Request URL and check it's valid
    add_url = validate_url(add_url)
    if add_url == False:
        flash(u'Tapahtuman URL-osoite ei ole kelvollinen. Tarkista tiedot ja yritä uudelleen.')
        return redirect(url_for('handle_list_events'))

    # TODO Spämmitarkistuksia lyhyt nimi, nimi ja URL. Domain/sanalistan mukaan pisteytys.

    # Add event to system
    if add_event(short_name=add_short_name, name=add_name, url=add_url, start_time=add_start_time,
                 end_time=add_end_time) == False:
        flash(
            u'Tapahtuman lisäämisessä tapahtui mystinen virhe. Tarkista tiedot ja yritä uudelleen. Ongelman jatkuessa ota yhteyttä.')
        return redirect(url_for('handle_list_events'))
    else:
        secret_key = get_event_secret_key(add_short_name)
        flash(
            u'Tapahtuma lisättiin onnistuneesti. Tapahtuman salainen avain on %s. Pidä se tallessa esimerkiksi poistoa varten.' % secret_key)
        return redirect(url_for('handle_list_events'))
예제 #7
0
파일: forms.py 프로젝트: altertain/algospot
 def get_form_class(self, request):
     if settings.USE_AYAH: 
         ayah.configure(settings.AYAH_PUBLISHER_KEY, settings.AYAH_SCORING_KEY)
         return AreYouAHumanForm
     return RegistrationForm
예제 #8
0
 def get_form_class(self, request):
     if settings.USE_AYAH: 
         ayah.configure(settings.AYAH_PUBLISHER_KEY, settings.AYAH_SCORING_KEY)
         return AreYouAHumanForm
     return RegistrationForm
예제 #9
0
파일: app.py 프로젝트: tomzaragoza/graphbin
from flask import *
from flask.ext.login import LoginManager, login_user, logout_user, current_user, login_required
from models import User
from forms import RegisterForm, LoginForm
from werkzeug.contrib.fixers import ProxyFix
from hash_helpers import hash_password, hash_username

from datetime import datetime

import rethinkdb as r
from rethinkdb.errors import RqlRuntimeError

import ayah
ayah.configure("322e978072eb0dabad2a51e05e8bb53aaa38d246", "79e8cd8c44ea4ca311815fdb165a920e0558b986")

import os
import string
import random

app = Flask(__name__)
app.secret_key = '8yK6_Mf2D_-R6GB3C1222o1ix98o-YR_'
app.wsgi_app = ProxyFix(app.wsgi_app)

login_manager = LoginManager()
login_manager.login_view = "login"
login_manager.init_app(app)

RDB_HOST =  os.environ.get('RDB_HOST') or 'localhost'
RDB_PORT = os.environ.get('RDB_PORT') or 28015

# main graph database
예제 #10
0
import subprocess
import ayah
from settings import *

REPO_REMOTE_PATH = REPO_USERNAME + '@' + REPO_SERVER + REPO_NAME + '.git'
REPO_PATH = ROOT_PATH + REPO_NAME + '/'
flatfiles_path = REPO_PATH
templates = web.template.render(ROOT_PATH + 'templates/')
#print 'cd '+REPO_PATH+' && git fetch '+REPO_REMOTE_PATH+' && git reset --soft master'
# check if git repo is up-to-date
res = subprocess.Popen('cd ' + REPO_PATH + ' && git fetch ' +
                       REPO_REMOTE_PATH + ' && git reset --soft master',
                       shell=True)

# configure ayah
ayah.configure(AYAH_PUB_KEY, AYAH_SCOR_KEY)

urls = ('^/contact', 'contact', '^/(.*)[/]*$', 'page')
app = web.application(urls, globals(), autoreload=False)


def load_pagefile(name):
    if os.path.isdir(flatfiles_path + name):
        flatfiles = os.listdir(flatfiles_path + name)
        if 'index' in flatfiles:
            return markdown2.markdown_path(flatfiles_path + name + '/index')
        else:
            return False
    else:
        if os.path.isfile(flatfiles_path + name):
            return markdown2.markdown_path(flatfiles_path + name)