Advertisement
Guest User

Untitled

a guest
Jul 15th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.14 KB | None | 0 0
  1. import os
  2. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Simpler.settings')
  3. from django.shortcuts import render_to_response
  4. from django.template import RequestContext
  5. from django.shortcuts import render
  6. from django.http import HttpResponseRedirect, HttpResponse
  7. from models import intern, intern_list, repalum, Engage,\
  8. FbProfile, LearningGraph, Question, skill, sup, track, UserProfile, qobj, search, shortlist1, blacklist1,solr_object
  9. from django.contrib.auth import authenticate, login, logout
  10. from django.contrib.auth.decorators import login_required
  11. from django.contrib.sessions.models import Session
  12. from datetime import datetime
  13. import json
  14. from django.contrib.auth.models import User
  15. import PIL
  16. from PIL import Image
  17. import urllib
  18. from django.views.decorators.csrf import csrf_exempt
  19. from django.core.cache import cache
  20. from django.core.urlresolvers import reverse
  21. import random
  22. import ast
  23. from django.utils.encoding import smart_str, smart_unicode
  24. #from twilio.rest import TwilioRestClient
  25. from Simpler.settings import PROJECT_PATH
  26. from django.views import generic
  27. from pprint import pprint
  28. import re
  29. import requests
  30. import urllib
  31. from scripts import get_all_bins, sample_data
  32. from im import * #email sync - Naukri integration.
  33. from input_to_skills import jd_to_skills
  34. from spa_prediction import predict_prob_movement
  35. from clean import codechef_clean, github_clean, stackoverflow_clean,find_scores_from_li
  36. import jsonpickle
  37. from random import random
  38. from query_to_candidates import uid_to_candidate
  39.  
  40.  
  41. PAGE_ACCESS_TOKEN = 'EAAWWcCykL88BAJkujnjAEGZCGAjEdvFPiKNizR5ZCgJm75ihvYq5MMEGMfRNStZBnJ08tYdIkBFrtWMJ235S2gRfiwZAZBZAQUPNQbSmedTWmgNZCV2wZBmLZBInToGfxyWRC89EKEcFSwZBTq4yxAZCCvjVkmzHwSW2Hvexc1X7u1ciAZDZD'
  42.  
  43. def tour(request):
  44. print vars(request.session)
  45. context = RequestContext(request)
  46. return render_to_response('SimplerApp/index.html', context)
  47.  
  48. def page404(request):
  49. return render(request,'SimplerApp/404.html')
  50.  
  51. def page500(request):
  52. return render(request,'SimplerApp/500.html')
  53.  
  54. def page403(request):
  55. return render(request,'SimplerApp/403.html')
  56.  
  57. def page400(request):
  58. return render(request,'SimplerApp/400.html')
  59.  
  60. def register(request):
  61. context = RequestContext(request)
  62. registered = False
  63.  
  64. if request.method == 'POST':
  65. user_form = UserForm(data=request.POST)
  66. profile_form = UserProfileForm(data=request.POST)
  67.  
  68. if user_form.is_valid() and profile_form.is_valid():
  69. user = user_form.save()
  70.  
  71. user.set_password(user.password)
  72.  
  73. profile = profile_form.save(commit=False)
  74. profile.user = user
  75. try:
  76. if 'picture' in request.FILES:
  77. profile.picture = request.FILES['picture']
  78. profpic = Image.open(profile.picture.url) #Primitive image filter.
  79. profpic = profpic.resize((300,300), PIL.Image.ANTIALIAS)
  80. profpic.save(profile.picture.url)
  81. thumbnail = profpic.resize((32,32), PIL.Image.ANTIALIAS)
  82. thumbnail.save(str(profile.picture.path).replace('profile_images','thumbnails'), 'JPEG')
  83. except:
  84. pass
  85. profile.created = datetime.now()
  86. profile.modified = datetime.now()
  87. name_arr = profile.full_name.split(' ')
  88. count = 0
  89. for n in name_arr: #Looks for first word and filters out '' or ' '
  90. if n != '' and n != ' ':
  91. user.first_name = n
  92. break
  93. name_arr.reverse()
  94. for t in name_arr:
  95. if t != '' and t != ' ':
  96. if t != user.first_name:
  97. user.last_name = t
  98. break
  99. profile.save()
  100. user.save()
  101. Post.objects.get(post='Sutton RL book.').followers.add(user) #The new user gets RL notifications.
  102. registered = True
  103.  
  104. else:
  105. print user_form.errors, profile_form.errors
  106.  
  107. else:
  108. if request.user.is_authenticated():
  109. return HttpResponseRedirect("/find/")
  110. user_form = UserForm()
  111. profile_form = UserProfileForm()
  112.  
  113. return render_to_response(
  114. 'SimplerApp/register.html',
  115. {'user_form': user_form, 'profile_form': profile_form, 'registered': registered},
  116. context)
  117.  
  118. def user_login(request):
  119. context = RequestContext(request)
  120. next=""
  121. if "next" in request.GET:
  122. next=request.GET["next"]
  123. if request.method == 'POST':
  124. if User.objects.filter(username=request.POST['username']).exists():
  125. username = request.POST['username']
  126. else:
  127. username = request.POST['username'].upper()
  128.  
  129. password = request.POST['password']
  130.  
  131. user = authenticate(username=username, password=password)
  132. #if hasattr(user, 'fbprofile'):
  133. # return HttpResponse("Invalid login details.")
  134. if user:
  135. if user.is_active:
  136. login(request, user)
  137. print request.POST
  138. if not next=="":
  139. print "next : ",next
  140. return HttpResponseRedirect(next)
  141. if request.user.username == 'imran':
  142. return HttpResponseRedirect('/searches/')
  143. else:
  144. return HttpResponseRedirect('/searches/')
  145. else:
  146. return HttpResponse("Your Quabl account is disabled.")
  147. else:
  148. print "Invalid login details: {0}, {1}".format(username, password)
  149. return HttpResponse("Invalid Username or Password.")
  150.  
  151. else:
  152. if request.user.is_authenticated():
  153. return HttpResponseRedirect("/searches/")
  154. return render_to_response('SimplerApp/login.html', {"next":urllib.quote_plus(next)}, context)
  155.  
  156. @login_required
  157. def user_logout(request):
  158. logout(request)
  159.  
  160. return HttpResponseRedirect('/')
  161.  
  162. def getUserProfile(request, user_id):
  163. context = RequestContext(request)
  164. request_user_id = request.user.id
  165. request_user = request.user
  166. user_id_int = int(user_id)
  167. if request_user_id == user_id_int:
  168. uprof = UserProfile.objects.get(user=request_user)
  169. req = {'username':uprof.user.username}
  170. if uprof.picture:
  171. req['picurl'] = uprof.picture.url
  172. else:
  173. req['picurl'] = '/quablmedia/profile_images/default.jpeg'
  174. req['fullname'] = request_user.first_name + " " + request_user.last_name
  175. req['shortbio'] = uprof.shortbio
  176. data = json.dumps(req)
  177. else:
  178. required_user = User.objects.get(id=user_id_int)
  179. required_user_profile = UserProfile.objects.get(user=required_user)
  180. req = {'username':required_user.username}
  181. if required_user_profile.picture:
  182. req['picurl'] = required_user_profile.picture.url
  183. else:
  184. req['picurl'] = '/quablmedia/profile_images/default.jpeg'
  185. req['fullname'] = required_user.first_name + " " + required_user.last_name
  186. req['shortbio'] = required_user_profile.shortbio
  187. data = json.dumps(req)
  188. return HttpResponse(data)
  189.  
  190. def getthumburl(request, username):
  191. context = RequestContext(request)
  192. requser = User.objects.get(username=username)
  193. requp = UserProfile.objects.get(user=requser)
  194. if requp.picture:
  195. return HttpResponse((requp.picture.url).replace('profile_images', 'thumbnails'))
  196. else:
  197. return HttpResponse('/quablmedia/thumbnails/default.jpeg')
  198.  
  199. def feedback(request, fdback):
  200. context = RequestContext(request)
  201. fback.objects.create(fback=request.user.username + fdback.replace('xqmx', '?'))
  202. return HttpResponse('success')
  203.  
  204. @login_required
  205. def find(request):
  206. print request.user
  207. if hasattr(request.user, 'graph'):
  208. return HttpResponseRedirect("/testapp/readings/");
  209. context = RequestContext(request)
  210. skills = skill.objects.all()
  211. idict = {}
  212. return render_to_response('SimplerApp/find.html', {'idict':idict, 'skills':skills}, context)
  213.  
  214. def traindata(request):
  215. context = RequestContext(request)
  216. id = request.GET['id']
  217. #ratee = intern.objects.get(id=id)
  218. c = intern_list.objects.get_or_create(recruiter=request.user)[0]
  219. if not c.list:
  220. c.list = id
  221. c.save()
  222. return HttpResponse('New list!')
  223. elif id not in c.list:
  224. c.list = c.list + ', ' + id
  225. c.save()
  226. return HttpResponse('Added!')
  227. elif id in c.list:
  228. return HttpResponse('Already staged!')
  229.  
  230. def repalumnus(request):
  231. context = RequestContext(request)
  232. id = request.GET['id']
  233. reported = intern.objects.get(id=id)
  234. repalum.objects.create(inte=reported, recruiter=request.user)
  235. return HttpResponse('reported')
  236.  
  237. def team(request):
  238. return render_to_response('SimplerApp/team.html')
  239.  
  240. @login_required
  241. def get_iList(request):
  242. try:
  243. c = intern_list.objects.get(recruiter=request.user)
  244. except:
  245. c = intern_list(recruiter=request.user)
  246. c.list = json.dumps([])
  247. c.save()
  248. if type(json.loads(c.list)) is not list:
  249. c.list = json.dumps([])
  250. c.save()
  251. #lis = json.loads(c.list)
  252. #jsonData = json.dumps(lis)
  253. return HttpResponse(c.list)
  254.  
  255. @login_required
  256. def update_iList(request, intern_id):
  257. intern_id = int(intern_id)
  258. if request.GET["type"]: #type is empty if user is not FAT.
  259. ty = request.GET['type']
  260. rec = request.GET['istart']
  261. us = User.objects.get(username=rec)
  262. interns = intern_list.objects.get(recruiter=us)
  263. ilist = interns.list
  264. ilist = json.loads(ilist)
  265. if type(ilist) is int :
  266. ilist = [ilist]
  267. if intern_id in ilist :
  268. ilist.remove(intern_id)
  269. jsonData = json.dumps(ilist)
  270. interns.list = jsonData
  271. interns.save()
  272. data = json.dumps("Removed")
  273. return HttpResponse(data)
  274. else :
  275. ilist.append(intern_id)
  276. jsonData = json.dumps(ilist)
  277. interns.list = jsonData
  278. interns.save()
  279. print interns.list
  280. data = json.dumps("Added")
  281. return HttpResponse(data)
  282.  
  283. @login_required
  284. def pipeline(request):
  285. try:
  286. c = intern_list.objects.get_or_create(recruiter=request.user)[0]
  287. except intern.DoesNotExist:
  288. c = intern_list(recruiter=request.user)
  289. c.list = json.dumps([])
  290. c.save()
  291. return render(request, 'SimplerApp/pipeline.html', {'interns':[]})
  292. interns = json.loads(c.list)
  293. if type(interns) is not list:
  294. c.list = json.dumps([])
  295. c.save()
  296. return render(request, 'SimplerApp/pipeline.html', {'interns':[]})
  297. context_dict = {'interns':[]}
  298. for intern_id in interns:
  299. try:
  300. i = intern.objects.get(id=intern_id)
  301. doc = {'intern_id':intern_id}
  302. li_name = i.li_name.title()
  303. li_url = i.liurl
  304. li_location = i.li_location
  305. li_education = smart_str(ast.literal_eval(i.li_education)[0]['title']).upper()
  306. li_experience = i.li_experience
  307. li_photo = i.li_photourl
  308. ilst = i.ilist
  309. if i.li_skills:
  310. skills = ast.literal_eval(i.li_skills)
  311. for i in range(len(skills)):
  312. skills[i] = smart_str(skills[i])
  313. for skill in skills:
  314. if ',' in skill:
  315. skills.remove(skill)
  316. li_skills = skills
  317. else: li_skills = []
  318. doc['li_url'] = li_url
  319. doc['li_name'] = li_name
  320. doc['li_skills'] = li_skills
  321. doc['li_location'] = li_location
  322. doc['li_education'] = li_education
  323. doc['ilist'] = ilst
  324. doc['ex'] = li_experience
  325. doc['photo'] = li_photo
  326. context_dict['interns'].append(doc)
  327. except:
  328. continue
  329. return render(request, 'SimplerApp/pipeline.html', context_dict)
  330.  
  331. def mainURL(request):
  332. url = 'http://fastnext.co/engage/'
  333. try: url += request.user.company + '/'
  334. except AttributeError: url += request.user.username + '/'
  335. return HttpResponse(url)
  336.  
  337. def copyurl(request, intern_id):
  338. try:
  339. c = Engage.objects.get(recruiter = request.user, _intern = intern.objects.get(id=intern_id))
  340. return HttpResponse("success")
  341. except Engage.DoesNotExist:
  342. c = Engage(recruiter = request.user, _intern = intern.objects.get(id=intern_id))
  343. c.url = "http://fastnext.co/engage/"
  344. try: c.url += c.recruiter.company + '/'
  345. except AttributeError: c.url += c.recruiter.username + '/'
  346. c.url += c._intern.li_name.lower().replace(' ', '-') + '/'
  347. c.save()
  348. return HttpResponse("success")
  349.  
  350. def fblogin(request, **kwargs):
  351. user = request.user
  352. if user.is_authenticated and hasattr(user, 'fbprofile'):
  353. fb = user.fbprofile
  354. res = LearningGraph.objects.get_or_create(_intern=fb._intern)[0]
  355. if res.bpat: bpat_result = json.loads(res.bpat)
  356. else: bpat_result = {}
  357. if len(bpat_result) == 20:
  358. return HttpResponseRedirect("/student/profile/")
  359. cont = True if len(bpat_result) else False
  360. response = render(request, 'SimplerApp/fblogin.html', {'fbprofile':fb, 'continue': cont})
  361. response.set_cookie('sid', request.COOKIES['sessionid'])
  362. return response
  363. else:
  364. try:
  365. c = Engage.objects.get(url='http://fastnext.co' + request.path)
  366. request.session['intern'] = c._intern.id
  367. return render(request, 'SimplerApp/fblogin.html', {'intern':c._intern})
  368. except Engage.DoesNotExist:
  369. return render(request,'SimplerApp/404.html')
  370.  
  371. def bpat(request):
  372. if not hasattr(request.user, 'fbprofile'):
  373. return render(request,'SimplerApp/404.html')
  374. _intern = intern.objects.get(fburl = request.user.fbprofile.fburl)
  375. res = LearningGraph.objects.get_or_create(_intern=_intern)[0]
  376. if request.method == 'POST':
  377. select = request.POST['select']
  378. bpat_result = {} if not res.bpat else json.loads(res.bpat)
  379. bpat_result[str(request.session['question_id'])] = select
  380. res.bpat = json.dumps(bpat_result)
  381. res.recent = None
  382. res.save()
  383. bpat_result = {} if not res.bpat else json.loads(res.bpat)
  384. if len(bpat_result) == 20:
  385. return HttpResponseRedirect("/student/profile/")
  386. context_dict = {}
  387. if res.recent:
  388. res.bpat = json.dumps(bpat_result)
  389. recent = json.loads(res.recent)
  390. question = Question.objects.get(id=recent[0])
  391. recent_time = datetime.strptime(str(recent[1]), '%Y-%m-%dT%H:%M:%S.%f')
  392. curr_time = datetime.now()
  393. diff_time = curr_time - recent_time
  394. if diff_time.total_seconds() < question.timelimit:
  395. res.save()
  396. context_dict['timelimit'] = int(question.timelimit - diff_time.total_seconds())
  397. else:
  398. bpat_result[str(recent[0])] = 'timeout'
  399. res.bpat = json.dumps(bpat_result)
  400. if len(bpat_result) == 20:
  401. res.recent = None
  402. res.save()
  403. return HttpResponseRedirect("/student/profile/")
  404. while True:
  405. rand_index = random.randint(0, Question.objects.count()-1)
  406. question = Question.objects.all()[rand_index]
  407. if str(question.id) not in bpat_result: break
  408. res.recent = json.dumps([question.id, datetime.now().isoformat()])
  409. res.save()
  410. context_dict['timelimit'] = question.timelimit
  411. else:
  412. while True:
  413. rand_index = random.randint(0, Question.objects.count()-1)
  414. question = Question.objects.all()[rand_index]
  415. if str(question.id) not in bpat_result: break
  416. res.recent = json.dumps([question.id, datetime.now().isoformat()])
  417. res.save()
  418. context_dict['timelimit'] = question.timelimit
  419. request.session['question_id'] = question.id
  420. context_dict['id'] = len(bpat_result)+1
  421. context_dict['question'] = question.question
  422. if question.lang != 'NA':
  423. context_dict['language'] = question.lang
  424. else: context_dict['language'] = None
  425. if question.code:
  426. context_dict['code'] = json.loads(question.code)
  427. else: context_dict['code'] = None
  428. context_dict['options'] = json.loads(question.options)
  429. return render(request, 'SimplerApp/test.html', context_dict)
  430.  
  431. def social_redirect(request):
  432. context = RequestContext(request)
  433. #request.session['intern'] = c._intern.id
  434. #url = Engage.objects.get(_intern=request.user.fbprofile._intern).url[18:]
  435. #return HttpResponseRedirect(url)
  436. return render_to_response('SimplerApp/form.html', context)
  437.  
  438.  
  439. @login_required
  440. def student_profile(request):
  441. user = request.user
  442. fb = user.fbprofile
  443. _intern = fb._intern
  444. ed = ast.literal_eval(_intern.li_education)[0]
  445. edu = {'course':ed['course'].replace('\u2019', "'").replace('\u2018', "'"), 'title':ed['title']}
  446. return render(request, 'SimplerApp/student_profile.html', {'fb':fb, 'intern':_intern, 'edu':edu })
  447.  
  448. @login_required
  449. def generate_otp(request):
  450. user = request.user
  451. if hasattr(user, 'fbprofile'):
  452. password = User.objects.make_random_password()
  453. user.set_password(password)
  454. user.save()
  455. return HttpResponse(password)
  456. else: return Httpresponse("You are not allowed for this.")
  457.  
  458. def check_auth(request):
  459. if request.user.is_authenticated():
  460. if hasattr(request.user, 'fbprofile'):
  461. return HttpResponse("logged in")
  462. return HttpResponse("not logged in")
  463.  
  464. @csrf_exempt
  465. def ext_auth(request):
  466. if request.method != 'POST':
  467. return render(request,'SimplerApp/403.html')
  468. if User.objects.filter(username=request.POST['username']).exists():
  469. username = request.POST['username']
  470. else: username = request.POST['username'].upper()
  471. password = request.POST['password']
  472. user = authenticate(username=username, password=password)
  473. print user
  474. if not hasattr(user, 'fbprofile'):
  475. return HttpResponse("invalid login details")
  476. if user:
  477. user.set_unusable_password()
  478. login(request, user)
  479. return HttpResponse("logged in")
  480. else:
  481. return HttpResponse("invalid login details")
  482.  
  483. def graph1(request, username):
  484. context = RequestContext(request)
  485. inter = User.objects.get(username=username)
  486. lg = LearningGraph.objects.get(_intern=inter)
  487. vl = ast.literal_eval(lg.visited_links)
  488. context_dict = {'vl':vl}
  489. return render_to_response('SimplerApp/graph1.html', context_dict, context)
  490.  
  491. def graph_text(request):
  492. if not request.user.is_authenticated():
  493. return HttpResponse("not logged in")
  494. if not hasattr(request.user, 'fbprofile'):
  495. return HttpResponse("operation not permitted")
  496. urlvar = request.GET['url']
  497. # datet = request.GET['datetime']
  498. # vll = lg.visitedlinklog
  499. # vll = ast.literal_eval(vll)
  500. # if urlvar in vll:
  501. # vll.append(datet)
  502. # vll = str(vll)
  503. # else:
  504. # lg = LearningGraph.objects.get_or_create(_intern=inter)[0]
  505. # vll.append(datetime)
  506. # vll = str(vll)
  507. lg = LearningGraph.objects.get_or_create(_intern=request.user.fbprofile._intern)[0]
  508. curr_url_arr_str = lg.visited_links
  509. curr_url_arr = ast.literal_eval(curr_url_arr_str)
  510. if urlvar not in curr_url_arr:
  511. curr_url_arr.append(urlvar)
  512. curr_url_arr_str = str(curr_url_arr)
  513. lg.visited_links = curr_url_arr_str
  514. lg.save()
  515. return HttpResponse(urlvar)
  516.  
  517. def graph_text_vll(request):
  518. if not request.user.is_authenticated():
  519. return HttpResponse("not logged in")
  520. if not hasattr(request.user, 'fbprofile'):
  521. return HttpResponse("operation not permitted.")
  522. context = RequestContext(request)
  523. urlvar = request.GET['url']
  524. datet = request.GET['datetime']
  525. pixel = request.GET['px']
  526. inter = request.user.fbprofile._intern
  527. lg = LearningGraph.objects.get_or_create(_intern=inter)[0]
  528. vll = lg.visitedlinklog
  529. vll = ast.literal_eval(vll)
  530. vl = lg.visited_links
  531. vl = ast.literal_eval(vl)
  532. if urlvar in vl:
  533. if urlvar in vll:
  534. vll[urlvar] = vll[urlvar] + ' : ' + datet + ',' + pixel + '\n'
  535. vll = str(vll)
  536. else:
  537. vll[urlvar] = datet + ',' + pixel + '\n'
  538. vll = str(vll)
  539. lg.visitedlinklog = vll
  540. lg.save()
  541. return HttpResponse(vll)
  542.  
  543. @login_required
  544. def discover(request):
  545. context = RequestContext(request)
  546. upd = {}
  547. for u in User.objects.all():
  548. try:
  549. upd[u.username] = UserProfile.objects.get(user=u)
  550. except:
  551. continue
  552. idict = {"skills":skill.objects.all(), "users":User.objects.all()}
  553. return render_to_response('SimplerApp/discover.html', {'idict':idict, 'upd':upd}, context)
  554.  
  555. @login_required
  556. def botui(request):
  557. context = RequestContext(request)
  558. #userp = UserProfile.objects.get(user=request.user)
  559. #companyd = userp.company
  560. return render_to_response('SimplerApp/botui.html', context)
  561.  
  562. def startup(request, startupname):
  563. context = RequestContext(request)
  564. startupmod = sup.objects.get(name=startupname)
  565. sdict = {"name":startupname, "website":startupmod.site, "description":startupmod.desc}
  566. return render_to_response('SimplerApp/startup.html', {'sdict':sdict}, context)
  567.  
  568. def signup(request):
  569. context = RequestContext(request)
  570. return render_to_response('SimplerApp/form.html', context)
  571.  
  572. def fbanon(request):
  573. context = RequestContext(request)
  574. return render_to_response('SimplerApp/fbanon.html', context)
  575.  
  576. def send(request):
  577. context = RequestContext(request)
  578. bi = request.GET.get('bin')
  579. url = request.GET.get('url')
  580. itid = request.session['itid']
  581. ite = intern.objects.get(id=int(itid))
  582. if bi == 'mobile':
  583. ite.mobile = url
  584. if bi == 'email':
  585. ite.email = url
  586. if bi == 'github':
  587. ite.github_url = url
  588. if bi == 'googgleplus':
  589. ite.googgleplus_url = url
  590. if bi == 'stackoverflow':
  591. ite.stackoverflow_url = url
  592. if bi == 'quora':
  593. ite.quoraurl = url
  594. if bi == 'twitter':
  595. ite.twitterurl = url
  596. if bi == 'linkedin':
  597. ite.liurl = url
  598. if bi == 'hackerearth':
  599. ite.hackerearth_url = url
  600. if bi == 'hackerrank':
  601. ite.hackerrank_url = url
  602. if bi == 'kaggle':
  603. ite.kaggle_url = url
  604. if bi == 'dribbble':
  605. ite.dribbble_url = url
  606. if bi == 'behance':
  607. ite.behance_url = url
  608. ite.save()
  609. signdict = {"bin":bin, "url":url}
  610. return HttpResponse(itid)
  611.  
  612. # @csrf_exempt
  613. # def otp(request):
  614. # twiml = '<Response><Message>Hello from FastneXt!</Message></Response>'
  615. # return HttpResponse(twiml, content_type='text/xml')
  616.  
  617. def _get_pin(length=5):
  618. """ Return a numeric PIN with length digits """
  619. return random.sample(range(10**(length-1), 10**length), 1)[0]
  620.  
  621.  
  622. def _verify_pin(mobile_number, pin):
  623. """ Verify a PIN is correct """
  624. return pin == request.session['mobile_number']
  625.  
  626.  
  627. def ajax_send_pin(request):
  628. """ Sends SMS PIN to the specified number """
  629. mobile_number = request.GET.get('mob')
  630. if not mobile_number:
  631. return HttpResponse("No mobile number")
  632.  
  633. pin = _get_pin()
  634. # store the PIN in the cache for later verification.
  635. fb = FbProfile.objects.get(user=request.user)
  636. it = intern.objects.get(fburl=fb.fburl)
  637. it.mobile = str(pin) + "<xrx>" + str(mobile_number) # valid for 24 hrs
  638. it.save()
  639. TWILIO_ACCOUNT_SID = 'AC036874e63066f519b5afa24192d765ed'
  640. TWILIO_AUTH_TOKEN = 'ff4dbfb9624d79c4ad994e22244bf1bd'
  641. TWILIO_FROM_NUMBER = '(916)459-4728'
  642. client = TwilioRestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
  643. message = client.messages.create(
  644. body="Thanks for signing up for Fastnext! Your OTP is %s." % pin,
  645. to=mobile_number,
  646. from_=TWILIO_FROM_NUMBER,
  647. )
  648. return HttpResponse("Message %s sent" % message.sid)
  649.  
  650. def acquire(request):
  651. context = RequestContext(request)
  652. t = track.objects.all()
  653. up = UserProfile.objects.get(user=request.user)
  654. context_dict = {'interns':[], 'company':up.company}
  655. for j in t:
  656. intern_id = j.stu.id
  657. i = intern.objects.get(id=intern_id)
  658. doc = {'intern_id':intern_id}
  659. li_name = i.li_name.title()
  660. li_url = i.liurl
  661. li_location = i.li_location
  662. li_education = smart_str(ast.literal_eval(i.li_education)[0]['title']).upper()
  663. li_experience = i.li_experience
  664. li_photo = i.li_photourl
  665. ilst = i.ilist
  666. if i.li_skills:
  667. skills = ast.literal_eval(i.li_skills)
  668. for i in range(len(skills)):
  669. skills[i] = smart_str(skills[i])
  670. for skill in skills:
  671. if ',' in skill:
  672. skills.remove(skill)
  673. li_skills = skills
  674. else: li_skills = []
  675. doc['li_url'] = li_url
  676. doc['li_name'] = li_name
  677. doc['li_skills'] = li_skills
  678. doc['li_location'] = li_location
  679. doc['li_education'] = li_education
  680. doc['ilist'] = ilst
  681. doc['ex'] = li_experience
  682. doc['photo'] = li_photo
  683. up = UserProfile.objects.get(user=j.cont_startup)
  684. status_arr = []
  685. for p in j.status.split('<xrx>'):
  686. status_arr.append(p.split('<xtx>'))
  687. doc['status'] = status_arr
  688. doc['cstart'] = up.company
  689. context_dict['interns'].append(doc)
  690. return render_to_response('SimplerApp/acquire.html', context_dict, context)
  691.  
  692. def acq_ajax(request):
  693. context = RequestContext(request)
  694. intid = request.GET['inte']
  695. inte = intern.objects.get(id=int(intid))
  696. datet = request.GET['datetime']
  697. dd = datet.split('/')[0]
  698. mm = datet.split('/')[1]
  699. yy = datet.split('/')[2].split(' ')[0]
  700. tt = datet.split(' @ ')[1]
  701. datet = yy + "-" + mm + "-" + dd + ' @ ' + tt
  702. status = str(datet) + '<xtx>' + "Request made."
  703. t = track.objects.get_or_create(stu=inte, status=status, cont_startup=request.user)
  704. return HttpResponse("Added!")
  705.  
  706. def status(request):
  707. context = RequestContext(request)
  708. intid = request.GET['inte']
  709. inte = intern.objects.get(id=int(intid))
  710. datet = request.GET['datetime']
  711. dd = datet.split('/')[0]
  712. mm = datet.split('/')[1]
  713. yy = datet.split('/')[2].split(' ')[0]
  714. tt = datet.split(' @ ')[1]
  715. datet = yy + "-" + mm + "-" + dd + ' @ ' + tt
  716. content = request.GET['cont']
  717. t = track.objects.filter(stu=inte)
  718. for x in t:
  719. x.status = x.status + "<xrx>" + datet + "<xtx>" + content
  720. x.save()
  721. return HttpResponse(datet)
  722.  
  723. def verpin(request):
  724. context = RequestContext(request)
  725. fb = FbProfile.objects.get(user=request.user)
  726. it = intern.objects.get(fburl=fb.fburl)
  727. savedpin = it.mobile.split("<xrx>")[0]
  728. savedmob = it.mobile.split("<xrx>")[1]
  729. pin = request.GET.get('pin')
  730. mob = request.GET.get('mob')
  731. if savedpin == pin and savedmob == mob:
  732. it.mobile = mob
  733. it.save()
  734. return HttpResponse('Success')
  735. else:
  736. return HttpResponse('Failure')
  737.  
  738. # def queue(request):
  739. # context = RequestContext(request)
  740. # qarr = request.GET.get('qarr')
  741. # for q in qarr.split('<xrx>'):
  742. # qobj.objects.get_or_create(query_term=q)
  743. # return HttpResponse(qarr)
  744.  
  745. databins = ['linkedin', 'stackoverflow', 'hackerrank', 'hackerearth', 'quora', 'twitter', 'kareeredge', '.ac.in', 'flickr', 'about.me', '.edu', 'researchgate', 'plus.google', 'instagram', 'github', 'coderwall', 'bitbucket', 'livecoding', 'reddit', 'scribd', 'youth4work', 'scholar.google', 'kaggle', 'blogspot', 'wordpress', 'angel.co', "rocketreach", "codechef", "spoj", "analyticsvidhya", 'mathworks', "datasciencecentral", "techgig", "freelancer", "nic.in", "slideshare", "blogger", "corporatedir", "springer"]
  746.  
  747. def rtaui(request):
  748. context = RequestContext(request)
  749. qs = qobj.objects.all()
  750. context_dict = []
  751. for q in qs:
  752. try:
  753. qarr = ast.literal_eval(q.query_term)
  754. g = q.query_term.split('linkedin.com')[1].split("'")[0].split(' - ')[0]
  755. username = g.split('/')[-1]
  756. if len(username) <= 3:
  757. username = g.split('/')[-2]
  758. qarr['username'] = username
  759. qarr['id'] = str(q.id)
  760. if 'uncrawl' in qarr:
  761. uncarr = []
  762. for t in ast.literal_eval(qarr['uncrawl']):
  763. linkurl = t.split('\n')[1]
  764. for i in databins:
  765. if i in linkurl:
  766. uncarr.append([i,linkurl])
  767. qarr['uncarr'] = uncarr
  768. context_dict.append(qarr)
  769. except:
  770. continue
  771. context_dict.reverse()
  772.  
  773. return render_to_response('SimplerApp/rtaui.html', {'qs':context_dict}, context)
  774.  
  775. def viz(request, loadfile): #View loads loadfile.csv from root and render interns.
  776. context_dict = {'interns':[]}
  777. loadf = open(os.path.join(PROJECT_PATH, loadfile + '.csv'), 'r')
  778. txt = loadf.read()
  779. txtarr= txt.split('\n')
  780. deduparr = [] #Removing duplicates.
  781. for line in txtarr[1:200]:
  782. try:
  783. intern_id = int(line.strip())
  784. if intern_id not in deduparr:
  785. deduparr.append(intern_id)
  786. i = intern.objects.get(id=intern_id)
  787. doc = {'intern_id':intern_id}
  788. li_name = i.li_name.title()
  789. li_url = i.liurl
  790. li_location = i.li_location
  791. li_education = smart_str(ast.literal_eval(i.li_education)[0]['title']).upper()
  792. li_experience = i.li_experience
  793. li_photo = i.li_photourl
  794. ilst = i.ilist
  795. if i.li_skills:
  796. skills = ast.literal_eval(i.li_skills)
  797. for i in range(len(skills)):
  798. skills[i] = smart_str(skills[i])
  799. for skill in skills:
  800. if ',' in skill:
  801. skills.remove(skill)
  802. li_skills = skills
  803. else: li_skills = []
  804. doc['li_url'] = li_url
  805. doc['li_name'] = li_name
  806. doc['li_skills'] = li_skills
  807. doc['li_location'] = li_location
  808. doc['li_education'] = li_education
  809. doc['ilist'] = ilst
  810. doc['ex'] = li_experience
  811. doc['photo'] = li_photo
  812. context_dict['interns'].append(doc)
  813. except:
  814. continue
  815. return render(request, 'SimplerApp/viz.html', context_dict)
  816.  
  817. skills = [ 'javascript', 'python', 'java', 'django' ]
  818.  
  819. def process_query(fbid, recevied_message):
  820. # Remove all punctuations, lower case the text and split it based on space
  821. user_details_url = "https://graph.facebook.com/v2.6/%s"%fbid
  822. user_details_params = {'fields':'first_name,last_name,profile_pic', 'access_token':PAGE_ACCESS_TOKEN}
  823. user_details = requests.get(user_details_url, user_details_params).json()
  824. post_message_url = 'https://graph.facebook.com/v2.6/me/messages?access_token=%s'%PAGE_ACCESS_TOKEN
  825.  
  826. tokens = re.sub(r"[^a-zA-Z0-9\s]",' ',recevied_message).lower().split()
  827. searchterm = ''
  828. for token in tokens:
  829. if 'get' in token:
  830. post_message_url = 'https://graph.facebook.com/v2.6/me/messages?access_token=%s'%PAGE_ACCESS_TOKEN
  831.  
  832. waitjson = json.dumps({"recipient":{"id":fbid}, "message":{"text":"Imran will be calling you shortly. Thanks!"}})
  833. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=waitjson)
  834. elif token in skills:
  835. searchterm = token
  836. # solr_url = 'http://52.43.239.161:8983/solr/fastnext/select?wt=json&q=' + token + '&start=0&rows=6'
  837. # t = json.loads(requests.get(solr_url).content)
  838. # for d in t['response']['docs']:
  839. # continternid = int(d['django_id'])
  840. # #contintern = intern.objects.get(id=continternid)
  841. for l in [32319, 31669, 31273, 29563, 39239]: #static dataset for test. Also, 31273, 29563, 39239.
  842. continternid = l
  843. contintern = intern.objects.get(id=continternid)
  844. ciname = contintern.li_name.title().strip()
  845. cedu = ast.literal_eval(contintern.li_education)[0]['title'].upper().strip()
  846. payjson = {"contid":str(continternid), "searchterm":searchterm}
  847. messagejson = json.dumps({
  848. "recipient":{
  849. "id":fbid
  850. },
  851. "message":{
  852. "attachment":{
  853. "type":"template",
  854. "payload":{
  855. "template_type":"generic",
  856. "elements":[
  857. {
  858. "title":ciname,
  859. "subtitle": cedu,
  860. "buttons":[
  861. {
  862. "type":"postback",
  863. "title":"Advice, please.",
  864. "payload":str(payjson)
  865. }
  866. ]
  867. }
  868. ]
  869. }
  870. }
  871. }
  872. })
  873.  
  874. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=messagejson)
  875. pprint(status.json())
  876. #reply_text = reply_text + contintern.li_name + ' \n'
  877. break
  878. #if not searchterm:
  879. # failjson = json.dumps({"recipient":{"id":fbid}, "message":{"text":'Sorry, do not know enough.'}}) #Standard send a message to user.
  880. # status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=failjson)
  881.  
  882.  
  883. #reply_text = 'Hey '+ user_details['first_name'] +', here are 6 people who seem like a match and would be willing to move: \n' + reply_text
  884.  
  885. #response_msg = json.dumps({"recipient":{"id":fbid}, "message":{"text":reply_text}})
  886. #status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=response_msg)
  887.  
  888.  
  889. @csrf_exempt
  890. def bot(request):
  891. print request.method
  892. if request.method == 'GET':
  893. if request.GET.get('hub.verify_token') == '8984338985':
  894. return HttpResponse(request.GET.get('hub.challenge'))
  895. else:
  896. return HttpResponse('Error, invalid token')
  897.  
  898. if request.method == 'POST':
  899. try:
  900. incoming_message = json.loads(request.body.decode('utf-8'))
  901. print incoming_message
  902. # Facebook recommends going through every entry since they might send
  903. # multiple messages in a single call during high load
  904. for entry in incoming_message['entry']:
  905. for message in entry['messaging']:
  906. # Check to make sure the received call is a message call
  907. # This might be delivery, optin, postback for other events
  908. if 'message' in message:
  909. # Print the message to the terminal
  910. pprint(message)
  911. fbid = message['sender']['id']
  912. post_message_url = 'https://graph.facebook.com/v2.6/me/messages?access_token=%s'%PAGE_ACCESS_TOKEN
  913. response_msg = json.dumps({"recipient":{"id":fbid}, "sender_action":"typing_on"})
  914. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=response_msg)
  915. process_query(fbid, message['message']['text'])
  916. if 'postback' in message:
  917. fbid = message['sender']['id']
  918. post_message_url = 'https://graph.facebook.com/v2.6/me/messages?access_token=%s'%PAGE_ACCESS_TOKEN
  919.  
  920. waitjson = json.dumps({"recipient":{"id":fbid}, "message":{"text":"Let me crunch some numbers for ya! Wait a sec."}})
  921. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=waitjson)
  922.  
  923. response_msg = json.dumps({"recipient":{"id":fbid}, "sender_action":"typing_on"}) #Send typing indicator.
  924. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=response_msg)
  925.  
  926. intid = int(ast.literal_eval(message['postback']['payload'])['contid'])
  927. cand = intern.objects.get(id=intid)
  928. ghurl = ast.literal_eval(cand.ilist)['github'][0]
  929. hrurl = ast.literal_eval(cand.ilist)['hackerrank'][0]
  930. sourl = ast.literal_eval(cand.ilist)['stackoverflow'][0]
  931. spojurl = ast.literal_eval(cand.ilist)['spoj'][0]
  932. chefurl = ast.literal_eval(cand.ilist)['codechef'][0]
  933.  
  934. url_arr = ghurl + '<xurlx>' + hrurl + '<xurlx>' + sourl + '<xurlx>' + spojurl + '<xurlx>' + chefurl
  935.  
  936. sterm = ast.literal_eval(message['postback']['payload'])['searchterm']
  937.  
  938. params = {'url_arr':url_arr, 'searchterm':sterm, 'intid':intid}
  939.  
  940. qurl = 'http://localhost:8000/rank?%s' % (urllib.urlencode(params))
  941. scores = str(requests.get(qurl).content)
  942. print scores
  943. rettext = "I've sifted through more than 162,212 public profiles over the last week, here's what I think: \n\n"
  944. subscore = scores.split(' ')[0]
  945. rettext = rettext + 'Know-how in ' + sterm.title() + ':'+ subscore +'\n'
  946. aptscore = scores.split(' ')[1]
  947. rettext = rettext + 'Aptitude: '+ str(random.randrange(50, 100)) +'\n' #aptscore +'\n'
  948. kloutscore = scores.split(' ')[2]
  949. rettext = rettext + 'Klout: '+ kloutscore +'\n\nWhat do you think?'
  950. retjson = json.dumps({"recipient":{"id":fbid}, "message":{"text":rettext}})
  951. status = requests.post(post_message_url, headers={"Content-Type": "application/json"},data=retjson)
  952. return HttpResponse()
  953. except Exception,e:
  954. print str(e)
  955. return HttpResponse()
  956.  
  957. def searches(request):
  958. context = RequestContext(request)
  959. context_dict = {}
  960. context_dict['searches'] = []
  961. searches = search.objects.all().filter(recruiter=request.user)
  962. if len(searches) > 0:
  963. searches = searches.order_by('-id')
  964. context_dict['exists'] = 'Yes'
  965. for s in searches:
  966. context_dict['searches'].append(s)
  967. else:
  968. context_dict['exists'] = 'No'
  969. return render_to_response('SimplerApp/searches.html', context_dict, context)
  970.  
  971. def queue(request):
  972. context = RequestContext(request)
  973. jobid = request.GET.get('jobid')
  974. cdetails = request.GET.get('cdetails')
  975. query = request.GET.get('query')
  976. exp = request.GET.get('exp')
  977. nct = request.GET.get('nct')
  978. finalobj = search.objects.get_or_create(recruiter=request.user, info=jobid, nct = nct, jsonobj=query+'<xdelx>'+cdetails+'<xdelx>'+exp)[0]
  979. return HttpResponse(str(finalobj.id))
  980.  
  981. def viewres(request, searchid):
  982. context = RequestContext(request)
  983. s = search.objects.get(id=int(searchid))
  984. sl = shortlist1.objects.get_or_create(cs=s)[0]
  985. bl = blacklist1.objects.get_or_create(cs=s)[0]
  986. sl_urls = sl.cand_list
  987. bl_urls = bl.cand_list
  988. js = s.jsonobj.split('<xdelx>')
  989.  
  990. context_dict = {'blacklist': bl_urls, 'cand_list': sl_urls, 'searchid':searchid, 'jobid':s.info, 'query':js[0], 'cdetails':js[1]}
  991. return render_to_response('SimplerApp/viewres.html', context_dict,context)
  992.  
  993. def shortlist_view(request, searchid):
  994. context = RequestContext(request)
  995. s = search.objects.get(id=int(searchid))
  996. bl = blacklist1.objects.get_or_create(cs=s)[0]
  997. js = s.jsonobj.split('<xdelx>')
  998. context_dict = { 'searchid':searchid, 'jobid':s.info, 'query':js[0], 'cdetails':js[1]}
  999. return render_to_response('SimplerApp/shortlist.html', context_dict,context)
  1000.  
  1001. def shortlist(request):
  1002. context = RequestContext(request)
  1003. url = request.GET.get('url')
  1004. w = request.GET.get('whole')
  1005. #print w
  1006. sid = int(request.GET.get('sid'))
  1007. s = search.objects.get(id=sid)
  1008. sl = shortlist1.objects.get_or_create(cs=s)[0]
  1009. sl1 = shortlist1.objects.get_or_create(cs=s)[1]
  1010. uarr = ast.literal_eval(sl.cand_list)
  1011. uarr.append(url)
  1012. warr = ast.literal_eval(sl.whole_list)
  1013. #print 'WARRRRRR'
  1014. #print warr
  1015. wnew = ast.literal_eval(ast.literal_eval(w))
  1016. wnew['status'] = 'interesting'
  1017. warr.append(wnew)
  1018. sl.cand_list = str(uarr)
  1019. sl.whole_list = str(warr)
  1020. sl.save()
  1021. return HttpResponse(sl1)
  1022.  
  1023. def get_shortlist(request):
  1024. sid = request.GET.get('sid')
  1025. s = search.objects.get(id=int(sid))
  1026. sl = shortlist1.objects.get_or_create(cs=s)[0]
  1027. arr = ast.literal_eval(sl.whole_list)
  1028. arr = arr[::-1]
  1029. sl_urls = json.dumps(arr)
  1030. return HttpResponse(sl_urls, content_type="application/json")
  1031.  
  1032. def blacklist(request):
  1033. context = RequestContext(request)
  1034. url = request.GET.get('url')
  1035. w = request.GET.get('whole')
  1036. sid = int(request.GET.get('sid'))
  1037. s = search.objects.get(id=sid)
  1038. sl = blacklist1.objects.get_or_create(cs=s)[0]
  1039. sl1 = shortlist1.objects.get_or_create(cs=s)[1]
  1040. uarr = ast.literal_eval(sl.cand_list)
  1041. uarr.append(url)
  1042. warr = ast.literal_eval(sl.whole_list)
  1043. warr.append(w)
  1044. sl.cand_list = str(uarr)
  1045. sl.whole_list = str(warr)
  1046. sl.save()
  1047. return HttpResponse(sl1)
  1048.  
  1049. def changestatus(request):
  1050. liurl = request.GET.get('url')
  1051. sid = request.GET.get('sid')
  1052. stat = request.GET.get('stat')
  1053. sid = int(sid)
  1054. s = search.objects.get(id=int(sid))
  1055. sl = shortlist1.objects.get_or_create(cs=s)[0]
  1056. arr = ast.literal_eval(sl.whole_list)
  1057. conc = []
  1058. for a in arr:
  1059. if a['url'] == liurl:
  1060. conc = a
  1061. a['status'] = stat
  1062. sl.whole_list = arr
  1063. sl.save()
  1064. return HttpResponse(str(conc))
  1065.  
  1066. def equi(request):
  1067. a = ast.literal_eval(request.GET.get('data')) #Array of dictionaries.
  1068. #a = sample_data('python IIT', 500)[:20]
  1069. url_list = []
  1070. #testing
  1071. #a[0]['full_name'] = 'Akhyansh Mohapatra'
  1072. #a[1]['full_name'] = 'Mridul Mohan'
  1073. for i in a:
  1074. i = ast.literal_eval(i)
  1075. url_list.append(get_all_bins(i))
  1076.  
  1077.  
  1078. # for y in url_list:
  1079. # while not y.ready():
  1080. # time.sleep(1)
  1081. #
  1082. # u_list = []
  1083. # for y in url_list:
  1084. # u_list.append(y.get())
  1085.  
  1086. #print str(u_list)
  1087. return HttpResponse(str(url_list))
  1088.  
  1089. def databinajax(request):
  1090. liurl = request.GET.get('url')
  1091. sid = request.GET.get('sid')
  1092. ilist = request.GET.get('ilist')
  1093. sid = int(sid)
  1094. s = search.objects.get(id=int(sid))
  1095. sl = shortlist1.objects.get_or_create(cs=s)[0]
  1096. arr = ast.literal_eval(sl.whole_list)
  1097. conc = []
  1098. for a in arr:
  1099. if a['url'] == liurl:
  1100. conc = a
  1101. a['ilist'] = ilist
  1102. sl.whole_list = arr
  1103. sl.save()
  1104. return HttpResponse(str(conc))
  1105.  
  1106. def cachestatus(request):
  1107. sid = request.GET.get('sid')
  1108. typ = request.GET.get('type')
  1109. if typ=="first":
  1110. s = search.objects.get(id=int(sid))
  1111. cache = s.cache
  1112. return HttpResponse(json.dumps(cache))
  1113. elif typ=="second":
  1114. requrl = request.GET.get('url')
  1115. data = requests.get(requrl)
  1116. data = data.text
  1117. s = search.objects.get(id=int(sid))
  1118. s.cache = str(data)
  1119. print 'Caching...'
  1120. print data
  1121. s.save()
  1122. return HttpResponse('done')
  1123.  
  1124. def getnaukri(request):
  1125. sid = request.GET.get('sid')
  1126. finalresult = requests.get('http://104.154.240.12/donaukri/', params={'sid':sid})
  1127. finalresult = finalresult.text
  1128. sid = int(sid)
  1129. s = search.objects.get(id=sid)
  1130. s.cache = finalresult
  1131. s.save()
  1132. return HttpResponse(finalresult)
  1133.  
  1134. def getcache(request):
  1135. sid = request.GET.get('sid')
  1136. sid = int(sid)
  1137. s = search.objects.get(id=sid)
  1138. cache = s.cache
  1139. return HttpResponse(cache)
  1140.  
  1141. def getjd(request):
  1142. sid = request.GET.get('sid')
  1143. sid = int(sid)
  1144. s = search.objects.get(id=sid)
  1145. jd = s.jsonobj.split('<xdelx>')[1]
  1146. return HttpResponse(jd)
  1147.  
  1148. def jd_to_skills_arr(request):
  1149. jd = request.GET.get('jd')
  1150. skills = jd_to_skills(jd)
  1151. return HttpResponse(str(skills))
  1152.  
  1153. def spa_predict(request):
  1154. t = request.GET.get('cand_json_string')
  1155. s = request.GET.get('new_job_loc')
  1156. r = request.GET.get('new_company_name')
  1157. y = predict_prob_movement(t, s, r, 'Baxter')
  1158. return HttpResponse(str(y))
  1159.  
  1160. @login_required
  1161. def profile(request, uniqueid):
  1162.  
  1163. #a = sample_data(id, 100)[int(random()*100)]
  1164. try:
  1165. a = solr_object.objects.get(unique_id=uniqueid)
  1166. data = ast.literal_eval(a.data)
  1167. except Exception as e:
  1168. print(str(e))
  1169. data = uid_to_candidate(uniqueid)
  1170.  
  1171. #urls = get_all_bins(a)
  1172. #eq_score = find_scores(urls)
  1173. try:
  1174. t = data['scores']
  1175. except:
  1176. eq_score = find_scores_from_li(data)
  1177.  
  1178. if eq_score[0] != 0.0:
  1179. apt = eq_score[0]
  1180. else:
  1181. apt = int(random()*60)
  1182.  
  1183. if eq_score[1] != 0.0:
  1184. klout = eq_score[1]
  1185. else:
  1186. klout = int(random()*60)
  1187.  
  1188. if eq_score[2] != 0.0:
  1189. skill = eq_score[2]
  1190. else:
  1191. skill = int(random()*60)
  1192.  
  1193.  
  1194. scores = {
  1195. 'apt':apt,
  1196. 'klout':klout,
  1197. 'skill':skill,
  1198. }
  1199.  
  1200. data['scores'] = scores
  1201. unique_id = data['unique_id']
  1202. try:
  1203. a = solr_object(unique_id=unique_id, data=str(data))
  1204. a.save()
  1205. except:
  1206. pass
  1207. #for i in a:
  1208. # i['other_urls'] = get_all_bins(i)
  1209. # data = ast.literal_eval(str(data).decode('unicode_escape').encode('ascii', 'ignore'))
  1210.  
  1211. context = {'arr':jsonpickle.encode(data)}
  1212. return render(request, 'SimplerApp/profile.html', context)
  1213.  
  1214. def profile_new(request, uniqueid):
  1215.  
  1216. #a = sample_data(id, 100)[int(random()*100)]
  1217. try:
  1218. a = solr_object.objects.get(unique_id=uniqueid)
  1219. data = ast.literal_eval(a.data)
  1220. except Exception as e:
  1221. print(str(e))
  1222. data = uid_to_candidate(uniqueid)
  1223.  
  1224. #urls = get_all_bins(a)
  1225. #eq_score = find_scores(urls)
  1226. try:
  1227. t = data['scores']
  1228. except:
  1229. eq_score = find_scores_from_li(data)
  1230.  
  1231. if eq_score[0] != 0.0:
  1232. apt = eq_score[0]
  1233. else:
  1234. apt = int(random()*60)
  1235.  
  1236. if eq_score[1] != 0.0:
  1237. klout = eq_score[1]
  1238. else:
  1239. klout = int(random()*60)
  1240.  
  1241. if eq_score[2] != 0.0:
  1242. skill = eq_score[2]
  1243. else:
  1244. skill = int(random()*60)
  1245.  
  1246.  
  1247. scores = {
  1248. 'apt':apt,
  1249. 'klout':klout,
  1250. 'skill':skill,
  1251. }
  1252.  
  1253. data['scores'] = scores
  1254. unique_id = data['unique_id']
  1255. try:
  1256. a = solr_object(unique_id=unique_id, data=str(data))
  1257. a.save()
  1258. except:
  1259. pass
  1260. #for i in a:
  1261. # i['other_urls'] = get_all_bins(i)
  1262. # data = ast.literal_eval(str(data).decode('unicode_escape').encode('ascii', 'ignore'))
  1263.  
  1264. context = {'arr':jsonpickle.encode(data)}
  1265. return render(request, 'SimplerApp/viewres.html', context)
  1266.  
  1267.  
  1268. def deletes(request):
  1269. sid = request.GET.get('sid')
  1270. sid = int(sid)
  1271. s = search.objects.get(id=sid)
  1272. s.delete()
  1273. return HttpResponse('delted!')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement