예제 #1
0
def return_main_job(requests, thomson_name, jid):
    if not requests.user.is_authenticated():
        return HttpResponse(status=401)
    user = user_info(requests)
    args = {}
    result = acThomson(thomson_name).returnMainJob(jid)
    # print result
    if result.upper() == "OK":
        args['detail'] = "Return successful!"
        message = json.dumps(args)
        return HttpResponse(message,
                            content_type='application/json',
                            status=200)
    elif result.upper() == "NOTOK":
        args['detail'] = "Return Error!"
        message = json.dumps(args)
        return HttpResponse(message,
                            content_type='applicatiob/json',
                            status=203)
    else:
        args['detail'] = "Error!" + result
        message = json.dumps(args)
        return HttpResponse(message,
                            content_type='applicatiob/json',
                            status=203)
예제 #2
0
def start_job(request, name):
    date_time = DateTime()
    opdate = date_time.get_now()
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    args={}
    args['name'] = name
    typeStream=Streaming(name).get_type()
    args['typeStream'] = typeStream
    if typeStream == 'Facebook':
        args['ip'] = Facebook(name).get_ip()
        args['streamkey'] = Facebook(name).get_streamkey()
    elif Streaming(name).get_type() == 'Youtube':
        args['ip'] = Youtube(name).get_ip()
        args['streamkey'] = Youtube(name).get_streamkey()
    if request.method == 'POST':
        #Restart job if user not input new infor
        if 'startWithOldInfo' in request.POST:
            Process(name).restart_job()
            return HttpResponseRedirect('/supvisor/')
        #End restart job if user not input new infor
        if 'saveAndStart' in request.POST:
            #Get new infor from template
            streamkey = request.POST.get('command', '').strip()
            ip = request.POST.get('ip', '').strip()
            event = request.POST.get('event', '').strip()
            #Return deffault ip if new ip is none
            if not ip:
                ip = '225.1.1.7:30120'
            #Get new infor from template
            #write log
            msg= " user: "******" edit process "+name 
            write_log(request.user.username,"edit", msg)
            #End check new infor

            #Update job if new onfor and old infor different
            if event == "Facebook":
                Facebook(name).save(ip, streamkey)
            elif event == "Youtube":
                Youtube(name).save(ip, streamkey)
            if Process(name).get_job_status() == 1:
                Process(name).stop_job()
            Process(name).update_job()
            Process(name).start_job()
            cldate = date_time.get_now()
            rslog = {
                                     "sev"        : "Warning",
                                     "jname"      : name,
                                     "type"       : event,
                                     "res"        : ip,
                                     "desc"       : msg,
                                     "cat"        : "live stream",
                                     "host"       : "118.69.166.162",
                                     "opdate"     : opdate,
                                     "cldate"     : cldate
                                 }
            logger.warning(json.dumps(rslog))
            return HttpResponseRedirect('/supvisor/')
    return render_to_response('supvisor/start.html', args)  
예제 #3
0
def get_log(request, thomson_name):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    """
    Template show list all Logs.
    /log/
    """
    return render_to_response('log/'+thomson_name+'.html',user)
예제 #4
0
def get_open_log(request):
    """
    Template show list all open Logs.
    /log/open/
    """
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('log/log_open.html',user)
예제 #5
0
def get_system_log(request):
    """
    Template show list all system Logs.
    /log/api/system
    """
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('log/log_system.html',user)
예제 #6
0
def rtmp_edit_job(request, name):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    date_time = DateTime()
    opdate = date_time.get_now()
    if request.method == 'POST':
        if 'saveAndStart' in request.POST:
            #Get new infor from template
            encode = request.POST.get('encode', '').strip()
            print encode
            domain = request.POST.get('domain', '').strip()
            print domain
            ip = request.POST.get('ip', '').strip() 
            print ip
            #check infor is change
            if RTMP(name).get_source()==ip and RTMP(name).get_encode()==encode and RTMP(name).get_destination()==domain:
                Process(name).restart_job()
                return HttpResponseRedirect('/supvisor/')
            '''Save command'''
            rtmp_pattern=re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:30120")
            aa = re.findall(rtmp_pattern, ip)
            if aa:
                RTMP(name).save_udp(ip, encode, domain)
            else:
                RTMP(name).save_rtmp(ip, encode, domain)
            '''End save command'''

            if Process(name).get_job_status() == 1:
                Process(name).stop_job()
            Process(name).update_job()
            Process(name).start_job()
            msg= " user: "******" edit process "+name 
            write_log(request.user.username,"edit", msg)
            cldate = date_time.get_now()
            rslog = {
                                     "sev"        : "Warning",
                                     "jname"      : name,
                                     "type"       : "rtmp",
                                     "res"        : None,
                                     "desc"       : msg,
                                     "cat"        : "live stream",
                                     "host"       : "118.69.166.162",
                                     "opdate"     : opdate,
                                     "cldate"     : cldate
                                 }
            logger.warning(json.dumps(rslog))
        return HttpResponseRedirect('/supvisor/')
    else:
        user = user_info(request)
        args={}
        args['name'] = name
        args['ip'] = RTMP(name).get_source()
        args['domain'] = RTMP(name).get_destination()
        args['encode'] = RTMP(name).get_encode()
        return render_to_response('supvisor/rtmp/edit.html', args)
예제 #7
0
def password_change(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    if request.method == 'POST':
        agrs = {}
        data = json.loads(request.body)
        oldpassword = data['oldpassword']
        newpassword = data['newpassword']
        retypepassword = data['retypepassword']
        #Check password input incorrect
        if newpassword != retypepassword:
            agrs["detail"] = "Sorry, passwords do not match!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=203)
        #check new password whith current password
        username = request.user.username
        user = user = authenticate(username=username, password=oldpassword)
        if user is None:
            agrs["detail"] = "Sorry, password incorrect!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=203)
        #Check new pass word  not same old password
        if newpassword == oldpassword:
            agrs["detail"] = "Sorry, new password same old password!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=203)
        user = User.objects.get(pk=int(request.user.id))
        user.set_password(newpassword)
        users = user.save()
        #update_session_auth_hash(request, users)
        agrs["detail"] = "Password change sucessfuly!"
        messages = json.dumps(agrs)
        return HttpResponse(messages,
                            content_type='application/json',
                            status=202)
    else:
        user = user_info(request)
        return render_to_response('accounts/password_change.html', user)
예제 #8
0
def set_auto_return_backup(requests, thomson_name, jid):
    if not requests.user.is_authenticated():
        return HttpResponse(status=401)
    user = user_info(requests)
    data = ''
    args = {}
    try:
        data = json.loads(requests.body)
    except Exception as e:
        return HttpResponse(e, content_type='application/json', status=203)
    if JobDB().update_job_auto(thomson_name, data):
        args['detail'] = "Update successful!"
        message = json.dumps(args)
        return HttpResponse(message,
                            content_type='application/json',
                            status=200)
    else:
        args['detail'] = "Update Error!"
        message = json.dumps(args)
        return HttpResponse(message,
                            content_type='applicatiob/json',
                            status=203)
예제 #9
0
def profile(request):
    if request.method == 'GET':
        user = user_info(request)
        return render_to_response('accounts/profile.html', user)
    agrs = {}
    if request.method == 'POST':
        user = User.objects.get(pk=int(request.user.id))
        data = json.loads(request.body)
        first_name = data['first_name'].strip()
        last_name = data['last_name'].strip()
        email = data['email'].strip()
        flag = 0
        if user.first_name != first_name:
            user.first_name = first_name
            flag = 1
        if user.last_name != last_name:
            user.last_name = last_name
            flag = 1
        if user.email != email:
            user.email = email
            flag = 1
        if flag:
            user.save()
            agrs["detail"] = "Profile change sucessfuly!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=202)
        agrs["detail"] = "Info! Profile no change."
        messages = json.dumps(agrs)
        return HttpResponse(messages,
                            content_type='application/json',
                            status=203)
    agrs["detail"] = "Eror! unknow."
    messages = json.dumps(agrs)
    return HttpResponse(messages, content_type='application/json', status=203)
예제 #10
0
def test(request):
    user = user_info(request)
    return render_to_response('system/testcaptcha.html', locals())
예제 #11
0
def monitor_lab(request):
    user = user_info(request)
    return render_to_response('system/monitor-lab.html', user)
예제 #12
0
def monitor(request):
    user = user_info(request)
    return render_to_response('system/monitor.min.html', user)
예제 #13
0
파일: views.py 프로젝트: ahcan/Portal
def channel_profile(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('channel/profile/profile.html', user)
예제 #14
0
def get_waiting(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('job/job_waiting.html', user)
예제 #15
0
def supervisord(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    if request.method == 'POST':
        agrs = {}
        try:
            data = json.loads(request.body)
        except Exception as e:
            agrs["detail"] = "No data input found!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=203)
        name = data['name'].strip()
        stream_type = data['stream_type'].strip()
        source = data['source']
        try:
            udp_pattern = re.compile(
                "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{2,5}")
            source_list = re.findall(udp_pattern, source)
            source = source_list[0]
        except Exception as e:
            agrs["detail"] = "Invalid source input!"
            messages = json.dumps(agrs)
            return HttpResponse(messages,
                                content_type='application/json',
                                status=203)
        stream_key = data['stream_key'].strip()
        '''Check if stream name exists
        flag == 0 --> not exists
        flag == 1 --> adreally exists
        '''
        flag = 0
        configFileList = get_conf_files_list()
        for job in configFileList:
            if job == name:
                flag = 1
                break
        #Cut white space
        name = name.replace(" ", "")
        if name.find(EXTENTION) < 0:
            name = name + EXTENTION
        '''get new stream id'''
        stream_id = random.randint(10000000000, 99999999999)
        if not flag:
            try:
                stream_id = StreamingHistory().get_new_id(request)
            except Exception as e:
                print e
            name = str(stream_id) + '_' + name
        else:
            stream_id = Streaming(name).get_id()
        '''Save as supervisord config'''
        if stream_type == "Facebook":
            #Facebook(name).save()
            Facebook(name).save(source, stream_key, stream_id,
                                request.user.username, '')
        elif stream_type == "Youtube":
            Youtube(name).save(source, stream_key, stream_id,
                               request.user.username, '')
        '''Add new job to supervisord'''
        if flag:
            '''Write history'''
            try:
                StreamingHistory().write_history(request.user.username,
                                                 'edited', stream_id)
            except Exception as e:
                print e
            if not Process(name).get_job_status():
                Process(name).update_job()
                Process(name).stop_job()
            agrs["detail"] = "Successfully edited to stream %s" % (name)
            messages = json.dumps(agrs)
        else:
            '''Write history'''
            try:
                StreamingHistory().write_history(request.user.username,
                                                 'started', stream_id)
            except Exception as e:
                print e
            Process(name).update_job()
            Process(name).stop_job()
            agrs["detail"] = "Successfully added to stream %s" % (name)
            messages = json.dumps(agrs)
        return HttpResponse(messages,
                            content_type='application/json',
                            status=202)
    user = user_info(request)
    return render_to_response('supervisord/supervisord.html', user)
예제 #16
0
def get_workflow(request, thomson_name):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('workflow/' + thomson_name + '.html', user)
예제 #17
0
def get_system(request, thomson_name):
    if not request.user.is_authenticated():
        return HttpResponse(status=401)
    user = user_info(request)
    return render_to_response('system/' + thomson_name + '.html', user)
예제 #18
0
def supvisor(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('supvisor/supvisor.html',user)
예제 #19
0
 def monitor_add(self, request):
     if not request.user.is_authenticated():
         return HttpResponseRedirect('/accounts/login')
     user = user_info(request)
     return render_to_response("event/monitor/add/add.html", user)
예제 #20
0
 def service(self, request):
     if not request.user.is_authenticated():
         return HttpResponseRedirect('/accounts/login')
     user = user_info(request)
     return render_to_response("event/service.html", user)
예제 #21
0
def get_index(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response("schedule/schedule.html", user)
예제 #22
0
파일: views.py 프로젝트: ahcan/Portal
def agent_view(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login')
    user = user_info(request)
    return render_to_response('agent/agent.html', user)
예제 #23
0
def test_login(request):
    agrs = user_info(request)
    print agrs
    print agrs['id']
    print agrs['email']
    return render_to_response('test_login.html', agrs)