コード例 #1
0
ファイル: routes.py プロジェクト: x89/qdb
def show(quote_id):
	quote = db_session.query(Quote) \
		.filter(Quote.id == quote_id) \
		.first()

	if not quote:
		return abort(404)

	if request.method == 'GET' or request.method == 'HEAD':
		if request.headers.get('Accept') == 'application/json':
			return jsonify(quote=quote)
		return render_template('show.html.jinja', quote=quote)

	if not session.get('logged_in'):
		return abort(401)

	if request.method == 'DELETE':
		db_session.delete(quote)
		db_session.commit()
		return 'OK'

	body = Quote.prepare(request.form['body'])
	quote.body = body
	db_session.add(quote)
	db_session.commit()
	return 'OK'
コード例 #2
0
ファイル: routes.py プロジェクト: x89/qdb
def show(quote_id):
    quote = db_session.query(Quote) \
     .filter(Quote.id == quote_id) \
     .first()

    if not quote:
        return abort(404)

    if request.method == 'GET' or request.method == 'HEAD':
        if request.headers.get('Accept') == 'application/json':
            return jsonify(quote=quote)
        return render_template('show.html.jinja', quote=quote)

    if not session.get('logged_in'):
        return abort(401)

    if request.method == 'DELETE':
        db_session.delete(quote)
        db_session.commit()
        return 'OK'

    body = Quote.prepare(request.form['body'])
    quote.body = body
    db_session.add(quote)
    db_session.commit()
    return 'OK'
コード例 #3
0
ファイル: routes.py プロジェクト: x89/qdb
def submit():
	if request.method == 'GET' or request.method == 'HEAD':
		return render_template('form.html.jinja',
			form_action=url_for('submit'),
			body='',
		)

	body = Quote.prepare(request.form['body'])
	quote = Quote(body, datetime.now())
	db_session.add(quote)
	db_session.commit()

	if app.config.get('ENABLE_IRCBOT_WEBHOOKS'):
		ircbot.notify_bot(quote)

	flash('Quote added!')
	return redirect(url_for('home'))
コード例 #4
0
ファイル: routes.py プロジェクト: x89/qdb
def submit():
    if request.method == 'GET' or request.method == 'HEAD':
        return render_template(
            'form.html.jinja',
            form_action=url_for('submit'),
            body='',
        )

    body = Quote.prepare(request.form['body'])
    quote = Quote(body, datetime.now())
    db_session.add(quote)
    db_session.commit()

    if app.config.get('ENABLE_IRCBOT_WEBHOOKS'):
        ircbot.notify_bot(quote)

    flash('Quote added!')
    return redirect(url_for('home'))
コード例 #5
0
ファイル: routes.py プロジェクト: anlutro/qdb
def submit():
	if request.method in ('GET', 'HEAD'):
		return render_template('form.html.jinja', body='')

	if is_spam(request.form['body']):
		return abort(400)

	body = Quote.prepare(
		request.form['body'],
		strip_timestamps=bool(request.form.get('strip_timestamps'))
	)
	quote = Quote(body, datetime.now(), request.remote_addr)
	if session.get('logged_in'):
		quote.approved = True
	db_session.add(quote)
	db_session.commit()

	if app.config.get('ENABLE_IRCBOT_WEBHOOKS'):
		ircbot.notify_bot(quote)

	flash('Quote added!')
	return redirect(url_for('home'))
コード例 #6
0
ファイル: models_test.py プロジェクト: anlutro/qdb
	def test_strips_voice_and_ops(self):
		text = '<+Abc> a\n<@dEf> b\n< ghJ> c'
		expected = '<Abc> a\n<dEf> b\n<ghJ> c'
		self.assertEqual(expected, Quote.prepare(text))
コード例 #7
0
ファイル: models_test.py プロジェクト: anlutro/qdb
	def test_prepare_strips_timestamp(self):
		text = '[01:23] <asdf> foobar\n[01:23]  * asdf stuff'
		self.assertEqual(text, Quote.prepare(text, strip_timestamps=False))

		expected = '<asdf> foobar\n* asdf stuff'
		self.assertEqual(expected, Quote.prepare(text))