您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add hooks to the events on the InstaSynch page
当前为
// ==UserScript== // @name InstaSynchP Event Hooks // @namespace InstaSynchP // @description Add hooks to the events on the InstaSynch page // @version 1.0.4 // @author Zod- // @source https://github.com/Zod-/InstaSynchP-Event-Hooks // @license GPL-3.0 // @include http://*.instasynch.com/* // @include http://instasynch.com/* // @include http://*.instasync.com/* // @include http://instasync.com/* // @grant none // @run-at document-start // @require https://gf.qytechs.cn/scripts/2857-jquery-bind-first/code/jquerybind-first.js // @require https://gf.qytechs.cn/scripts/5647-instasynchp-library/code/InstaSynchP%20Library.js // ==/UserScript== function EventBase(version) { "use strict"; this.version = version; } function eventBaseRef() { return window.plugins.eventBase; } EventBase.prototype.executeOnceCore = function () { "use strict"; var hooks = { 'sendcmd':{'loc':'global','name':'SendCmd'}, 'onConnecting':{'loc':'global','name':'Connecting'}, 'onConnected':{'loc':'global','name':'Connected'}, 'onJoining':{'loc':'global','name':'Joining'}, 'onJoined':{'loc':'global','name':'Joined'}, 'onReconnecting':{'loc':'global','name':'Reconnecting'}, 'onReconnect':{'loc':'global','name':'Reconnect'}, 'reconnectFailed':{'loc':'global','name':'ReconnectFailed'}, 'onError':{'loc':'global','name':'Error'}, 'onDisconnect':{'loc':'global','name':'Disconnect'}, 'requestPartialPage':{'loc':'global','name':'RequestPartialPage'}, 'loadRoomObj':{'loc':'global','name':'LoadRoom'}, 'addMessage':{'name':'AddMessage'}, 'addUser':{'name':'AddUser'}, 'removeUser':{'name':'RemoveUser'}, 'makeLeader':{'name':'MakeLeader'}, 'renameUser':{'name':'RenameUser'}, 'addVideo':{'name':'AddVideo'}, 'removeVideo':{'name':'RemoveVideo'}, 'moveVideo':{'name':'MoveVideo'}, 'playVideo':{'name':'PlayVideo'}, 'resume':{'name':'Resume'}, 'pause':{'name':'Pause'}, 'seekTo':{'name':'SeekTo'}, 'purge':{'name':'Purge'}, 'skips':{'name':'Skips'}, 'loadPlaylist':{'name':'LoadPlaylist'}, 'loadUserlist':{'name':'LoadUserlist'}, 'createPoll':{'name':'CreatePoll'}, 'addPollVote':{'name':'AddPollVote'}, 'removePollVote':{'name':'RemovePollVote'}, 'endPoll':{'name':'EndPoll'} }; function createHookFunction(ev) { function defaultFunction() { events.fire(ev.name, arguments, true); ev.old.apply(undefined, arguments); events.fire(ev.name, arguments, false); } //custom hooks switch (ev.name) { case 'RemoveUser': return function () { var args = [].slice.call(arguments); args.push(findUserId(args[0])); //user defaultFunction.apply(undefined, args); }; case 'RemoveVideo': return function () { var indexOfVid = window.getVideoIndex(arguments[0].info), video = window.playlist[indexOfVid], args = [].slice.call(arguments); args.push(video); args.push(indexOfVid); defaultFunction.apply(undefined, args); }; case 'MoveVideo': return function () { var args = [].slice.call(arguments); args.push(window.getVideoIndex(args[0]).info); //old position defaultFunction.apply(undefined, args); }; } return defaultFunction; } for (var hook in hooks) { if (hooks.hasOwnProperty(hook)) { var ev = hooks[hook]; if (ev.location && ev.location === 'global') { ev.old = window.global[hook]; window.global[hook] = createHookFunction(ev); } else { ev.old = window[hook]; window[hook] = createHookFunction(ev); } } } window.addEventListener("message", function (event) { try { var parsed = JSON.parse(event.data); if (parsed.action) { //own events events.fire(parsed.action, [parsed.data], false); } //all events.fire('PageMessage', [parsed], false); } catch (ignore) {} }, false); }; EventBase.prototype.preConnect = function () { "use strict"; var oldPlayerDestroy = window.video.destroy; $("#chat input").bindFirst('keypress', function (event) { events.fire('InputKeypress[{0}]'.format(event.keyCode), [event, $("#chat input").val()], false); if (event.keyCode === 13 && $("#chat input").val() !== '') { events.fire('SendChat', [event, $("#chat input").val()], false); } }); $("#chat input").bindFirst('keydown', function (event) { events.fire('InputKeydown[{0}]'.format(event.keyCode), [event, $("#chat input").val()], false); }); $("#chat input").bindFirst('keyup', function (event) { events.fire('InputKeyup[{0}]'.format(event.keyCode), [event, $("#chat input").val()], false); }); window.video.destroy = function () { events.fire('PlayerDestroy', [], true); oldPlayerDestroy(); events.fire('PlayerDestroy', [], false); }; }; window.plugins = window.plugins || {}; window.plugins.eventBase = new EventBase("1.0.4");
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址