-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathviews.py
More file actions
69 lines (58 loc) · 2.28 KB
/
Copy pathviews.py
File metadata and controls
69 lines (58 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import render
from django.http import HttpResponse
import os, json
from messengerbot import receive
try:
assert 2==3
from messengerbot.tasks import handleMessageEvent, sendConfirmedEmailMessage
except:
print('Cant import celery stuff, trying other way...')
from messengerbot.sync_tasks import handleMessageEvent, sendConfirmedEmailMessage
import datetime
from .models import User
from TokenManager import TokenManager
tm = TokenManager()
VERIFY_TOKEN = tm.get('MESSENGER_VERIFY_TOKEN')
def index(request):
return HttpResponse('Front page of ECEUSC Messenger Bot should go here! %s' % request.get_host())
#confirm-email?code=%s
def confirm_email(request):
code = request.GET.get('code')
try:
u = User.objects.get(email_confirm_code=code)
except User.DoesNotExist:
return HttpResponse('I\'m sorry, I don\'t recognize that code!')
if u.email_is_confirmed:
return HttpResponse('Your email has already been confirmed!')
u.email_is_confirmed = True
u.save()
try:
sendConfirmedEmailMessage.delay(psid=u.psid, email=u.ucsd_email)
except:
sendConfirmedEmailMessage(psid=u.psid, email=u.ucsd_email)
return HttpResponse('Your email has been confirmed! :)')
@csrf_exempt
def webhook(request):
if request.method == 'GET':
verify_token = request.GET.get('hub.verify_token')
if verify_token == VERIFY_TOKEN:
hub_challenge = request.GET.get('hub.challenge')
return HttpResponse(hub_challenge)
else:
return HttpResponse('ERROR')
elif request.method == 'POST':
data = json.loads(request.body.decode("utf-8") )
obj = data.get('object')
if obj == 'page':
for entry in data.get('entry'):
for msg_event in entry.get('messaging'):
#receive.handleMessage(msg_event)
msg_event['orig_host_name'] = request.get_host()
try:
handleMessageEvent.delay(msg_event)
except:
handleMessageEvent(msg_event)
else:
return HttpResponse('this is weird...')
return HttpResponse(status=200)