def save_clue(clue, p, setter, editor, publisher, puzzle, ptype): if clue.dir == "across": dir = 1 else: dir = 2 try: cl = Clue.objects.get(puzzle__title=p.title, num=clue.num, dir=dir) cl.answer = clue.ans try: ans = Answer.objects.get(answer=cl.answer) ans.count += 1 ans.save() except ObjectDoesNotExist: ans = Answer(answer=cl.answer, count=1) ans.save() cl.text = smart_str(clue.clue) cl.type = ptype cl.save() except ObjectDoesNotExist: cl = Clue( setter=setter, puzzle=puzzle, row=clue.row, col=clue.col, num=clue.num, answer=clue.ans, dir=dir, text=clue.clue, type=ptype, ) try: cl.save() except Exception: t = "" for i in range(len(clue.clue)): if ord(clue.clue[i : i + 1]) < 0x80: t += clue.clue[i : i + 1] cl.text = t cl.save() except MultipleObjectsReturned: print "multiple clues found for %s %s %s" % (clue.ans, clue.clue, p.title) except Exception: t = "" for i in range(len(clue.clue)): if ord(clue.clue[i : i + 1]) < 0x80: t += clue.clue[i : i + 1] cl.text = t cl.save()
puzzle.save() for clue in p.across: if clue.dir == "across": dir = 1 else: dir = 2 try: cl = Clue.objects.get(puzzle__title=p.title, num=clue.num, dir=dir) cl.answer=clue.ans cl.text=clue.clue cl.type=ptype cl.save() except ObjectDoesNotExist: cl = Clue(setter=setter, puzzle=puzzle, row=clue.row, col=clue.col, num=clue.num, answer=clue.ans, dir=dir, text=clue.clue, type=ptype) cl.save() except MultipleObjectsReturned: print "multiple clues found for %s %s %s" % (clue.ans, clue.clue, p.title) for clue in p.down: if clue.dir == "across": dir = 1 else: dir = 2 try: cl = Clue.objects.get(puzzle__title=p.title, num=clue.num, dir=dir) cl.answer=clue.ans cl.text=clue.clue cl.type=ptype