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)
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) )
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'))
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:
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 = (
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'))
def get_form_class(self, request): if settings.USE_AYAH: ayah.configure(settings.AYAH_PUBLISHER_KEY, settings.AYAH_SCORING_KEY) return AreYouAHumanForm return RegistrationForm
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
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)