def __init__(self, request): if request.session.get('isConfig', False) is False: Config.getSession(request.session) if request.session['user'].is_authenticated(): logout(request) Message.pushMessage(request, Message.INFO, 'User logged out.') else: Message.pushMessage(request, Message.ERROR, 'User not logged in.') if request.META.get('HTTP_REFERER', False) is not False: self.render = HttpResponseRedirect(request.META['HTTP_REFERER']) else: self.render = HttpResponse('/logout')
def __init__(self, request): if request.session.get('isConfig', False) is False: Config.getSession(request.session) form = LoginForm(request.POST, error_class=ErrorClear) if request.method == 'GET': # GET request centerBlocks = [] if not request.session['user'].is_authenticated(): centerBlocks = [render_to_string('kirinki/section.html', {'title' : 'Login', 'content': render_to_string('kirinki/form.html', {'form' : form, 'action' : request.session['base_url']+'/login'}, context_instance=RequestContext(request))})] self.render = MainViewer(request).render([],centerBlocks,[]) elif request.method == 'POST': # POST request Log.debug('Login POST') if request.session['user'].is_authenticated(): Message.pushMessage(request, Message.ERROR, 'User already logged in') if form.is_valid(): user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password']) if user is not None: if user.is_active: login(request, user) Message.pushMessage(request, Message.INFO, 'User logged in') request.session['user'] = user else: # Return a 'disabled account' error message Message.pushMessage(request, Message.ERROR, 'Your account is disabled.') else: # Return an 'invalid login' error message. Message.pushMessage(request, Message.ERROR, 'Username or password error.') else: for error in form.errors: Message.pushMessage(request, Message.ERROR, 'Error en ' + error + ': ' + str(form._errors[error])) # The return page is the same for all the situations of this request. if request.META.get('HTTP_REFERER', False) is not False: self.render = HttpResponseRedirect(request.META['HTTP_REFERER']) else: self.render = HttpResponseRedirect('/index') else: # If there's not GET neither POST request there's an error raise Http404
def __init__(self, request): if request.session.get('isConfig', False) is False: Config.getSession(request.session) if request.method == 'GET': # GET request leftBlocks = [self.getMyVideos(request.session)] centerBlocks = [self.getUploadVideo(request.session['base_url'], request)] self.render = MainViewer(request).render(leftBlocks, centerBlocks, []) elif request.method == 'POST': # POST request. form = UploadForm(request.POST, request.FILES, error_class=ErrorClear) if form.is_valid(): upFile = request.FILES['fileUpload'] if upFile.size > 0: path = '' if request.session.get('upload_path', False): path = request.session['upload_path']+'/' path += upFile.name destination = open(path, 'wb+') for chunk in upFile.chunks(): destination.write(chunk) destination.close() v = video(name=form.cleaned_data['title'], description=form.cleaned_data['description'], path=path, format=upFile.content_type, pub_date=datetime.now(), owner=request.session['user']) v.save() if form.cleaned_data['convertMP4'] and path[v.path.rfind('.'):].lower() != 'mp4': pass if form.cleaned_data['convertOGG'] and path[v.path.rfind('.'):].lower() != 'ogg': pass if form.cleaned_data['convertWEBM'] and path[v.path.rfind('.'):].lower() != 'web': pass if path[v.path.rfind('.'):].lower() != 'flv': pass else: for error in form.errors: Message.pushMessage(request, Message.ERROR, 'Error en ' + error + ': ' + str(form._errors[error])) if request.META.get('HTTP_REFERER', False) is not False: self.render = HttpResponseRedirect(request.META['HTTP_REFERER']) else: self.render = HttpResponseRedirect('/index') else: raise Http404
def __init__(self, request, key): try: Log.debug(key) up = UserProfile.objects.get(activation_key=key) if up.key_expires < datetime.today(): Message.pushMessage(request, Message.INFO, 'The activation key has expired.') else: user = up.user user.is_active = True user.save() Message.pushMessage(request, Message.INFO, 'User ' + user.username + ' is activated') up.delete() except UserProfile.DoesNotExist: Message.pushMessage(request, Message.INFO, 'User Profile does not exists') self.render = HttpResponseRedirect('/index')
def __init__(self, request): if request.session.get('isConfig', False) is False: Config.getSession(request.session) form = RegisterForm(request.POST, error_class=ErrorClear) if request.method == 'GET': # GET request centerBlocks = [] if not request.session['user'].is_authenticated(): centerBlocks = [render_to_string('kirinki/section.html', {'title' : 'Register', 'content': render_to_string('kirinki/form.html', {'form' : form, 'action' : request.session['base_url']+'/register', 'captcha' : captcha.displayhtml('6LefRr8SAAAAAMncFelaGsop60Uuon0MCL6H-aP3')}, context_instance=RequestContext(request))})] self.render = MainViewer(request).render([],centerBlocks,[]) elif request.method == 'POST': # POST request if form.is_valid(): Log.debug('Form valid') if form.cleaned_data['password'] != form.cleaned_data['rpassword']: Log.debug('Passwords doesn\'t match') Message.pushMessage(request, Message.INFO, 'Passwords doesn\'t match.') else: Log.debug('Passwords match') remote_ip = request.META['REMOTE_ADDR'] challenge = request.REQUEST.get('recaptcha_challenge_field') response = request.REQUEST.get('recaptcha_response_field') recaptcha_response = captcha.submit(challenge, response, '6LefRr8SAAAAAPpY8WNoxo19nh0Rre5BCB9JfLJV', remote_ip) if recaptcha_response.is_valid: Log.debug('Recaptcha is valid') try: User.objects.get(username=form.cleaned_data['username']) except User.DoesNotExist: user = User.objects.create_user(request.POST['username'], form.cleaned_data['email'], form.cleaned_data['password']) user.is_active = False user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.groups.add(Group.objects.get(name='users')) user.save() salt = sha.new(str(random.random())).hexdigest()[:5] activation_key = sha.new(salt+user.username).hexdigest() key_expires = datetime.today() + timedelta(2) new_profile = UserProfile(user=user, activation_key=activation_key, key_expires=key_expires) new_profile.save() email_subject = 'Kirinki account confirmation' email_body = "Hello, %s, and thanks for signing up for an rstreaming account!\n\nTo activate your account, click this link within 48 hours:\n\n%s/account/confirm/%s" % (user.username, request.session['base_url'], new_profile.activation_key) send_mail(email_subject, email_body, '*****@*****.**', [user.email.encode('utf-8')], fail_silently=False) Message.pushMessage(request, Message.INFO, 'User registered. To activate the account please visit the url inicated in your email.') else: Log.debug('Recaptcha is not valid') Message.pushMessage(request, Message.ERROR, 'User not registered. ' + recaptcha_response.error_code) else: Log.debug('Form is not valid') for error in form.errors: Message.pushMessage(request, Message.ERROR, 'Error en ' + error + ': ' + str(form._errors[error])) if request.META.get('HTTP_REFERER', False) is not False: self.render = HttpResponseRedirect(request.META['HTTP_REFERER']) else: self.render = HttpResponseRedirect('/index') else: raise Http404
def __init__(self, request): if request.session.get('isConfig', False) is False: Config.getSession(request.session) if request.method == 'GET': # GET request form = StrForm(error_class=ErrorClear) form.fields['isVideo'].initial = False form.fields['srcIP'].initial = request.META['REMOTE_ADDR'] form.fields['srcPort'].initial = 9000 form.fields['vStream'].choices = self.userVideos(request) self.render = MainViewer(request).render([], [render_to_string('kirinki/form.html', {'form' : form, 'action' : request.session['base_url'] + '/stream', 'id' : 'stream'}, context_instance=RequestContext(request))], []) elif request.method == 'POST': # POST request form = StrForm(request.POST, error_class=ErrorClear) form.fields['isVideo'].initial = False form.fields['srcIP'].initial = request.META['REMOTE_ADDR'] form.fields['srcPort'].initial = 9000 form.fields['vStream'].choices = self.userVideos(request) # Check if the form data is valid and try to start the streaming if form.is_valid(): try: v = video.objects.filter(idVideo=form.cleaned_data['vStream'])[0] except video.DoesNotExist: v = None if form.cleaned_data['isVideo'] is True and v is not None: clvc = None if v.format == 'video/mp4': cvlc = subprocess.Popen(["/usr/bin/cvlc " + v.path + " --sout '#http{mux=ffmpeg{mux=flv},dst=" + request.session['strIP'] + ":" + request.session['strPort'] + "/} -no-sout-rtp-sap -no-sout-standard-sap -sout-keep' --ttl 12"], shell=True) elif v.format == 'video/webm': cvlc = subprocess.Popen(["/usr/bin/cvlc " + v.path + " --sout '#http{mux=webm,dst=" + request.session['strIP'] + ":" + request.session['strPort'] + "/} -no-sout-rtp-sap -no-sout-standard-sap -sout-keep' --ttl 12"], shell=True) elif v.format == 'video/ogg': cvlc = subprocess.Popen(["/usr/bin/cvlc " + v.path + " --sout '#http{mux=ogg,dst=" + request.session['strIP'] + ":" + request.session['strPort'] + "/} -no-sout-rtp-sap -no-sout-standard-sap -sout-keep' --ttl 12"], shell=True) else: Message.pushMessage(request, Message.ERROR,'Video type not supported') if clvc is not None: vStream = streaming(src=form.cleaned_data['srcIP'], port=form.cleaned_data['srcPort'], mux=form.cleaned_data['srcMux'], vMode=form.cleaned_data['isVideo'], pid=cvlc.pid,video=v, owner=request.session['user']) vStream.save() Message.pushMessage(request, Message.INFO,'Video streaming') elif form.cleaned_data['isVideo'] is False: if form.cleaned_data['srcMux'] != "ffmpeg{mux=flv}" and form.cleaned_data['srcMux'] != "webm" and form.cleaned_data['srcMux'] != "ogg": Message.pushMessage(request, Message.ERROR,'Video type not supported') else: cvlc = subprocess.Popen(["/usr/bin/cvlc http://" + str(form.cleaned_data['srcIP']) + ":" + str(form.cleaned_data['srcPort']) + " --sout '#http{mux=" + str(form.cleaned_data['srcMux']) + ",dst=" + request.session['strIP'] + ":" + request.session['strPort'] + "/} -no-sout-rtp-sap -no-sout-standard-sap -sout-keep' --ttl 12"], shell=True) vStream = streaming(src=form.cleaned_data['srcIP'], port=form.cleaned_data['srcPort'], mux=form.cleaned_data['srcMux'], vMode=form.cleaned_data['isVideo'], pid=cvlc.pid,video=v, owner=request.session['user']) vStream.save() Message.pushMessage(request, Message.ERROR, 'External video streaming.') else: Message.pushMessage(request, Message.ERROR, 'If you select the video mode you must select a video.') # os.waitpid(p.pid, 0)[1] self.render = HttpResponseRedirect('/streaming') else: for error in form.errors: Message.pushMessage(request, Message.ERROR, 'Error en ' + error + ': ' + str(form._errors[error])) if request.META.get('HTTP_REFERER', False) is not False: self.render = HttpResponseRedirect(request.META['HTTP_REFERER']) else: self.render = HttpResponseRedirect('/index') else: raise Http404