def __init__(self, config): self.secret_key = config["secret_key"] self.db_autoflush = config["db"].get("autoflush") self.site_title = config.get("site_title") or "Lodge It" self.config = config self.attach_config = config["attachments"] # prepare the upload directory if not os.path.isdir(self.attach_config["upload_folder"]): os.makedirs(self.attach_config["upload_folder"]) #: bind metadata, create engine and create all tables self.engine = engine = create_engine(config["db"]["uri"], convert_unicode=True) db.metadata.bind = engine if self.config["db"]["create_all"]: db.metadata.create_all(engine) #: jinja_environment update jinja_environment.globals.update({ 'i18n_languages': i18n.list_languages()}) jinja_environment.filters.update({ 'datetimeformat': i18n.format_datetime}) jinja_environment.install_null_translations() #: bind the application to the current context local self.bind_to_context() self.cleanup_callbacks = (db.session.close, _local_manager.cleanup, self.bind_to_context)
def set_language(self, lang='en'): """Minimal view that set's a different language. Redirects back to the page the user is coming from.""" for key, value in list_languages(): if key == lang: local.request.set_language(lang) break return redirect(local.request.headers.get('referer') or '/')
def new_paste(self, language=None): """The 'create a new paste' view.""" language = local.request.args.get('language', language) if language is None: language = local.request.session.get('language', 'text') code = error = '' show_captcha = private = False parent = None req = local.request getform = req.form.get if local.request.method == 'POST': code = getform('code', u'') language = getform('language') parent_id = getform('parent') if parent_id is not None: parent = Paste.get(parent_id) spam = getform('webpage') or antispam.is_spam(code) if spam: error = _('your paste contains spam') captcha = getform('captcha') if captcha: if check_hashed_solution(captcha): error = None else: error = _('your paste contains spam and the ' 'CAPTCHA solution was incorrect') show_captcha = True if code and language and not error: paste = Paste(code, language, parent, req.user_hash, 'private' in req.form) session.flush() local.request.session['language'] = language return redirect(paste.url) else: parent_id = req.values.get('reply_to') if parent_id is not None: parent = Paste.get(parent_id) if parent is not None: code = parent.code language = parent.language private = parent.private return render_to_response('new_paste.html', languages=list_languages(), parent=parent, code=code, language=language, error=error, show_captcha=show_captcha, private=private )
def new_paste(self, language=None): """The 'create a new paste' view.""" language = local.request.args.get('language', language) if language is None: language = local.request.session.get('language', 'text') code = error = '' show_captcha = private = False parent = None req = local.request getform = req.form.get if local.request.method == 'POST': code = getform('code', u'') language = getform('language') parent_id = getform('parent') if parent_id is not None: parent = Paste.get(parent_id) spam = getform('webpage') or antispam.is_spam(code) if spam: error = _('your paste contains spam') captcha = getform('captcha') if captcha: if check_hashed_solution(captcha): error = None else: error = _('your paste contains spam and the ' 'CAPTCHA solution was incorrect') show_captcha = True if code and language and not error: paste = Paste(code, language, parent, req.user_hash, 'private' in req.form) session.flush() local.request.session['language'] = language return redirect(paste.url) else: parent_id = req.values.get('reply_to') if parent_id is not None: parent = Paste.get(parent_id) if parent is not None: code = parent.code language = parent.language private = parent.private return render_to_response('new_paste.html', languages=list_languages(), parent=parent, code=code, language=language, error=error, show_captcha=show_captcha, private=private)
def __init__(self, dburi, secret_key): self.secret_key = secret_key #: bind metadata, create engine and create all tables self.engine = engine = create_engine(dburi, convert_unicode=True) metadata.bind = engine metadata.create_all(engine) #: jinja_environment update jinja_environment.globals.update(i18n_languages=i18n.list_languages()) jinja_environment.filters.update(datetimeformat=i18n.format_datetime) jinja_environment.install_null_translations() #: bind the application to the current context local self.bind_to_context()
def __init__(self, dburi, secret_key): self.secret_key = secret_key #: bind metadata, create engine and create all tables self.engine = engine = create_engine(dburi, convert_unicode=True) db.metadata.bind = engine db.metadata.create_all(engine, [Paste.__table__]) #: jinja_environment update jinja_environment.globals.update({ 'i18n_languages': i18n.list_languages()}) jinja_environment.filters.update({ 'datetimeformat': i18n.format_datetime}) jinja_environment.install_null_translations() #: bind the application to the current context local self.bind_to_context() self.cleanup_callbacks = (db.session.close, _local_manager.cleanup, self.bind_to_context)
def __init__(self, dburi, secret_key): self.secret_key = secret_key #: bind metadata, create engine and create all tables self.engine = engine = create_engine(dburi, convert_unicode=True) db.metadata.bind = engine db.metadata.create_all(engine, [Paste.__table__]) #: jinja_environment update jinja_environment.globals.update( {'i18n_languages': i18n.list_languages()}) jinja_environment.filters.update( {'datetimeformat': i18n.format_datetime}) jinja_environment.install_null_translations() #: bind the application to the current context local self.bind_to_context() self.cleanup_callbacks = (db.session.close, _local_manager.cleanup, self.bind_to_context)