示例#1
0
def update_known_kanji(request):
    updates = request.POST.get("updates", False)
    if updates == None:
        return HttpResponseBadRequest("Parameter 'updates' not found or invalid")

    # assuming there's an authenticated user
    up = request.user.get_profile()
    kd = KanjiDic()
    d = simplejson.loads(updates)
    learned = string.join((k[u"literal"] for k in d if k[u"known"]), u"")
    unlearned = string.join((k[u"literal"] for k in d if not k[u"known"]), u"")
    # we put the random symbol 'k' to avoid changes
    # in the logic when we have no unlearned kanji
    up.known_kanji = re.sub(u"[k%s]" % unlearned, "", up.known_kanji) + learned
    up.save()

    # clear the cache for the learned kanjis
    sp = FileSentenceProvider()
    sp.clear_cache()

    return HttpResponse()
示例#2
0
文件: train.py 项目: brAzzi64/manabu
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")