您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
movietv.to - you can see full movies without passing to premium / remove func
当前为
- // ==UserScript==
- // ==UserScript==
- // @name remove func
- // @namespace https://example.com
- // @description movietv.to - you can see full movies without passing to premium / remove func
- // @author xxx from reek's aak
- // @version 1.8
- // @license Creative Commons BY-NC-SA
- // @encoding utf-8
- // @homepage example.com
- // @include http*://*
- // @grant unsafeWindow
- // @grant GM_addStyle
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_xmlhttpRequest
- // @grant GM_registerMenuCommand
- // @grant GM_deleteValue
- // @grant GM_listValues
- // @grant GM_getResourceText
- // @grant GM_getResourceURL
- // @grant GM_log
- // @grant GM_openInTab
- // @grant GM_setClipboard
- // @grant GM_info
- // @grant GM_getMetadata
- // @run-at document-start
- // ==/UserScript==
- mtv = {
- debug : {
- log: true,
- dump : false,
- inserted : false
- },
- initialize : function () {
- // Debug
- if (mtv.debug.dump) {
- mtv.log('mtv');
- mtv.log(mtv);
- mtv.log('Local Storage');
- mtv.log(localStorage);
- //localStorage.clear();
- mtv.log('GM Storage');
- mtv.log(mtv.listValues());
- mtv.log('GM API Supported');
- mtv.log(mtv.apiSupported());
- }
- // Stop if user not use Script Manager or not support GM Api
- if (mtv.apiRequires()) {
- // Add Command in Greasemonkey Menu
- mtv.addCommands();
- // Detect and Kill
- mtv.kill();
- }
- },
- uw : unsafeWindow || window,
- isTopWindow : !(window.top != window.self),
- ready : function (fn) {
- window.addEventListener('load', fn);
- },
- contains : function (string, search) {
- return string.indexOf(search) != -1;
- },
- log : function (msg, type) {
- if (mtv.debug.log) {
- if (typeof console === 'undefined') {
- console = unsafeWindow.console;
- }
- console[type || 'info']('movietv: ' + msg);
- }
- },
- apiRequires : function () {
- if (typeof GM_xmlhttpRequest != 'undefined' &&
- typeof GM_setValue != 'undefined' &&
- typeof GM_getValue != 'undefined' &&
- typeof GM_addStyle != 'undefined' &&
- typeof GM_registerMenuCommand != 'undefined') {
- return true;
- } else {
- return false;
- }
- },
- apiSupported : function () {
- if (mtv.isTopWindow) {
- // GM API
- // Doc: http://tinyurl.com/yeefnj5
- return {
- GM_xmlhttpRequest : typeof GM_xmlhttpRequest != 'undefined',
- GM_setValue : typeof GM_setValue != 'undefined',
- GM_getValue : typeof GM_getValue != 'undefined',
- GM_addStyle : typeof GM_addStyle != 'undefined',
- GM_registerMenuCommand : typeof GM_registerMenuCommand != 'undefined',
- GM_info : typeof GM_info != 'undefined',
- GM_getMetadata : typeof GM_getMetadata != 'undefined',
- GM_deleteValue : typeof GM_deleteValue != 'undefined',
- GM_listValues : typeof GM_listValues != 'undefined',
- GM_getResourceText : typeof GM_getResourceText != 'undefined',
- GM_getResourceURL : typeof GM_getResourceURL != 'undefined',
- GM_log : typeof GM_log != 'undefined',
- GM_openInTab : typeof GM_openInTab != 'undefined',
- GM_setClipboard : typeof GM_setClipboard != 'undefined'
- }
- }
- },
- listValues : function () {
- var list = GM_listValues();
- var obj = {};
- for (var i in list) {
- obj[list[i]] = GM_getValue(list[i]);
- }
- return obj;
- },
- getBrowser : function () {
- var ua = navigator.userAgent;
- if (mtv.contains(ua, 'Firefox')) {
- return "Firefox";
- } else if (mtv.contains(ua, 'MSIE')) {
- return "IE";
- } else if (mtv.contains(ua, 'Opera')) {
- return "Opera";
- } else if (mtv.contains(ua, 'Chrome')) {
- return "Chrome";
- } else if (mtv.contains(ua, 'Safari')) {
- return "Safari";
- } else if (mtv.contains(ua, 'Konqueror')) {
- return "Konqueror";
- } else if (mtv.contains(ua, 'PaleMoon')) {
- return "PaleMoon"; // fork firefox
- } else if (mtv.contains(ua, 'Cyberfox')) {
- return "Cyberfox"; // fork firefox
- } else if (mtv.contains(ua, 'SeaMonkey')) {
- return "SeaMonkey"; // fork firefox
- } else if (mtv.contains(ua, 'Iceweasel')) {
- return "Iceweasel"; // fork firefox
- } else {
- return ua;
- }
- },
- getScriptManager : function () {
- if (mtv.apiRequires()) {
- if (typeof GM_info == 'object') {
- // Greasemonkey (Firefox)
- if (typeof GM_info.uuid != 'undefined') {
- return 'Greasemonkey';
- } // Tampermonkey (Chrome/Opera)
- else if (typeof GM_info.scriptHandler != 'undefined') {
- return 'Tampermonkey';
- }
- } else {
- // Scriptish (Firefox)
- if (typeof GM_getMetadata == 'function') {
- return 'Scriptish';
- } // NinjaKit (Safari/Chrome)
- else if (typeof GM_getResourceText == 'undefined' &&
- typeof GM_getResourceURL == 'undefined' &&
- typeof GM_openInTab == 'undefined' &&
- typeof GM_setClipboard == 'undefined') {
- return 'NinjaKit';
- } // GreaseGoogle (Chrome)
- else if (mtv.getBrowser() == 'Chrome' &&
- typeof GM_setClipboard == 'undefined') {
- return 'GreaseGoogle';
- }
- }
- } else {
- mtv.log('No Script Manager detected');
- return false;
- }
- },
- generateID : function () {
- return 'mtv-' + Math.random().toString(36).substring(4);
- },
- generateUUID : function () {
- // Universally Unique IDentifier
- var d = new Date().getTime();
- var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = (d + Math.random() * 16) % 16 | 0;
- d = Math.floor(d / 16);
- return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
- });
- return uuid;
- },
- addCommands : function () {
- },
- notification : function (message, delay) {
- if (mtv.isTopWindow) {
- // animation
- mtv.addStyle('@-webkit-keyframes mtv-fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes mtv-fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}');
- // box
- mtv.addStyle('#mtv-notice {-webkit-animation:mtv-fadeInDown .5s ease; animation:mtv-fadeInDown .5s ease; padding:0px; color:#000; background-color:#fff; display:block; width:100%; position:fixed; z-index:999999; left: 0; top: 0; text-align: left; vertical-align:middle; margin:0; font-size:14px; font-family:arial; border-bottom:5px solid #DF3A32; line-height:1.2; font-variant:small-caps;}'.replace(/;/g, ' !important;'));
- // navbar
- mtv.addStyle('#mtv-notice-navbar {background-color:#DF3A32; padding:0px 20px 0px 62px; background-image:url("' + mtv.iconURL + '"); background-repeat:no-repeat; background-position:20px 3px; background-size:32px;}'.replace(/;/g, ' !important;'));
- // link
- mtv.addStyle('.mtv-navbar-link {padding:0px 5px; line-height:35px; color:#fff; display:inline-block; text-decoration:none; transform:skew(345deg, 0deg); background-color:#DF3A32; border-bottom:3px solid #DF3A32;}'.replace(/;/g, ' !important;'));
- // link:hover
- mtv.addStyle('.mtv-navbar-link:hover {color:#fff; background-color:#000; border-bottom:3px solid #fff; text-decoration:none;}'.replace(/;/g, ' !important;'));
- // close
- mtv.addStyle('#mtv-notice-close {color:#fff; float: right; margin:0px 5px; padding:10px 10px 8px 10px; text-decoration: none;}'.replace(/;/g, ' !important;'));
- // brand
- mtv.addStyle('#mtv-notice .brand {padding-right:20px; color:#fff; font-size:14px;}'.replace(/;/g, ' !important;'));
- // content
- mtv.addStyle('#mtv-notice-content {padding:5px 20px; min-height:72px;}'.replace(/;/g, ' !important;'));
- mtv.addStyle('#mtv-notice-content a {color:#DF3A32; text-decoration:none;}'.replace(/;/g, ' !important;'));
- mtv.addStyle('#mtv-notice-content a:hover {text-decoration:underline;}'.replace(/;/g, ' !important;'));
- // remove
- mtv.removeElement('#mtv-notice');
- // close (manually)
- document.querySelector('#mtv-notice-close').onclick = function () {
- mtv.removeElement('#mtv-notice');
- }
- // close (automatically)
- setTimeout(function () {
- mtv.removeElement('#mtv-notice');
- }, delay);
- }
- },
- setStorage : function () {
- if (localStorage) {
- // Le navigateur supporte le localStorage
- } else {
- //throw 'localStorage non supporté';
- }
- },
- getStorage : function () {
- if (localStorage) {
- // Le navigateur supporte le localStorage
- } else {
- //throw 'localStorage non supporté';
- }
- },
- kill : function () {
- // Detect & Kill
- for (var i in mtv.rules) {
- // Current
- var current = mtv.rules[i];
- // RegExp host
- var reHost = new RegExp(current.host.join('|'), 'i');
- // If domains is
- if (reHost.test(location.host)) {
- // On all statements
- if (current.onAlways) {
- current.onAlways(); // loading
- window.addEventListener('DOMContentLoaded', current.onAlways); // interactive
- window.addEventListener('load', current.onAlways); // complete
- }
- // Add Js / Css / Cookie
- if (current.onStart) {
- current.onStart();
- }
- // When Before Script Executed
- if (current.onBeforeScript) {
- if ('onbeforescriptexecute' in document) { // Mozilla Firefox
- window.addEventListener('beforescriptexecute', current.onBeforeScript);
- }
- } // When After Script Executed
- if (current.onAfterScript) {
- if ('onafterscriptexecute' in document) { // Mozilla Firefox
- window.addEventListener('afterscriptexecute', current.onAfterScript);
- }
- }
- // When Window Load
- if (current.onEnd) {
- window.addEventListener('load', current.onEnd);
- }
- // When DOM Load
- if (current.onLoad) {
- window.addEventListener('DOMContentLoaded', current.onLoad);
- }
- // When DOM AttrModified
- if (current.onAttrModified) {
- window.addEventListener('DOMAttrModified', current.onAttrModified, false);
- }
- // When DOM SubtreeModified
- if (current.onSubtreeModified) {
- window.addEventListener('DOMSubtreeModified', current.onSubtreeModified, false);
- }
- // When DOM Elements are Inserted in Document
- if (current.onInsert) {
- // Mutation Observer
- // Doc: http://tinyurl.com/mxxzee4
- // Support: http://tinyurl.com/nepn7vy
- if (typeof window.MutationObserver != 'undefined' ||
- typeof WebKitMutationObserver != 'undefined') {
- // Mutation Observer
- var MutationObserver = window.MutationObserver || WebKitMutationObserver;
- // Create an observer instance
- var obs = new MutationObserver(function (mutations) {
- // We can safely use `forEach` because we already use mutation
- // observers that are more recent than `forEach`. (source: MDN)
- mutations.forEach(function (mutation) {
- // we want only added nodes
- if (mutation.addedNodes.length) {
- //mtv.log(addedNodes);
- Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
- //mtv.log(addedNode);
- current.onInsert(addedNode);
- });
- }
- });
- });
- // Observer
- obs.observe(document, {
- childList : true,
- subtree : true
- });
- }
- // Mutation Events (Alternative Solution)
- // Doc: http://tinyurl.com/op95rfy
- else {
- window.addEventListener("DOMNodeInserted", function (e) {
- current.onInsert(e.target);
- }, false);
- }
- }
- // When DOM Elements are Removed in Document
- if (current.onRemove) {
- // Mutation Observer
- // Doc: http://tinyurl.com/mxxzee4
- // Support: http://tinyurl.com/nepn7vy
- if (typeof window.MutationObserver != 'undefined' ||
- typeof WebKitMutationObserver != 'undefined') {
- // Mutation Observer
- var MutationObserver = window.MutationObserver || WebKitMutationObserver;
- // Create an observer instance
- var obs = new MutationObserver(function (mutations) {
- // We can safely use `forEach` because we already use mutation
- // observers that are more recent than `forEach`. (source: MDN)
- mutations.forEach(function (mutation) {
- // we want only removed nodes
- if (mutation.removedNodes.length) {
- //mtv.log(mutation.removedNodes);
- Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) {
- //mtv.log(removedNode);
- current.onRemove(removedNode);
- });
- }
- });
- });
- // Observer
- obs.observe(document, {
- childList : true,
- subtree : true
- });
- }
- // Mutation Events (Alternative Solution)
- // Doc: http://tinyurl.com/op95rfy
- else {
- window.addEventListener("DOMNodeRemoved", function (e) {
- current.onRemove(e.target);
- }, false);
- }
- }
- }
- }
- },
- confirmLeave : function () {
- window.onbeforeunload = function () {
- return '';
- };
- },
- stopScript : function (e) {
- e.preventDefault();
- e.stopPropagation();
- },
- innerScript : function (e) {
- return e.target.innerHTML;
- },
- addScript : function (code) {
- // Note: Scriptish no support
- if (document.head) {
- if (/\.js$/.test(code)) { // External
- document.head.appendChild(document.createElement('script')).src = code;
- } else { // Inline
- document.head.appendChild(document.createElement('script')).innerHTML = code.toString().replace(/^function.*{|}$/g, '');
- }
- }
- },
- addElement : function (str) { // ex: div.ads or span#ads
- if (mtv.contains(str, '.')) {
- var str = str.replace('.', ':className:');
- } else if (mtv.contains(str, '#')) {
- var str = str.replace('#', ':id:');
- }
- var arr = str.split(':');
- mtv.addScript('function() { document.documentElement.appendChild(document.createElement("' + arr[0] + '")).' + arr[1] + ' = "' + arr[2] + '"; document.querySelector("' + arr[0] + '").innerHTML = "<br>"; }');
- },
- removeElement : function (o) {
- if (o instanceof HTMLElement) {
- return o.parentNode.removeChild(o);
- } else if (typeof o === "string") {
- var elem = document.querySelectorAll(o);
- for (var i = 0; i < elem.length; i++) {
- elem[i].parentNode.removeChild(elem[i]);
- }
- } else {
- return false;
- }
- },
- getElement : function (selector) {
- var elem = document.querySelector(selector) || false;
- if (elem) {
- return elem;
- } else {
- return false;
- }
- },
- setElement : function (selector, props) {
- var elem = mtv.getElement(selector);
- if (elem) {
- for (p in props) {
- elem.setAttribute(p, props[p]);
- }
- } else {
- return false;
- }
- },
- addStyle : function (css) {
- GM_addStyle(css);
- },
- getStyle : function (elem, prop) {
- if (elem.currentStyle)
- return elem.currentStyle[prop];
- else if (window.getComputedStyle)
- return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);
- },
- getCookie : function (name) {
- var oRegex = new RegExp("(?:; )?" + name + "=([^;]*);?");
- if (oRegex.test(document.cookie)) {
- return decodeURIComponent(RegExp["$1"]);
- } else {
- return null;
- }
- },
- setCookie : function (name, value, time) {
- var time = (time) ? time : 365 * 24 * 60 * 60 * 1000; // 1 year
- var expires = new Date();
- expires.setTime(new Date().getTime() + time);
- document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + expires.toGMTString() + ";path=/";
- },
- decodeURI : function (str) {
- return decodeURIComponent(str);
- },
- encodeURI : function (str) {
- return encodeURIComponent(str);
- },
- encodeHTML : function (str) {
- return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
- },
- decodeHTML : function (str) {
- return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
- },
- allowfullscreen : function (elem, boolen) {
- var boolen = (boolen) ? boolen : true;
- if (typeof elem == 'string') {
- var elem = document.querySelector(elem);
- }
- var parent = elem.parentNode;
- var clone = elem.cloneNode(true);
- var params = clone.querySelector('param[name="allowfullscreen"]') || false;
- if (params) {
- params.value = boolen;
- }
- if (typeof clone.allowfullscreen != 'undefined') {
- clone.allowfullscreen = boolen;
- }
- // Replace
- parent.replaceChild(clone, elem);
- },
- player : { // http://tinyurl.com/pb6fthj
- in : {
- node : null,
- html : null,
- tag : null,
- parent : null
- },
- out : {
- node : null,
- html : null,
- tag : null,
- parent : null
- },
- nameplayer : 'custom',
- swfvars : null,
- options : {
- method : 'replace',
- output : 'embed'
- },
- flashvars : {
- str : null,
- obj : {}
- },
- attributes : {
- wmode : 'opaque',
- quality : 'high',
- bgcolor : '#000000',
- type : 'application/x-shockwave-flash',
- pluginspage : 'http://www.adobe.com/go/getflash',
- allowscriptaccess : 'always', // never / always
- allowfullscreen : true
- },
- get : function (element) {
- if (element instanceof HTMLElement) {
- this.in.node = element;
- } else if (typeof element == 'string') {
- if (/^[#\.]/.test(element)) {
- this.in.node = document.querySelector(element);
- } else {
- this.in.node = document.getElementById(element);
- }
- } else {
- throw 'Not object or embed player or invalid selector';
- }
- this.in.html = this.getHtml(this.in.node);
- this.in.parent = this.in.node.parentNode;
- this.in.tag = this.in.node.tagName;
- this.attributes.id = this.attributes.name = mtv.generateID();
- this.attributes.height = this.in.node.height || this.in.node.clientHeight || '100%';
- this.attributes.width = this.in.node.width || this.in.node.clientWidth || '100%';
- if (/^(object|embed)$/i.test(this.in.tag)) {
- //
- this.attributes.src = this.in.node.src || this.in.node.data || false;
- this.flashvars.str = this.in.node.flashvars || this.in.node.querySelector('param[name="flashvars"]') && this.in.node.querySelector('param[name="flashvars"]').value || false;
- var swfvars = !this.flashvars.str && this.in.node.data && this.in.node.data.split('?', 2) || false;
- //
- if (swfvars) {
- this.attributes.src = swfvars[0];
- this.flashvars.str = swfvars[1];
- }
- this.splitVars();
- this.joinVars();
- }
- //mtv.log(this);
- },
- custom : function (element, attributes, flashvars, options) {
- //
- this.get(element);
- //
- if (typeof attributes == 'object') {
- this.mergeObj(this.attributes, attributes);
- }
- //
- if (typeof flashvars == 'object') {
- if (flashvars.set) {
- this.setVars(flashvars.set);
- }
- if (flashvars.remove) {
- this.removeVars(flashvars.remove);
- }
- }
- //
- if (typeof options == 'object') {
- if (options.method) {
- this.options.method = options.method;
- }
- if (options.output) {
- this.options.output = options.output;
- }
- }
- this.insert();
- //mtv.log(this);
- },
- log : function (a) {
- var a = (a) ? a : '';
- mtv.log('mtv.player ' + a + ' --> ', this);
- },
- addDownloadBtn : function () {
- var btn = document.createElement("p");
- btn.innerHTML = '<strong>Video: </strong> <a href="' + this.attributes.src + '" download>Download</a>';
- this.out.node.parentNode.insertBefore(btn, this.out.node);
- },
- mergeObj : function (obj1, obj2) {
- for (var prop in obj2) {
- obj1[prop] = obj2[prop];
- }
- },
- setVars : function (flashvars) {
- if (typeof flashvars == 'string') {
- this.flashvars.str = flashvars;
- this.splitVars();
- this.joinVars();
- } else if (typeof flashvars == 'object') {
- this.mergeObj(this.flashvars.obj, flashvars);
- this.joinVars();
- this.splitVars();
- }
- },
- removeVars : function (str) {
- var obj = this.flashvars.obj;
- var splits = str.split(',');
- for (var i = 0; i < splits.length; i++) {
- var k = splits[i];
- if (k in obj)
- delete obj[k];
- }
- this.flashvars.obj = obj;
- this.joinVars();
- },
- splitVars : function () {
- var str = mtv.decodeHTML(this.flashvars.str);
- var arr = str.split('&');
- var obj = {};
- for (var i = 0; i < arr.length; i++) {
- var k = arr[i];
- if (k != '' && k.split('=')) {
- var s = k.split('=');
- obj[s[0]] = mtv.decodeURI(s[1]);
- }
- }
- this.flashvars.obj = obj;
- },
- joinVars : function () {
- var obj = this.flashvars.obj;
- var arr = [];
- for (k in obj) {
- arr.push(k + '=' + mtv.encodeURI(obj[k])); // encodeURIComponent
- }
- this.flashvars.str = arr.join('&'); // &
- },
- insert : function () {
- //
- this.swfvars = [this.attributes.src, this.flashvars.str].join('?');
- //
- switch (this.options.output) {
- case 'iframe':
- this.out.node = document.createElement('iframe');
- this.out.node.setAttribute('src', this.swfvars);
- this.out.node.setAttribute('width', this.attributes.width);
- this.out.node.setAttribute('height', this.attributes.height);
- this.out.node.setAttribute('frameborder', 0);
- this.out.node.setAttribute('scrolling', 'no');
- break;
- case 'tab':
- this.log();
- return GM_openInTab(this.swfvars);
- break;
- case 'html5':
- this.out.node = document.createElement('video');
- this.out.node.innerHTML = '<strong>Video not playing ? <a href="' + this.attributes.src + '" download>Download file</a> instead.</strong>';
- for (k in this.attributes) {
- if (k == 'autoplay') { // fix bug duplicate playing on firefox
- this.out.node.onloadstart = function () {
- this.play();
- }
- } else {
- this.out.node.setAttribute(k, this.attributes[k]);
- }
- }
- this.out.node.onerror = function () { // switch to plugin player
- mtv.player.plugin(this, {file:mtv.player.attributes.src});
- };
- break;
- default:
- this.out.node = document.createElement('embed');
- for (k in this.attributes) {
- this.out.node.setAttribute(k, this.attributes[k]);
- }
- if (this.flashvars.str) {
- this.out.node.setAttribute('flashvars', this.flashvars.str);
- }
- }
- //
- this.out.html = this.getHtml(this.out.node);
- this.out.tag = this.out.node.tagName;
- //
- if (this.options.output == 'inner') {
- this.in.node.innerHTML = this.out.html;
- } else { // replace
- this.in.parent.replaceChild(this.out.node, this.in.node);
- }
- //this.addDownloadBtn();
- this.log('done');
- },
- getHtml : function (node) {
- var tmp = document.createElement('div');
- tmp.appendChild(node.cloneNode(true))
- return tmp.innerHTML;
- },
- getMime : function (file) {
- var mime = file.match(/\.(flv|mp4|webm|ogv|ogg|mp3|mpeg|mpg|mkv|avi|mov)$/);
- if (mime && mime.length == 2) {
- return 'video/' + mime[1];
- } else {
- return 'video/mp4';
- }
- },
- plugin : function (id, setup) {
- // Web Player (plugin)
- // VLC : http://tinyurl.com/omlzp39
- // WMP :
- // QT :
- this.get(id);
- this.nameplayer = 'plugin';
- this.attributes.autoplay = setup.autostart || setup.autoplay || false;
- this.attributes.src = setup.file || setup.src;
- this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
- this.attributes.width = setup.width || this.in.node.clientWidth || "100%";
- // Plugins
- var plugins = [];
- if (navigator.plugins && (navigator.plugins.length > 0)) {
- for (var i = 0; i < navigator.plugins.length; i++) {
- plugins.push(navigator.plugins[i].name);
- }
- var plugins = plugins.join('|');
- if (mtv.contains(plugins, 'Windows Media Player')) {
- this.attributes.type = "application/x-mplayer2";
- this.attributes.pluginspage = 'http://www.microsoft.com/Windows/MediaPlayer/';
- } else if (mtv.contains(plugins, 'VLC Web Plugin')) {
- this.attributes.type = "application/x-vlc-plugin";
- this.attributes.pluginspage = "http://www.videolan.org";
- } else if (mtv.contains(plugins, 'QuickTime Plug-in')) {
- this.attributes.type = "video/quicktime";
- this.attributes.pluginspage = "http://www.apple.com/quicktime/download/";
- } else {
- mtv.notification('You need install VLC Web Plugin ! <a href="http://www.videolan.org/vlc/" target="_blank">Install</a>', 30000);
- return false;
- }
- }
- this.options.output = 'embed';
- this.insert();
- },
- html5 : function (id, setup) {
- // Video Tag (html5)
- /* Note:
- https://html5rocks.com/en/tutorials/video/basics/
- http://www.w3schools.com/tags/tag_video.asp
- // Test video
- https://www.joomlacontenteditor.net/images/big_buck_bunny.flv
- http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
- http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm
- http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv
- */
- this.get(id);
- //this.attributes = {};
- this.attributes.id = this.attributes.name = mtv.generateID();
- this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
- this.attributes.width = setup.width || this.in.node.clientWidth || "100%";
- this.attributes.src = setup.file || setup.src;
- this.attributes.type = this.getMime(this.attributes.src);
- this.attributes.controls = 'controls';
- //this.attributes.preload = 'none';
- if (setup.autostart || setup.autoplay) {
- this.attributes.autoplay = 'autoplay';
- }
- this.options.output = 'html5';
- this.insert();
- }
- },
- rules : {
- // --------------------------------------------------------------------------------------------
- // Specific
- // --------------------------------------------------------------------------------------------
- movie_domains : {
- host : ['movietv.to'],
- onAlways : function () {
- mtv.uw.myFunction = function () {};
- // for (i in mtv.uw) { mtv.uw[i] = function () {}; }
- }
- },
- gum_domains : {
- host : ['gum-gum-streaming.com','dpstream.net','jeu.info','jemontremesseins.com'],
- onAlways : function () {
- for (i in mtv.uw) { mtv.uw[i] = function () {}; }
- }
- },
- }
- };
- mtv.initialize();