def view_book(request): res= {} if request.method == 'GET': passwd = request.GET.get('pass',None) if passwd != 'ThanksDipankar': return HttpResponse(decodeUnicodeDirectory({'error':'Opps.. You dont have the requited permission, wait till release :)'}),content_type = 'application/json') res= CodeManager.searchCode(limit=20,mv=['id','name','short_desc','full_desc','main','solution','topic']) #pdb.set_trace() if res['res']: return render_to_response('cleanCode_book.html',res['res']); else: return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def ajax_send_email(request): # TODO SUPPORT JSON WILL TAKJE CARE BY POST>?>>>> res= {} #pdb.set_trace() try: if request.method == 'POST' :# in case of POST, We have Json Request.. data = json.loads(request.body) recipient = data['recipient'] subject = data['subject'] template = data['template'] data = data['data'] elif request.method == 'GET': recipient = request.GET['recipient'] subject = request.GET['subject'] template = request.GET['template'] data = RequestGetToDict(request.GET) data['time'] = time.ctime() else: res ={'status':'error','msg':'Operation Not supported '}; return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json') recipient_list= utils.buildList(recipient) m = MailEngine.MailEngine() sender = '*****@*****.**' res = m.SendMailUsingTemplate(sender,recipient_list,subject,template,data) except Exception,e: d = Log(e) res ={'status':'error','fname':str(e),'stack':d};
def ajax_cleancode_compile(request): logger.info('Compilation Called....') res= {} if request.method == 'POST': lang=request.POST.get('language','c') name=request.POST.get('name',None); main=request.POST.get('main',None); func=request.POST.get('func',None); input=request.POST.get('input',None); depends=request.POST.get('depends',None); # Unicode #name = name.encode('utf8') if name else '' #main = main.encode('utf8').strip() if main else '' #func = func.encode('utf8') if func else '' #input = input.encode('utf8') if input else '' [ name,main,func,input] = [ xx.encode('utf8') if xx else '' for xx in [ name,main,func,input] ] # Logic Here .. from CommonLib.codecompile.executeLib import Execute ex = Execute(lang,name,main,func,input,depends) #pdb.set_trace(); ex.save(name,main,func,input) res = ex.compile(name) res['status']='success' # TODO we shoud have a try catch here.. #ex.run(name) #ex.testperf(name) return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def ajax_feedback(request): import pdb #pdb.set_trace() res = None if request.method == 'GET': page = request.GET.get('page', None) limit = request.GET.get('limit', None) name = request.GET.get('name', None) email = request.GET.get('email', None) mobile = request.GET.get('mobile', None) res = FeedbackManager.getAllFeedbackWithFilter(name=name, email=email, mobile=mobile, page=page, limit=limit) elif request.method == 'POST': name = request.POST.get('name', None) email = request.POST.get('email', None) mobile = request.POST.get('mobile', None) feedback = request.POST.get('feedback', None) ipaddress = utils.get_client_ip(request) res = FeedbackManager.createFeedback(name=name, email=email, mobile=mobile, feedback=feedback, ipaddress=ipaddress) elif request.method == 'DELETE': #Pass No Delete pass return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json')
def ajax_cleancode_compile(request): logger.info('Compilation Called....') res = {} if request.method == 'POST': lang = request.POST.get('language', 'c') name = request.POST.get('name', None) main = request.POST.get('main', None) func = request.POST.get('func', None) input = request.POST.get('input', None) depends = request.POST.get('depends', None) # Unicode #name = name.encode('utf8') if name else '' #main = main.encode('utf8').strip() if main else '' #func = func.encode('utf8') if func else '' #input = input.encode('utf8') if input else '' [name, main, func, input] = [ xx.encode('utf8') if xx else '' for xx in [name, main, func, input] ] # Logic Here .. from CommonLib.codecompile.executeLib import Execute ex = Execute(lang, name, main, func, input, depends) #pdb.set_trace(); ex.save(name, main, func, input) res = ex.compile(name) res['status'] = 'success' # TODO we shoud have a try catch here.. #ex.run(name) #ex.testperf(name) return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json')
def iview_file(request,id): res= {} if request.method == 'GET': res= CodeManager.getCode(id) if res['res']: return render_to_response('cleanCode_iview.html',res['res']); else: return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def get_stat(request): res= {} if request.method == 'GET': from AppsEngines.cleanCode.models import Code res['total']= Code.objects.filter().count() res['stat_code_complete'] = res['total'] - Code.objects.filter(main=None).count() res['stat_intro_complete'] = res['total'] -(Code.objects.filter(solution=None).count()+Code.objects.filter(solution='').count() + Code.objects.filter(solution='Explane the code with comaplexity').count() ) res['total']= Code.objects.filter().count() return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def look(request,id): res= {} if request.method == 'GET': res= CodeManager.getCode(id) if res['res']: #pdb.set_trace() res['res']['solution'] = smartTextToHtml(res['res']['solution'],{'MAIN_CODE':res['res']['main']}) return render_to_response('cleanCode_look.html',res['res']); else: return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def buildBooklet(request): res= {} if request.method == 'GET': config = request.GET['config'] try: config = eval(config) fout = buildBookWrapper(config) #pdb.set_trace() res ={'status':'success','fname':fout}; except Exception,e: d = Log(e) res ={'status':'error','fname':str(e),'stack':d}; return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def ajax_youtube(request): res= {} more = None; isPlayList = False if request.method == 'GET': url = request.GET.get('url',None) if request.GET.get('more',None) =='True': more = True if request.GET.get('isPlayList',None) == 'True': isPlayList = True res = YouTube.getYoutubeData(url,isPlayList=isPlayList) return render_to_response('youtube.html',res); else: return HttpResponse(decodeUnicodeDirectory({'res':'Not Suppored;'}),content_type = 'application/json')
def ajax_cleancode_perf(request): res= {} if request.method == 'POST': lang=request.POST.get('language','c') name=request.POST.get('name',None) main=request.POST.get('main',None) func=request.POST.get('func',None) input=request.POST.get('input',None) # Unicode [ name,main,func,input] = [ xx.encode('utf8') if xx else '' for xx in [ name,main,func,input] ] # Logic Here .. from CommonLib.codecompile.executeLib import Execute ex = Execute(lang,name,main,func,input) res = ex.testperf(name) res['status']='success' # TODO we shoud have a try catch here.. return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def download_file(request, id): res = {} if request.method == 'GET': res = CodeManager.getCode(id) if res['res']: # Some Normalization .. if res['res']['language'] == None: res['res']['language'] = 'c' res['res']['name'] = remove_all_spl_char(res['res']['name']) if res['res']['language'].lower() == 'py': file = '' file += "\n'''\n" + "*" * 50 + "\n" + " Program Details " + "\n" + "*" * 50 file += "\n Name:" + res['res']['name'] file += "\n Description:" + res['res'][ 'short_desc'] + "\n" + "*" * 50 + "\n'''\n" if res['res']['main']: file += "\n#" + "*" * 50 + "\n" + "Driver Code " + "\n" + "*" * 50 + "#\n" file += res['res']['main'] if res['res']['func']: file += "\n#" + "*" * 50 + "\n" + "Function Code " + "\n" + "*" * 50 + "#\n" file += res['res']['func'] else: file = '' file += "\n/*" + "*" * 50 + "\n" + " Program Details " + "\n" + "*" * 50 file += "\n Name:" + res['res']['name'] file += "\n Description:" + res['res'][ 'short_desc'] + "\n" + "*" * 50 + "*/\n" if res['res']['main']: file += "\n/*" + "*" * 50 + "\n" + "Driver Code " + "\n" + "*" * 50 + "*/\n" file += res['res']['main'] if res['res']['func']: file += "\n/*" + "*" * 50 + "\n" + "Function Code " + "\n" + "*" * 50 + "*/\n" file += res['res']['func'] from django.core.servers.basehttp import FileWrapper # generate the file if res['res']['language'] == 'c': response = HttpResponse(file, content_type='text/plain') response[ 'Content-Disposition'] = 'attachment; filename=%s.c' % ( res['res']['name']) response['Content-Length'] = len(file) return response else: return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json')
def download_file(request,id): res= {} if request.method == 'GET': res= CodeManager.getCode(id) if res['res']: # Some Normalization .. if res['res']['language'] == None: res['res']['language']='c' res['res']['name'] = remove_all_spl_char(res['res']['name']) if res['res']['language'].lower() == 'py': file='' file +="\n'''\n"+"*"*50+"\n"+" Program Details " +"\n"+"*"*50 file +="\n Name:"+res['res']['name'] file +="\n Description:"+res['res']['short_desc']+"\n"+"*"*50+"\n'''\n" if res['res']['main']: file +="\n#"+"*"*50+"\n"+"Driver Code "+"\n"+"*"*50+"#\n" file +=res['res']['main'] if res['res']['func']: file +="\n#"+"*"*50+"\n"+"Function Code "+"\n"+"*"*50+"#\n" file +=res['res']['func'] else: file='' file +="\n/*"+"*"*50+"\n"+" Program Details " +"\n"+"*"*50 file +="\n Name:"+res['res']['name'] file +="\n Description:"+res['res']['short_desc']+"\n"+"*"*50+"*/\n" if res['res']['main']: file +="\n/*"+"*"*50+"\n"+"Driver Code "+"\n"+"*"*50+"*/\n" file +=res['res']['main'] if res['res']['func']: file +="\n/*"+"*"*50+"\n"+"Function Code "+"\n"+"*"*50+"*/\n" file +=res['res']['func'] from django.core.servers.basehttp import FileWrapper # generate the file if res['res']['language'] =='c': response = HttpResponse(file, content_type='text/plain') response['Content-Disposition'] = 'attachment; filename=%s.c' %(res['res']['name']) response['Content-Length'] = len(file) return response else: return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
def ajax_feedback(request): import pdb #pdb.set_trace() res=None if request.method == 'GET': page=request.GET.get('page',None) limit=request.GET.get('limit',None) name=request.GET.get('name',None) email=request.GET.get('email',None) mobile=request.GET.get('mobile',None) res=FeedbackManager.getAllFeedbackWithFilter(name=name, email=email,mobile=mobile,page=page,limit=limit) elif request.method == 'POST': name=request.POST.get('name',None) email=request.POST.get('email',None) mobile=request.POST.get('mobile',None) feedback=request.POST.get('feedback',None) ipaddress = utils.get_client_ip(request) res=FeedbackManager.createFeedback(name=name,email=email,mobile=mobile,feedback=feedback,ipaddress = ipaddress ) elif request.method == 'DELETE': #Pass No Delete pass return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')
try: #pdb.set_trace() exp = ''.join(['<div class="iview codeExp" target="%s">%s</div>'%(i,j) for (i,j) in [ (c[:c.index(':')],c[c.index(':')+1:]) for c in combine.strip().split('\nL#')]]) except Exception, e: res= {'status':'error','msg':'Error: Wring format ','sys_error':'use => "L#1-2,3: this is this('+e+')'} return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json') #Now Update.. res= CodeManager.updateCode(id,full_desc=p,intro=a,solution=exp) except Exception,e: print 'Error: failed Construct COMBINE : ONE TEXT --> SPLIT HTML ' res={'status':'error','msg':'Error: failed Construct COMBINE : ONE TEXT --> SPLIT HTML ','sys_error':str(e)} # Make a validation of Update" r = res['res'] pdb.set_trace() if(sec_count == (r['full_desc'].count('iview')+r['intro'].count('iview')+r['solution'].count('iview'))): return HttpResponse(decodeUnicodeDirectory({'status':'success','msg':'Total section successfully: '+str(sec_count)}),content_type = 'application/json') else: return HttpResponse(decodeUnicodeDirectory({'status':'error','msg':'validation failed: section count doesnt match..'}),content_type = 'application/json') ###################### End Address Operation ############################ ####################### Start LOOK Views ################################# # Interactive View @csrf_exempt def look(request,id): res= {} if request.method == 'GET': res= CodeManager.getCode(id) if res['res']: #pdb.set_trace() res['res']['solution'] = smartTextToHtml(res['res']['solution'],{'MAIN_CODE':res['res']['main']})
def iview_file_save(request, id): res = {} if request.method == 'GET': """ DATABASE -> splitData(p,a,l)(this is proper html format) -> DeNorm from TextArea -> Merege All ->return FullArea """ res = CodeManager.getCode(id) if res['res']: p = res['res']['full_desc'] a = res['res']['intro'] l = res['res']['solution'] # Construct COMBINE : SPLIT HTML - ONE TEXT try: #pdb.set_trace() out = '' soup = BeautifulSoup(p) out += ''.join([ '\nP:%s' % p for p in [getHtmlContent(str(i)) for i in soup.find_all('div')] ]) out = out[1:] # Remove first \n soup = BeautifulSoup(a) out += ''.join([ '\nA:%s' % p for p in [getHtmlContent(str(i)) for i in soup.find_all('div')] ]) soup = BeautifulSoup(l) out += ''.join([ '\nL#%s:%s' % (p, q) for (p, q) in [(i.attrs['target'], getHtmlContent(str(i))) for i in soup.find_all('div')] ]) except: print 'error: Not able to Construct COMBINE : HTML - ONE TEXT ' out = { 'combine': 'P: problem\nA: Algorithms\nL#1-12: line 1 to 12\nL#13-14: 14 to 15\n' } res = {'combine': out} else: res = { 'combine': 'P: problem\nA: Algorithms\nL#1-12: line 1 to 12\nL#13-14: 14 to 15\n' } return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json') if request.method == 'POST': """ textarea input ->Split(p,a,l)-> Normalized each one HTML -> StoreInDatabase """ combine = request.POST.get('combine', None) if combine: combine = '\n' + combine sec_count = combine.count("\nP:") + combine.count( "\nA:") + combine.count("\nL#") # Construct COMBINE : ONE TEXT --> SPLIT HTML try: #pdb.set_trace() sp = combine.find('\nP:') sa = combine.find('\nA:') sl = combine.find('\nL#') if sa != -1: p = combine[sp + 3:sa] elif sl != -1: p = combine[sp + 3:sl] else: p = combine[sp + 3:] # Now we have the p try: if p.strip(): p = ''.join([ '<div class="iview">%s</div>' % i for i in p.split('\nP:') ]) except Exception, e: res = { 'status': 'error', 'msg': 'Error: Wring format ', 'sys_error': 'use => Some problem of getting all P(' + e + ')' } return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json') if combine.find('\nA:') != -1: combine = combine[combine.find('\nA:') + 3:] if sl != -1: a = combine[:combine.find('\nL#')] else: a = combine[:] #Now we have the a: try: if a.strip(): a = ''.join([ '<div class="iview">%s</div>' % i for i in a.split('\nA:') ]) except Exception, e: res = { 'status': 'error', 'msg': 'Error: Wring format ', 'sys_error': 'use => Some problem of getting all A:(' + e + ')' } return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json') if combine.find('\nL#') != -1: combine = combine[combine.find('\nL#') + 3:] else: combine = '' exp = '' if combine.strip(): try: #pdb.set_trace() exp = ''.join([ '<div class="iview codeExp" target="%s">%s</div>' % (i, j) for (i, j) in [(c[:c.index(':')], c[c.index(':') + 1:]) for c in combine.strip().split('\nL#')] ]) except Exception, e: res = { 'status': 'error', 'msg': 'Error: Wring format ', 'sys_error': 'use => "L#1-2,3: this is this(' + e + ')' } return HttpResponse(decodeUnicodeDirectory(res), content_type='application/json')
print 'Error: failed Construct COMBINE : ONE TEXT --> SPLIT HTML ' res = { 'status': 'error', 'msg': 'Error: failed Construct COMBINE : ONE TEXT --> SPLIT HTML ', 'sys_error': str(e) } # Make a validation of Update" r = res['res'] pdb.set_trace() if (sec_count == (r['full_desc'].count('iview') + r['intro'].count('iview') + r['solution'].count('iview'))): return HttpResponse(decodeUnicodeDirectory({ 'status': 'success', 'msg': 'Total section successfully: ' + str(sec_count) }), content_type='application/json') else: return HttpResponse(decodeUnicodeDirectory({ 'status': 'error', 'msg': 'validation failed: section count doesnt match..' }), content_type='application/json') ###################### End Address Operation ############################
def iview_file_save(request,id): res= {} if request.method == 'GET': """ DATABASE -> splitData(p,a,l)(this is proper html format) -> DeNorm from TextArea -> Merege All ->return FullArea """ res= CodeManager.getCode(id) if res['res']: p = res['res']['full_desc'] a= res['res']['intro'] l = res['res']['solution'] # Construct COMBINE : SPLIT HTML - ONE TEXT try: #pdb.set_trace() out ='' soup = BeautifulSoup(p) out += ''.join([ '\nP:%s'%p for p in [ getHtmlContent(str(i)) for i in soup.find_all('div')] ]) out =out[1:] # Remove first \n soup = BeautifulSoup(a) out += ''.join([ '\nA:%s'%p for p in [ getHtmlContent(str(i)) for i in soup.find_all('div')] ]) soup = BeautifulSoup(l) out += ''.join([ '\nL#%s:%s'%(p,q) for (p,q) in [ (i.attrs['target'], getHtmlContent(str(i))) for i in soup.find_all('div')] ]) except: print 'error: Not able to Construct COMBINE : HTML - ONE TEXT ' out={'combine':'P: problem\nA: Algorithms\nL#1-12: line 1 to 12\nL#13-14: 14 to 15\n'} res={'combine':out} else: res={'combine':'P: problem\nA: Algorithms\nL#1-12: line 1 to 12\nL#13-14: 14 to 15\n'} return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json') if request.method == 'POST': """ textarea input ->Split(p,a,l)-> Normalized each one HTML -> StoreInDatabase """ combine = request.POST.get('combine',None) if combine: combine = '\n'+combine sec_count = combine.count("\nP:")+combine.count("\nA:")+combine.count("\nL#"); # Construct COMBINE : ONE TEXT --> SPLIT HTML try: #pdb.set_trace() sp = combine.find('\nP:') sa = combine.find('\nA:') sl = combine.find('\nL#') if sa != -1: p = combine[sp+3:sa] elif sl != -1: p = combine[sp+3:sl] else: p = combine[sp+3:] # Now we have the p try: if p.strip(): p = ''.join(['<div class="iview">%s</div>'%i for i in p.split('\nP:')]) except Exception, e: res= {'status':'error','msg':'Error: Wring format ','sys_error':'use => Some problem of getting all P('+e+')'} return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json') if combine.find('\nA:') != -1: combine = combine[combine.find('\nA:')+3:] if sl != -1: a = combine[:combine.find('\nL#')] else: a = combine[:] #Now we have the a: try: if a.strip(): a = ''.join(['<div class="iview">%s</div>'%i for i in a.split('\nA:')]) except Exception, e: res= {'status':'error','msg':'Error: Wring format ','sys_error':'use => Some problem of getting all A:('+e+')'} return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json') if combine.find('\nL#') != -1: combine = combine[combine.find('\nL#')+3:] else: combine ='' exp ='' if combine.strip(): try: #pdb.set_trace() exp = ''.join(['<div class="iview codeExp" target="%s">%s</div>'%(i,j) for (i,j) in [ (c[:c.index(':')],c[c.index(':')+1:]) for c in combine.strip().split('\nL#')]]) except Exception, e: res= {'status':'error','msg':'Error: Wring format ','sys_error':'use => "L#1-2,3: this is this('+e+')'} return HttpResponse(decodeUnicodeDirectory(res), content_type = 'application/json')