1/** 2 * Plugin Name: Netcam Live Stream 3 * Author: Mattia Roccoberton 4 * Author URI: http://blocknot.es 5 * License: GPL3 6 */ 7jQuery(document).ready( function() { 8 var netcams = []; 9 10 function live1( id ) 11 { 12 if( netcams[id].loaded ) 13 { 14 netcams[id].loaded = false; 15 netcams[id].cnt++; 16 var elem = jQuery('.netcam_live').eq( id ); 17 var img_id = 'img' + id + '_' + netcams[id].cnt; 18 elem.append( '<img id="' + img_id + '" src="' + netcams[id].url + Math.random() + '" style="display:none;' + netcams[id].style + '" alt="Netcam" />' ); 19 //jQuery('#'+img_id).load( function() { 20 imagesLoaded( '#' + img_id, function() { 21 netcams[id].loaded = true; 22 elem.children(':first').remove(); 23 jQuery('#'+img_id).show(); 24 }); 25 } 26 } 27 28 jQuery('.netcam_live').each( function( i ) { 29 var img = jQuery(this).children(':first'); 30 var u = img.attr( 'src' ); 31 var t = ( u.indexOf( '?' ) > 0 ) ? t = '&t=' : '?t='; 32 var m = jQuery(this).attr( 'data-mode' ); 33 var r = jQuery(this).attr( 'data-refresh' ); 34 if( r < 100 ) r = 1000; 35 jQuery(this).attr( 'data-id', i ); 36 netcams[i] = { url: u + t, timer: null, style: img.attr( 'style' ), refresh: r, mode: m, loaded: true, cnt: 0 }; 37 netcams[i].timer = setInterval( function() { 38 live1( i ); 39 }, netcams[i].refresh ); 40 if( jQuery(this).hasClass( 'click' ) ) 41 { // click to freeze 42 jQuery(this).click( function( e ) { 43 e.preventDefault(); 44 var id = jQuery(this).attr( 'data-id' ); 45 if( netcams[id].timer != null ) 46 { 47 clearInterval( netcams[id].timer ); 48 netcams[id].timer = null; 49 jQuery(this).addClass( 'freeze' ); 50 } 51 else 52 { 53 netcams[id].timer = setInterval( function() { 54 live1( id ); 55 }, netcams[i].refresh ); 56 jQuery(this).removeClass( 'freeze' ); 57 } 58 }); 59 } 60 }); 61});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.