From 89ab48779e802d9056b86898f74c9e00694a578e Mon Sep 17 00:00:00 2001 From: njmason22 Date: Tue, 24 Feb 2026 00:06:47 -0500 Subject: [PATCH] app/views.py --- poem_server/app/views.py | 53 +++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/poem_server/app/views.py b/poem_server/app/views.py index 0125200..1536893 100644 --- a/poem_server/app/views.py +++ b/poem_server/app/views.py @@ -18,8 +18,7 @@ def get_about_line(params): return {'line': Line.objects.filter(clean_text__contains=topic).random().text, 'topic':topic} except Line.DoesNotExist: raise NotFound("Line not found") - except Line.BadRequest: - raise BadRequest("Bad request") + @route_get('lines/rhyme', args={'word': str}) def get_rhyme_line(params): @@ -29,8 +28,50 @@ def get_rhyme_line(params): = " " + word).random().text, 'word':word} except Rhyme.DoesNotExist: raise NotFound("Rhyme not found") - except Rhyme.BadRequest: - raise BadRequest("Bad request") - - \ No newline at end of file + +@route_get('couplets/random', args={}) +def get_random_couplets(params): + line = Line.objects.random().text + word=line.split()[-1] + try: + if {'First Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text} != {'Second Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text}: + return {'First Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text, 'Second Line':line} + else: + return() + except Rhyme.DoesNotExist: + raise NotFound("Rhyme not found") + +@route_get('couplets/about', args={'topic': str}) +def get_about_couplets(params): + topic=params['topic'] + line=Line.objects.filter(clean_text__contains=topic).random().text + word=line.split()[-1] + try: + if {'First Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text} != {'Second Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text}: + return {'First Line': line, 'Second Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text} + else: + return() + except Rhyme.DoesNotExist: + raise NotFound("Rhyme not found") + +@route_get('couplets/rhyme', args={'word': str}) +def get_rhyme_couplets(params): + word=params['word'] + try: + if {'First Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text} != {'Second Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text}: + return {'First Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text, 'Second Line': Rhyme.get_rhyme_for_word(word).lines.exclude(clean_text__endswith + = " " + word).random().text} + else: + return() + except Rhyme.DoesNotExist: + raise NotFound("Rhyme not found")