generated from mwc/lab_server
Trial to update
This commit is contained in:
84
poem_server/app/.history/views_20260328222607.py
Normal file
84
poem_server/app/.history/views_20260328222607.py
Normal file
@@ -0,0 +1,84 @@
|
||||
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'
|
||||
word = params['word']
|
||||
if not word:
|
||||
raise BadRequest("Please enter a word to explore poetry lines that rhyme with the selected word")
|
||||
rhymes = Rhyme.get_rhyme_for_word(word)
|
||||
rhymed_lines = rhymes.line
|
||||
return{'line': rhymed_lines.random().text}
|
||||
|
||||
@route_get('couplets/random', args={})
|
||||
def get_random_couplet(params):
|
||||
'Get a random rhyming couplet'
|
||||
first_line=Line.objects.random()
|
||||
first_line_last=first_line.last_word()
|
||||
rhymes = Rhyme.get_rhymes_for_word(first_line_last)
|
||||
rhymed_lines= rhymes.line
|
||||
second_line=rhymed_lines.random()
|
||||
return {'couplet line 1': first_line.text,
|
||||
'couplet line 2': second_line.text
|
||||
}
|
||||
|
||||
@route_get('couplets/about/<topic>', args= {'topic': str})
|
||||
def get_random_couplets_topic(params):
|
||||
'Get a random rhyming couplet about a selected topic'
|
||||
topic = params['topic']
|
||||
first_line=Line.objects.filter(clean_text__contains=topic).random()
|
||||
first_line_last=first_line.last_word()
|
||||
rhymes = Rhyme.get_rhymes_for_word(first_line_last)
|
||||
rhymed_lines= rhymes.line
|
||||
second_line=rhymed_lines.random()
|
||||
return {'couplet line 1': first_line.text,
|
||||
'couplet line 2': second_line.text
|
||||
}
|
||||
|
||||
|
||||
@route_get('couplets/rhyme/<word>', args = {'word':str})
|
||||
def get_random_rhyming_couplet(params):
|
||||
word = params['word']
|
||||
rhymes = Rhyme.get_rhyme_for_word(word)
|
||||
rhymed_lines = rhymes.line
|
||||
first_line=rhymed_lines.random()
|
||||
second_line=rhymed_lines.random()
|
||||
return { 'couplet line 1': first_line.text,
|
||||
'couplet line 2': second_line.text }
|
||||
|
||||
|
||||
@route_get('couplet/last/first', args = {})
|
||||
def first_word(self):
|
||||
"Gets the first word from a line, lower case and without punctuation."
|
||||
parts = self.clean_text.split()
|
||||
if parts:
|
||||
return parts[0]
|
||||
def get_last_first_couplet(params):
|
||||
'Get a random couplet whose second lines first word start with first lines last'
|
||||
first_line=Line.objects.random()
|
||||
first_line_last=first_line.last_word()
|
||||
second_line=
|
||||
return { 'couplet line 1': first_line.text,
|
||||
'couplet line 2': second_line.text }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user