generated from mwc/lab_server
28 lines
1010 B
Python
28 lines
1010 B
Python
from banjo.urls import route_get, route_post
|
|
from banjo.http import BadRequest, NotFound
|
|
from app.models import Line, Poem, Rhyme
|
|
from random import choice, sample
|
|
|
|
@route_get('lines/random', args={})
|
|
def get_random_line(params):
|
|
'Get a random line of poetry'
|
|
return {'line': Line.objects.random().text}
|
|
|
|
@route_get('lines/about/<topic>', args={'topic': str})
|
|
def get_about_topic(params):
|
|
'Get a random line of poetry about a selected topic'
|
|
topic = params['topic']
|
|
if not topic:
|
|
raise BadRequest("Please enter a topic")
|
|
return {'line': Line.objects.filter(clean_text__contains=topic).random().text}
|
|
|
|
@route_get('lines/rhyme/<word>', args={'word': str})
|
|
def get_random_rhyme(params):
|
|
'Get a random line of poetry that rhymes with a selected word'
|
|
rhymes = params['rhyme']
|
|
if not rhymes:
|
|
raise BadRequest("Please enter a word to explore poetry lines that rhyme with the selected word")
|
|
return {'line': Line.objects.rhyming_lines.random().text}
|
|
|
|
|