diff --git a/cookbook/views/telegram.py b/cookbook/views/telegram.py index 2de349a1b..03410c953 100644 --- a/cookbook/views/telegram.py +++ b/cookbook/views/telegram.py @@ -35,27 +35,30 @@ def remove_bot(request, pk): @csrf_exempt def hook(request, token): - tb = get_object_or_404(TelegramBot, webhook_token=token) + try: + tb = get_object_or_404(TelegramBot, webhook_token=token) - data = json.loads(request.body.decode()) + data = json.loads(request.body.decode()) - if tb.chat_id == '': - tb.chat_id = data['message']['chat']['id'] - tb.save() + if tb.chat_id == '': + tb.chat_id = data['message']['chat']['id'] + tb.save() - if tb.chat_id == str(data['message']['chat']['id']): - sl = ShoppingList.objects.filter(Q(created_by=tb.created_by)).filter(finished=False, space=tb.space).order_by('-created_at').first() - if not sl: - sl = ShoppingList.objects.create(created_by=tb.created_by, space=tb.space) + if tb.chat_id == str(data['message']['chat']['id']): + sl = ShoppingList.objects.filter(Q(created_by=tb.created_by)).filter(finished=False, space=tb.space).order_by('-created_at').first() + if not sl: + sl = ShoppingList.objects.create(created_by=tb.created_by, space=tb.space) - amount, unit, ingredient, note = parse(data['message']['text']) - f, created = Food.objects.get_or_create(name=ingredient, space=tb.space) - u, created = Unit.objects.get_or_create(name=unit, space=tb.space) - sl.entries.add( - ShoppingListEntry.objects.create( - food=f, unit=u, amount=amount + amount, unit, ingredient, note = parse(data['message']['text']) + f, created = Food.objects.get_or_create(name=ingredient, space=tb.space) + u, created = Unit.objects.get_or_create(name=unit, space=tb.space) + sl.entries.add( + ShoppingListEntry.objects.create( + food=f, unit=u, amount=amount + ) ) - ) - return JsonResponse({'data': data['message']['text']}) + return JsonResponse({'data': data['message']['text']}) + except: + pass return JsonResponse({})