// ==UserScript== // @name DLNA 投屏 // @namespace https://bbs.tampermonkey.net.cn/ // @version 0.1 // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ4OCwgMjAyMC8wNy8xMC0yMjowNjo1MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVFODZDRDQ4NDhFNDExRUVBNUFEREIxNDE1QkY0REE2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVFODZDRDQ5NDhFNDExRUVBNUFEREIxNDE1QkY0REE2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUU4NkNENDY0OEU0MTFFRUE1QUREQjE0MTVCRjREQTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NUU4NkNENDc0OEU0MTFFRUE1QUREQjE0MTVCRjREQTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4qroPCAAAUN0lEQVR42uxdDZQc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 // @description DLNA 投屏,把网页的图片、视频投放到指定设备。因为浏览器权限问题,只能通过主动扫描识别设备 // @author Detom // @match *://*/* // @require https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @connect * // @connect *.*.*.* // @license *** // @downloadURL https://update.greasyfork.icu/scripts/474555/DLNA%20%E6%8A%95%E5%B1%8F.user.js // @updateURL https://update.greasyfork.icu/scripts/474555/DLNA%20%E6%8A%95%E5%B1%8F.meta.js // ==/UserScript== (function() { 'use strict'; var scan_flag ={}; var html_str = ''; var DLNA_list = ''; var icon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ4OCwgMjAyMC8wNy8xMC0yMjowNjo1MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVFODZDRDQ4NDhFNDExRUVBNUFEREIxNDE1QkY0REE2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVFODZDRDQ5NDhFNDExRUVBNUFEREIxNDE1QkY0REE2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NUU4NkNENDY0OEU0MTFFRUE1QUREQjE0MTVCRjREQTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NUU4NkNENDc0OEU0MTFFRUE1QUREQjE0MTVCRjREQTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4qroPCAAAUN0lEQVR42uxdDZQc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" function getDevices(){ let devices = GM_getValue('devices'); devices = devices ? JSON.parse(devices) : []; return devices; } function set_active_device(active_device){ GM_setValue('active_device',active_device); if(html_str){ } } function show_devices(){ console.log('show_devices',getDevices()); console.log('active_device',GM_getValue('active_device') ); if(html_str!=''){ var devices_ul = html_str.find('#dlna_scan_devices'); devices_ul.find('li').remove() html_str.find("#dlna_scan_pay_qrcode").show(); if( getDevices().length>0){ html_str.find("#dlna_scan_pay_qrcode").hide(); getDevices().forEach(function(device){ if(html_str!=''){ let cls = ''; if(GM_getValue('active_device')==device.ip){ cls='active'; } devices_ul.append(`
  • ${device.name}
  • `); } /* chrome.contextMenus.create({ type: 'radio', title: device.name, id: device.ip, parentId: 'DLNA_Play', contexts: ['all'], onclick: genericOnClick }, function () { console.log('contextMenus are create.'); });*/ }); }else{ devices_ul.append(`
  • 没有发现设备
  • `); } } } function scan_dlna(begin,to,port){ scan_flag = {}; let devices = []; console.log(begin,'~',to) GM_setValue('devices','[]'); GM_setValue('port',port); GM_setValue('ip_begin',begin); GM_setValue('ip_to',to); begin = begin.split('.'); // 扫描起始地址 to = to.split('.'); // 扫描结束地址 begin[3] --; let total=0,end=0; let run_btn = html_str.find('#dlna_scan_run_btn') run_btn.text(`${end}/${total}`); run_btn.prop('disabled',true); //chrome.contextMenus.removeAll(); //create_top_menu(); do{ begin[3]++; total ++; if(begin[3]>255){ begin[3]=0; begin[2]++; if(begin[2]>255){ begin[2]=0; begin[1]++; if(begin[1]>255){ begin[1]=0; begin[0]++; } } } let ip = begin.join('.'); let url = `http://${ip}:${port}/description.xml`; //console.log(url) function requested(xhr){ end++; if(xhr.status){ console.log('GM_xmlhttpRequest onload',ip, xhr); let device = $( xhr.responseText); if(device.find('device deviceType').text().indexOf('urn:schemas-upnp-org:device:MediaRenderer')>=0){ let name = device.find('device friendlyName').text(); devices.push({name:name, ip:ip }); GM_setValue('devices',JSON.stringify(devices)); if(GM_getValue('active_device')=='' || GM_getValue('active_device')==undefined){ GM_setValue('active_device',ip); } show_devices(); } } run_btn.text(`${end}/${total}`); scan_flag[ip] = false; if(end==total){ run_btn.text(`开始扫描`); run_btn.prop('disabled',false); show_devices(); } } GM_xmlhttpRequest({ url: url, method :"GET", headers: { "Content-type": "application/xml" }, timeout: 1000, onload:requested, onerror:requested, ontimeout:requested }); }while( begin[0]\ X\

    扫描显示屏

    \

    \ \

    \

    \ \

    \

    \ 端口\ \ \

    \
    \ \ \
    \ \
    \
    \ ` html_str =$(html_str); html_str.find('#dlna_scan_close_btn').click(()=>{ html_str.remove(); }); let inputs = html_str.find('.dlna_scan_ip'); html_str.find('#dlna_scan_run_btn').click(()=>{ scan_dlna(inputs[0].value, inputs[1].value, html_str.find('#dlna_scan_port').val()) }); for(let i1=0;i1 { console.log(event); let value = event.target.value; let ip = [0,0,0,0] let ip_split = value.split('.'); for(let i = 0; i < ip.length; i++){ let block = 0; if (ip_split[i]===undefined){ ip[i] = 0; continue; } block = parseInt(ip_split[i]); console.log(block,block===NaN); block = isNaN(block) ? 0 : block; block = block > 255 ? 255 : block; block = block < 0 ? 0 : block; ip[i] = block; } ip[0] = ip[0] == 0 ? 1 : ip[0]; event.target.value = ip.join('.'); }); input.onclick = (event) => { let value = event.target.value; let start = event.target.selectionStart; let end = event.target.selectionEnd; while (!isNaN(parseInt(value[start-1]))){ console.log(value[start-1],isNaN(parseInt(value[start-1]))) start--; }; while (!isNaN(parseInt(value[end]))){ console.log(value[end],isNaN(parseInt(value[end]))) end++; }; event.target.selectionStart = start; event.target.selectionEnd = end ; console.log(start,' ~ ',end); } } let scand_box = $('body').append(html_str); } function dlna_push(ip,url,resource_type='image'){ let port = GM_getValue('port') let xml = `\n0${url}<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sec="http://www.sec.co.kr/"><item id="123" parentID="-1" restricted="1"><dc:title>title</dc:title><upnp:class>object.item.${resource_type}Item</upnp:class><res protocolInfo="http-get:*:${resource_type}/*:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">${url}</res></item></DIDL-Lite>`; //console.log('xml length',xml.length) //console.log(xml) console.log(ip,resource_type,url) GM_xmlhttpRequest({ url:`http://${ip}:${port}/_urn:schemas-upnp-org:service:AVTransport_control`, method :"POST", headers: { 'SOAPAction': '"urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"', 'Content-Type': 'text/xml; charset="utf-8"', 'Content-Length': xml.length, }, timeout: 1000, data: xml, onload:function(xhr){ console.log('push url', xhr.responseText); }, onerror: function(xhr){ alert('投放失败'); },ontimeout: function(xhr){ alert('投放失败,连接超时'); }, }); } let id=GM_registerMenuCommand ("扫描 DLNA 设备", function(e,t){ console.log(e,t); show_scan_box() //GM_unregisterMenuCommand(id);//删除菜单 }, "h"); $('body').on('mouseover',function(e){ let target = e.target; let $target = $(target); let url = ''; if( ['VIDEO','IMG'].indexOf(target.nodeName)>=0){ if(DLNA_list!=''){ DLNA_list.remove(); } if(target.src.indexOf('data:')==0){ return; } if(target.src.indexOf('./')==0){ url = location.href.substring(0, location.href.lastIndexOf('/')) +'/'+ target.src; }else{ if(target.src.indexOf('/')==0){ url = location.protocol +'//'+ location.host +'/'+ target.src; }else{ url = target.src; } } DLNA_list = $('
    '); getDevices().forEach((d)=>{ let item = $(`${d.name}`); item.attr('ip',d.ip); item.attr('url',url); item.attr('type', target.nodeName=='VIDEO'?'video':'image'); item.click((e)=>{ dlna_push(e.target.getAttribute('ip'), e.target.getAttribute('url'), e.target.getAttribute('type')); }); DLNA_list.append(item); }); $('body').append(DLNA_list); DLNA_list.css($target.offset()) } }) $('body').on('mouseout',function(e){ let target = e.target; if( ['VIDEO','IMG'].indexOf(target.nodeName)<0 && DLNA_list[0]!=target){ } }) })();