Exemplo n.º 1
0
def get_sentences(request):
    kanji = request.GET.get('kanji', False)
    if not kanji or len(kanji) != 1 or not Restructurer.is_kanji(kanji):
        return HttpResponseBadRequest("Paramater 'kanji' is invalid")
    try:
        page = int( request.GET.get('page', '') )
        if page < 0: raise ValueError
    except ValueError:
        return HttpResponseBadRequest("Paramater 'page' is invalid")

    up = request.user.get_profile()
    sp = FileSentenceProvider()
    ss = sp.get_sentences(kanji, 1, page, up.known_kanji) # hardcoding items_per_page to 1 for now
    if not ss:
        return HttpResponseBadRequest("No sentences left for kanji '%s' in page %d" % (kanji, page))

    sentences = []
    for bun in ss:
        sentences.append( { 'sentence' : bun[0],
                            'structure' : bun[1],
                            'translations' : bun[2],
                            'pronunciations' : get_pronunciations( bun[0] ) } )

    return HttpResponse(simplejson.dumps(sentences), mimetype = "application/json")