您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Basic function that are needed by several scripts use with @require
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/5647/51269/InstaSynchP%20Library.js
- // ==UserScript==
- // @name InstaSynchP Library
- // @namespace InstaSynchP
- // @description Basic function that are needed by several scripts use with @require
- // @version 1.1.8
- // @author Zod-
- // @source https://github.com/Zod-/InstaSynchP-Library
- // @license MIT
- // @include *://instasync.com/r/*
- // @include *://*.instasync.com/r/*
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- //http://joquery.com/2012/string-format-for-javascript
- if (typeof String.prototype.format !== 'function') {
- String.prototype.format = function () {
- // The string containing the format items (e.g. "{0}")
- // will and always has to be the first argument.
- var theString = this,
- i,
- regEx;
- // start with the second argument (i = 1)
- for (i = 0; i < arguments.length; i += 1) {
- // "gm" = RegEx options for Global search (more than one instance)
- // and for Multiline search
- regEx = new RegExp("\\{" + (i) + "\\}", "gm");
- theString = theString.replace(regEx, arguments[i]);
- }
- return theString;
- };
- }
- //http://stackoverflow.com/a/646643
- if (typeof String.prototype.startsWith !== 'function') {
- String.prototype.startsWith = function (str) {
- return this.slice(0, str.length) == str;
- };
- }
- if (typeof String.prototype.endsWith != 'function') {
- String.prototype.endsWith = function (str) {
- return this.slice(-str.length) == str;
- };
- }
- //http://stackoverflow.com/a/1978419
- if (typeof String.prototype.contains !== 'function') {
- String.prototype.contains = function (it) {
- return this.indexOf(it) !== -1;
- };
- }
- if (typeof Array.prototype.contains !== 'function') {
- Array.prototype.contains = function (it) {
- return this.indexOf(it) !== -1;
- };
- }
- function isUdef(obj) {
- "use strict";
- return typeof obj === 'undefined';
- }
- function commonPrefix(array) {
- "use strict";
- if (typeof array === 'undefined' || array.length === 0) {
- return;
- }
- var sorted = array.slice(0).sort(function (a, b) {
- return a.toLowerCase().localeCompare(b.toLowerCase());
- }),
- first = sorted[0],
- firstLower = first.toLowerCase(),
- last = sorted[sorted.length - 1].toLowerCase(),
- L = first.length,
- i = 0;
- while (i < L && firstLower.charAt(i) === last.charAt(i)) i++;
- return first.substring(0, i);
- }
- function isBlackname(username) {
- "use strict";
- if (typeof username !== 'string') {
- return false;
- }
- return username.match(/^(?:[A-Za-z0-9]|(?:[\-_](?![\-_]))){5,16}$/) !== null;
- }
- function isGreyname(username) {
- "use strict";
- if (typeof username !== 'string') {
- return false;
- }
- return username.match(/^(?:[A-Za-z0-9]|(?:[\-_](?![\-_]))){1,16}$/) !== null;
- }
- function htmlDecode(value) {
- "use strict";
- return $('<div/>').html(value).text();
- }
- function activeVideoIndex() {
- "use strict";
- return $('#playlist .active').index();
- }
- function findUserId(id) {
- "use strict";
- var i, users = window.room.userlist.users;
- for (i = 0; i < users.length; i += 1) {
- if (id === users[i].id) {
- return users[i];
- }
- }
- return undefined;
- }
- function findUserUsername(name) {
- "use strict";
- name = name.toLowerCase();
- var i, users = window.room.userlist.users;
- for (i = 0; i < users.length; i += 1) {
- if (name === users[i].username.toLowerCase()) {
- return users[i];
- }
- }
- return undefined;
- }
- function videojs() {
- "use strict";
- return $('.video-js')[0];
- }
- function sendcmd(cmd, opts) {
- "use strict";
- window.room.sendcmd(cmd, opts);
- }
- function reloadPlayer() {
- "use strict";
- if (window.room.video) {
- try {
- window.room.video.destroy();
- } catch (ignore) {}
- }
- sendcmd('reload', null);
- }
- function addSystemMessage(message) {
- "use strict";
- window.room.addMessage({
- username: ""
- }, message, 'text-info');
- }
- function addErrorMessage(message) {
- "use strict";
- window.room.addMessage({
- username: ""
- }, message, 'text-danger');
- }
- function videoInfoEquals(a, b) {
- "use strict";
- if (!a || !b) {
- return false;
- }
- return (a.provider && a.provider === b.provider &&
- a.mediaType && a.mediaType === b.mediaType &&
- a.id && a.id === b.id);
- }
- function scrollDown() {
- "use strict";
- $('#chat_messages').scrollTop($('#chat_messages')[0].scrollHeight);
- }
- function isMod(username) {
- "use strict";
- if (isUdef(username)) {
- return window.room.user.isMod;
- } else {
- return findUserUsername(username).permissions > 0;
- }
- }
- function thisUser() {
- "use strict";
- return room.user.userinfo;
- }
- function logger() {
- "use strict";
- return window.plugins.logger.log;
- }
- function createNavTab(op) {
- "use strict";
- return $('<li>').append(
- $('<a>', {
- class: 'active_tooltip',
- 'data-original-title': op.tooltip,
- href: op.tab,
- 'data-toggle': 'tab',
- rel: 'tooltip',
- 'data-placement': op.tooltipPlacement || 'bottom'
- }).append(
- $('<i>', {
- class: op.class
- })
- ).tooltip()
- );
- }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址