-
Notifications
You must be signed in to change notification settings - Fork 0
/
views.py
491 lines (458 loc) · 22.2 KB
/
views.py
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
from django.shortcuts import render
from django.template.response import TemplateResponse
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
import pymysql
from . import haksa_db_to_view
from . import club_db_to_view
from . import classic_list
from . import day_list
startButton = ['오늘의 인기검색어','학사일정','동아리','아주봇']
endButton = ['아주봇','처음으로']
clubButton = ['중앙동아리','소학회']
clubButton = ['중앙동아리', '소학회', '학과', '대학', '관심사','아주봇','처음으로']
majorButton = ['e-비즈니스 학과', '건설시스템공학과', '건축학과', '경영학과', '경제학과', '교통시스템공학과', '국어국문학과',
'금융공학과', '기계공학과', '문화컨텐츠학과', '물리학과', '미디어학과', '불어불문학과', '사이버보안학과',
'사학과', '사회학과', '산업공학과', '생명과학과', '소프트웨어학과', '수학과', '스포츠레저학과', '신소재공학과',
'심리학과', '영어영문학과', '응용화학생명공학과', '전자공학과', '정치외교학과', '행정학과', '화학공학과',
'화학과', '환경안전공학과']
univButton = ['간호대학', '경영대학', '공과대학', '국제학부', '사회과학대학', '약학대학', '의과대학', '인문대학',
'자연과학대학', '정보통신대학']
hobbyButton = \
['MIDI', '검도', '게임개발', '경제', '공연', '광고', '권투', '기타', '농구', '독서토론', '등산', '로봇', '록',
'만화', '문예창작', '미술', '바둑', '발명', '발표', '배드민턴', '볼링', '봉사', '분자생물학', '사물놀이', '사진',
'사회과학', '서예', '수화', '스노우보드', '스쿼시', '시사', '실용음악', '야구', '야학', '연극', '영상', '영어',
'영화', '오케스트라', '유도', '음악', '임용고시', '자전거', '종교', '창업', '천문', '체육', '축구', '춤', '컴퓨터',
'탁구', '태권도', '테니스', '토론', '패러글라이딩', '풍물', '합창', '흑인음악', '힙합']
hobbyButton2 = \
['MIDI ', '검도 ', '광고 ', '권투 ', '기타 ', '농구 ', '등산 ', '로봇 ', '록 ',
'미술 ', '바둑 ', '발명 ', '발표 ', '배드민턴 ', '볼링 ', '봉사 ', '사진 ',
'서예 ', '스노우보드 ', '스쿼시 ', '시사 ', '실용음악 ', '야구 ', '야학 ', '연극 ', '영상 ', '영어 ',
'영화 ', '유도 ', '음악 ', '자전거 ', '종교 ', '천문 ', '축구 ', '컴퓨터 ',
'탁구 ', '태권도 ', '테니스 ', '패러글라이딩 ', '풍물 ', '합창 ', '흑인음악 ', '힙합 ']
def keyboard(request):
day_list.init()
return JsonResponse({
'type' : 'buttons',
'buttons' : startButton
})
@csrf_exempt
def message(request):
json_str = ((request.body).decode('utf-8'))
json_data = json.loads(json_str)
content_name = json_data['content']
rank = str(classic_list.pull())
day_rank = str(day_list.pull())
#############################################################################################################
if content_name in ('오늘의 인기검색어','인기검색어','인기 검색어') :
return JsonResponse({
'message' : {
'text' : day_rank + '\n\n' + '\n' + rank
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
if content_name == '학사일정' :
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '어떤 일정이 궁금하세요?'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : ['전체','시험','방학','휴일','수강신청 관련','행정신청','입학/졸업','개강','아주봇','처음으로']
}
})
#############################################################################################################
#전체 학사 일정
if content_name in ('전체','전체학사일정','학사력'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
#시험 및 성적 관련 일정
if content_name == '시험' :
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '학기를 선택해주세요.'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : ['1학기','2학기','아주봇','처음으로']
}
})
# 시험 및 성적 관련 일정
if content_name in ('1학기','2학기','중간','중간고사','기말','기말고사','성적','성적입력','성적정정','공고'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
#수강신청 관련 일정
elif content_name == '수강신청 관련':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '수강 관련 목록입니다.'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : ['예비수강','수강신청','수강정정','수강신청 포기','취득학점 포기','아주봇','처음으로']
}
})
#수강신청 관련 일정
elif content_name in ('예비수강','수강신청','수강정정','수강신청 포기','취득학점 포기'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
# 방학
elif content_name in ('방학','여름방학','겨울방학'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
# 휴일
elif content_name in ('휴일','공휴일','쉬는날'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
# 입학식/졸업식
elif content_name == '입학/졸업':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '입학/졸업 관련 목록입니다.'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : ['입학식(신·편입)','졸업식(학위 수여식)','아주봇','처음으로']
}
})
# 입학식/졸업식
elif content_name in ('입학식','졸업식','입학식(신·편입)','졸업식(학위 수여식)'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
#개강 일정
elif content_name in ('개강','개강날짜','개강일정'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
#행정신청 관련 일정
elif content_name == '행정신청':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '행정신청 관련 목록입니다.'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : ['전과','학기등록','전공/졸업 신청','아주봇','처음으로']
}
})
#행정신청 관련 일정
elif content_name in ('전과','전과신청','전과 신청'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#행정신청 관련 일정
elif content_name in('학기등록','등록','학기 등록'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
elif content_name in ('전공/졸업 신청','졸업유예','졸업연기','졸업 유예','졸업 연기','전공 변경','전공 취소','복수전공','부전공','연계전공'):
info = str(haksa_db_to_view.haksa_db(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info
},
'keyboard' : {
'type' : 'buttons',
'buttons' : endButton
}
})
#############################################################################################################
if content_name == '동아리':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '동아리를 검색하실 방법을 선택해주세요.'
},
'keyboard': {
'type': 'buttons',
'buttons': clubButton
}
})
if content_name == '중앙동아리':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '중앙동아리 내에서 검색'
},
'keyboard': {
'type': 'buttons',
'buttons': ['중앙동아리 전체', '관심사별 조회','아주봇','처음으로']
}
})
if content_name == '중앙동아리 전체':
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
if content_name == '관심사별 조회':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '중동 내 관심사를 선택해 주세요'
},
'keyboard': {
'type': 'buttons',
'buttons': hobbyButton2
}
})
# 중동 - 관심사별 조회 선택시
elif content_name in hobbyButton2:
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
if content_name == '소학회':
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
if content_name == '학과':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '학과를 선택해 주세요'
},
'keyboard': {
'type': 'buttons',
'buttons': majorButton
}
})
# 학과 선택시
elif content_name in majorButton:
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
if content_name == '대학':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '대학을 선택해 주세요'
},
'keyboard': {
'type': 'buttons',
'buttons': univButton
}
})
# 대학 선택시
elif content_name in univButton:
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
if content_name == '관심사':
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + '관심사를 선택해 주세요'
},
'keyboard': {
'type': 'buttons',
'buttons': hobbyButton
}
})
# 관심사 선택시
elif content_name in hobbyButton:
info = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message': {
'text': rank + '\n\n' + info
},
'keyboard': {
'type': 'buttons',
'buttons': endButton
}
})
#############################################################################################################
if content_name == '아주봇' :
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '아주대에 관해 모르는거 빼고 다 알아요!'
},
'keyboard' : {
'type' : 'text'
}
})
if content_name == '처음으로' :
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + '처음으로 돌아갑니다.'
},
'keyboard' : {
'type' : 'buttons',
'buttons' : startButton
}
})
else :
info = str(haksa_db_to_view.haksa_db(content_name))
info2 = str(club_db_to_view.club(content_name))
classic_list.push(content_name)
day_list.push(content_name)
return JsonResponse({
'message' : {
'text' : rank + '\n\n' + info + '\n' + info2
},
'keyboard' : {
'type' : 'buttons',
'buttons' : startButton
}
})