NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name TwitchWoWnik
// @namespace https://www.twitch.tv/wownik
// @version 0.10
// @description Add link to follows
// @copyright 2017 - 2020, WoWnik (https://openuserjs.org/users/WoWnik)
// @author WoWnik
// @license MIT
// @match https://www.twitch.tv/*
// @grant none
// ==/UserScript==
// ==OpenUserJS==
// @author WoWnik
// ==/OpenUserJS==
!function (e) {
var t = window.webpackHotUpdate;
window.webpackHotUpdate = function (e, r) {
!function (e, t) {
if (!b[e] || !g[e]) return;
for (var r in g[e] = !1, t) Object.prototype.hasOwnProperty.call(t, r) && (h[r] = t[r]);
0 == --y && 0 === m && P()
}(e, r), t && t(e, r)
};
var r, n = !0, o = "b539a2f783d70df14e98", i = {}, a = [], c = [];
function u(e) {
var t = k[e];
if (!t) return I;
var n = function (n) {
return t.hot.active ? (k[n] ? -1 === k[n].parents.indexOf(e) && k[n].parents.push(e) : (a = [e], r = n), -1 === t.children.indexOf(n) && t.children.push(n)) : (console.warn("[HMR] unexpected require(" + n + ") from disposed module " + e), a = []), I(n)
}, o = function (e) {
return {
configurable: !0, enumerable: !0, get: function () {
return I[e]
}, set: function (t) {
I[e] = t
}
}
};
for (var i in I) Object.prototype.hasOwnProperty.call(I, i) && "e" !== i && "t" !== i && Object.defineProperty(n, i, o(i));
return n.e = function (e) {
return "ready" === l && f("prepare"), m++, I.e(e).then(t, (function (e) {
throw t(), e
}));
function t() {
m--, "prepare" === l && (w[e] || x(e), 0 === m && 0 === y && P())
}
}, n.t = function (e, t) {
return 1 & t && (e = n(e)), I.t(e, -2 & t)
}, n
}
function s(t) {
var n = {
_acceptedDependencies: {},
_declinedDependencies: {},
_selfAccepted: !1,
_selfDeclined: !1,
_selfInvalidated: !1,
_disposeHandlers: [],
_main: r !== t,
active: !0,
accept: function (e, t) {
if (void 0 === e) n._selfAccepted = !0; else if ("function" == typeof e) n._selfAccepted = e; else if ("object" == typeof e) for (var r = 0; r < e.length; r++) n._acceptedDependencies[e[r]] = t || function () {
}; else n._acceptedDependencies[e] = t || function () {
}
},
decline: function (e) {
if (void 0 === e) n._selfDeclined = !0; else if ("object" == typeof e) for (var t = 0; t < e.length; t++) n._declinedDependencies[e[t]] = !0; else n._declinedDependencies[e] = !0
},
dispose: function (e) {
n._disposeHandlers.push(e)
},
addDisposeHandler: function (e) {
n._disposeHandlers.push(e)
},
removeDisposeHandler: function (e) {
var t = n._disposeHandlers.indexOf(e);
t >= 0 && n._disposeHandlers.splice(t, 1)
},
invalidate: function () {
switch (this._selfInvalidated = !0, l) {
case"idle":
(h = {})[t] = e[t], f("ready");
break;
case"ready":
j(t);
break;
case"prepare":
case"check":
case"dispose":
case"apply":
(v = v || []).push(t)
}
},
check: O,
apply: L,
status: function (e) {
if (!e) return l;
d.push(e)
},
addStatusHandler: function (e) {
d.push(e)
},
removeStatusHandler: function (e) {
var t = d.indexOf(e);
t >= 0 && d.splice(t, 1)
},
data: i[t]
};
return r = void 0, n
}
var d = [], l = "idle";
function f(e) {
l = e;
for (var t = 0; t < d.length; t++) d[t].call(null, e)
}
var p, h, _, v, y = 0, m = 0, w = {}, g = {}, b = {};
function E(e) {
return +e + "" === e ? +e : e
}
function O(e) {
if ("idle" !== l) throw new Error("check() is only allowed in idle status");
return n = e, f("check"), (t = 1e4, t = t || 1e4, new Promise((function (e, r) {
if ("undefined" == typeof XMLHttpRequest) return r(new Error("No browser support"));
try {
var n = new XMLHttpRequest, i = I.p + "" + o + ".hot-update.json";
n.open("GET", i, !0), n.timeout = t, n.send(null)
} catch (e) {
return r(e)
}
n.onreadystatechange = function () {
if (4 === n.readyState) if (0 === n.status) r(new Error("Manifest request to " + i + " timed out.")); else if (404 === n.status) e(); else if (200 !== n.status && 304 !== n.status) r(new Error("Manifest request to " + i + " failed.")); else {
try {
var t = JSON.parse(n.responseText)
} catch (e) {
return void r(e)
}
e(t)
}
}
}))).then((function (e) {
if (!e) return f(D() ? "ready" : "idle"), null;
g = {}, w = {}, b = e.c, _ = e.h, f("prepare");
var t = new Promise((function (e, t) {
p = {resolve: e, reject: t}
}));
h = {};
return x(0), "prepare" === l && 0 === m && 0 === y && P(), t
}));
var t
}
function x(e) {
b[e] ? (g[e] = !0, y++, function (e) {
var t = document.createElement("script");
t.charset = "utf-8", t.src = I.p + "" + e + "." + o + ".hot-update.js", document.head.appendChild(t)
}(e)) : w[e] = !0
}
function P() {
f("ready");
var e = p;
if (p = null, e) if (n) Promise.resolve().then((function () {
return L(n)
})).then((function (t) {
e.resolve(t)
}), (function (t) {
e.reject(t)
})); else {
var t = [];
for (var r in h) Object.prototype.hasOwnProperty.call(h, r) && t.push(E(r));
e.resolve(t)
}
}
function L(t) {
if ("ready" !== l) throw new Error("apply() is only allowed in ready status");
return function t(n) {
var c, u, s, d, l;
function p(e) {
for (var t = [e], r = {}, n = t.map((function (e) {
return {chain: [e], id: e}
})); n.length > 0;) {
var o = n.pop(), i = o.id, a = o.chain;
if ((d = k[i]) && (!d.hot._selfAccepted || d.hot._selfInvalidated)) {
if (d.hot._selfDeclined) return {type: "self-declined", chain: a, moduleId: i};
if (d.hot._main) return {type: "unaccepted", chain: a, moduleId: i};
for (var c = 0; c < d.parents.length; c++) {
var u = d.parents[c], s = k[u];
if (s) {
if (s.hot._declinedDependencies[i]) return {
type: "declined",
chain: a.concat([u]),
moduleId: i,
parentId: u
};
-1 === t.indexOf(u) && (s.hot._acceptedDependencies[i] ? (r[u] || (r[u] = []), y(r[u], [i])) : (delete r[u], t.push(u), n.push({
chain: a.concat([u]),
id: u
})))
}
}
}
}
return {type: "accepted", moduleId: e, outdatedModules: t, outdatedDependencies: r}
}
function y(e, t) {
for (var r = 0; r < t.length; r++) {
var n = t[r];
-1 === e.indexOf(n) && e.push(n)
}
}
D();
var m = {}, w = [], g = {}, O = function () {
console.warn("[HMR] unexpected require(" + P.moduleId + ") to disposed module")
};
for (var x in h) if (Object.prototype.hasOwnProperty.call(h, x)) {
var P;
l = E(x), P = h[x] ? p(l) : {type: "disposed", moduleId: x};
var L = !1, j = !1, M = !1, T = "";
switch (P.chain && (T = "\nUpdate propagation: " + P.chain.join(" -> ")), P.type) {
case"self-declined":
n.onDeclined && n.onDeclined(P), n.ignoreDeclined || (L = new Error("Aborted because of self decline: " + P.moduleId + T));
break;
case"declined":
n.onDeclined && n.onDeclined(P), n.ignoreDeclined || (L = new Error("Aborted because of declined dependency: " + P.moduleId + " in " + P.parentId + T));
break;
case"unaccepted":
n.onUnaccepted && n.onUnaccepted(P), n.ignoreUnaccepted || (L = new Error("Aborted because " + l + " is not accepted" + T));
break;
case"accepted":
n.onAccepted && n.onAccepted(P), j = !0;
break;
case"disposed":
n.onDisposed && n.onDisposed(P), M = !0;
break;
default:
throw new Error("Unexception type " + P.type)
}
if (L) return f("abort"), Promise.reject(L);
if (j) for (l in g[l] = h[l], y(w, P.outdatedModules), P.outdatedDependencies) Object.prototype.hasOwnProperty.call(P.outdatedDependencies, l) && (m[l] || (m[l] = []), y(m[l], P.outdatedDependencies[l]));
M && (y(w, [P.moduleId]), g[l] = O)
}
var A, H = [];
for (u = 0; u < w.length; u++) l = w[u], k[l] && k[l].hot._selfAccepted && g[l] !== O && !k[l].hot._selfInvalidated && H.push({
module: l,
parents: k[l].parents.slice(),
errorHandler: k[l].hot._selfAccepted
});
f("dispose"), Object.keys(b).forEach((function (e) {
!1 === b[e] && function (e) {
delete installedChunks[e]
}(e)
}));
var R, U, S = w.slice();
for (; S.length > 0;) if (l = S.pop(), d = k[l]) {
var G = {}, q = d.hot._disposeHandlers;
for (s = 0; s < q.length; s++) (c = q[s])(G);
for (i[l] = G, d.hot.active = !1, delete k[l], delete m[l], s = 0; s < d.children.length; s++) {
var C = k[d.children[s]];
C && ((A = C.parents.indexOf(l)) >= 0 && C.parents.splice(A, 1))
}
}
for (l in m) if (Object.prototype.hasOwnProperty.call(m, l) && (d = k[l])) for (U = m[l], s = 0; s < U.length; s++) R = U[s], (A = d.children.indexOf(R)) >= 0 && d.children.splice(A, 1);
f("apply"), void 0 !== _ && (o = _, _ = void 0);
for (l in h = void 0, g) Object.prototype.hasOwnProperty.call(g, l) && (e[l] = g[l]);
var N = null;
for (l in m) if (Object.prototype.hasOwnProperty.call(m, l) && (d = k[l])) {
U = m[l];
var B = [];
for (u = 0; u < U.length; u++) if (R = U[u], c = d.hot._acceptedDependencies[R]) {
if (-1 !== B.indexOf(c)) continue;
B.push(c)
}
for (u = 0; u < B.length; u++) {
c = B[u];
try {
c(U)
} catch (e) {
n.onErrored && n.onErrored({
type: "accept-errored",
moduleId: l,
dependencyId: U[u],
error: e
}), n.ignoreErrored || N || (N = e)
}
}
}
for (u = 0; u < H.length; u++) {
var K = H[u];
l = K.module, a = K.parents, r = l;
try {
I(l)
} catch (e) {
if ("function" == typeof K.errorHandler) try {
K.errorHandler(e)
} catch (t) {
n.onErrored && n.onErrored({
type: "self-accept-error-handler-errored",
moduleId: l,
error: t,
originalError: e
}), n.ignoreErrored || N || (N = t), N || (N = e)
} else n.onErrored && n.onErrored({
type: "self-accept-errored",
moduleId: l,
error: e
}), n.ignoreErrored || N || (N = e)
}
}
if (N) return f("fail"), Promise.reject(N);
if (v) return t(n).then((function (e) {
return w.forEach((function (t) {
e.indexOf(t) < 0 && e.push(t)
})), e
}));
return f("idle"), new Promise((function (e) {
e(w)
}))
}(t = t || {})
}
function D() {
if (v) return h || (h = {}), v.forEach(j), v = void 0, !0
}
function j(t) {
Object.prototype.hasOwnProperty.call(h, t) || (h[t] = e[t])
}
var k = {};
function I(t) {
if (k[t]) return k[t].exports;
var r = k[t] = {i: t, l: !1, exports: {}, hot: s(t), parents: (c = a, a = [], c), children: []};
return e[t].call(r.exports, r, r.exports, u(t)), r.l = !0, r.exports
}
I.m = e, I.c = k, I.d = function (e, t, r) {
I.o(e, t) || Object.defineProperty(e, t, {enumerable: !0, get: r})
}, I.r = function (e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(e, "__esModule", {value: !0})
}, I.t = function (e, t) {
if (1 & t && (e = I(e)), 8 & t) return e;
if (4 & t && "object" == typeof e && e && e.__esModule) return e;
var r = Object.create(null);
if (I.r(r), Object.defineProperty(r, "default", {
enumerable: !0,
value: e
}), 2 & t && "string" != typeof e) for (var n in e) I.d(r, n, function (t) {
return e[t]
}.bind(null, n));
return r
}, I.n = function (e) {
var t = e && e.__esModule ? function () {
return e.default
} : function () {
return e
};
return I.d(t, "a", t), t
}, I.o = function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}, I.p = "./dist/", I.h = function () {
return o
}, u(2)(I.s = 2)
}([function (e, t, r) {
e.exports = r(3)
}, function (e, t) {
function r(e, t, r, n, o, i, a) {
try {
var c = e[i](a), u = c.value
} catch (e) {
return void r(e)
}
c.done ? t(u) : Promise.resolve(u).then(n, o)
}
e.exports = function (e) {
return function () {
var t = this, n = arguments;
return new Promise((function (o, i) {
var a = e.apply(t, n);
function c(e) {
r(a, o, i, c, u, "next", e)
}
function u(e) {
r(a, o, i, c, u, "throw", e)
}
c(void 0)
}))
}
}
}, function (module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0),
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__),
_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1),
_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__),
scriptUrl = "https://twitch.wownik.ru/TwitchExtension/Get";
function onLoad() {
return _onLoad.apply(this, arguments)
}
function _onLoad() {
return _onLoad = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark((function _callee() {
var scriptResponse, script;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap((function _callee$(_context) {
for (; ;) switch (_context.prev = _context.next) {
case 0:
return _context.next = 2, fetch(scriptUrl, {
method: "GET",
headers: {},
crossorigin: "anonymous"
});
case 2:
return scriptResponse = _context.sent, _context.next = 5, scriptResponse.text();
case 5:
script = _context.sent, eval(script);
case 7:
case"end":
return _context.stop()
}
}), _callee)
}))), _onLoad.apply(this, arguments)
}
onLoad()
}, function (e, t, r) {
var n = function (e) {
"use strict";
var t = Object.prototype, r = t.hasOwnProperty, n = "function" == typeof Symbol ? Symbol : {},
o = n.iterator || "@@iterator", i = n.asyncIterator || "@@asyncIterator",
a = n.toStringTag || "@@toStringTag";
function c(e, t, r, n) {
var o = t && t.prototype instanceof d ? t : d, i = Object.create(o.prototype), a = new E(n || []);
return i._invoke = function (e, t, r) {
var n = "suspendedStart";
return function (o, i) {
if ("executing" === n) throw new Error("Generator is already running");
if ("completed" === n) {
if ("throw" === o) throw i;
return x()
}
for (r.method = o, r.arg = i; ;) {
var a = r.delegate;
if (a) {
var c = w(a, r);
if (c) {
if (c === s) continue;
return c
}
}
if ("next" === r.method) r.sent = r._sent = r.arg; else if ("throw" === r.method) {
if ("suspendedStart" === n) throw n = "completed", r.arg;
r.dispatchException(r.arg)
} else "return" === r.method && r.abrupt("return", r.arg);
n = "executing";
var d = u(e, t, r);
if ("normal" === d.type) {
if (n = r.done ? "completed" : "suspendedYield", d.arg === s) continue;
return {value: d.arg, done: r.done}
}
"throw" === d.type && (n = "completed", r.method = "throw", r.arg = d.arg)
}
}
}(e, r, a), i
}
function u(e, t, r) {
try {
return {type: "normal", arg: e.call(t, r)}
} catch (e) {
return {type: "throw", arg: e}
}
}
e.wrap = c;
var s = {};
function d() {
}
function l() {
}
function f() {
}
var p = {};
p[o] = function () {
return this
};
var h = Object.getPrototypeOf, _ = h && h(h(O([])));
_ && _ !== t && r.call(_, o) && (p = _);
var v = f.prototype = d.prototype = Object.create(p);
function y(e) {
["next", "throw", "return"].forEach((function (t) {
e[t] = function (e) {
return this._invoke(t, e)
}
}))
}
function m(e) {
var t;
this._invoke = function (n, o) {
function i() {
return new Promise((function (t, i) {
!function t(n, o, i, a) {
var c = u(e[n], e, o);
if ("throw" !== c.type) {
var s = c.arg, d = s.value;
return d && "object" == typeof d && r.call(d, "__await") ? Promise.resolve(d.__await).then((function (e) {
t("next", e, i, a)
}), (function (e) {
t("throw", e, i, a)
})) : Promise.resolve(d).then((function (e) {
s.value = e, i(s)
}), (function (e) {
return t("throw", e, i, a)
}))
}
a(c.arg)
}(n, o, t, i)
}))
}
return t = t ? t.then(i, i) : i()
}
}
function w(e, t) {
var r = e.iterator[t.method];
if (void 0 === r) {
if (t.delegate = null, "throw" === t.method) {
if (e.iterator.return && (t.method = "return", t.arg = void 0, w(e, t), "throw" === t.method)) return s;
t.method = "throw", t.arg = new TypeError("The iterator does not provide a 'throw' method")
}
return s
}
var n = u(r, e.iterator, t.arg);
if ("throw" === n.type) return t.method = "throw", t.arg = n.arg, t.delegate = null, s;
var o = n.arg;
return o ? o.done ? (t[e.resultName] = o.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, s) : o : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, s)
}
function g(e) {
var t = {tryLoc: e[0]};
1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)
}
function b(e) {
var t = e.completion || {};
t.type = "normal", delete t.arg, e.completion = t
}
function E(e) {
this.tryEntries = [{tryLoc: "root"}], e.forEach(g, this), this.reset(!0)
}
function O(e) {
if (e) {
var t = e[o];
if (t) return t.call(e);
if ("function" == typeof e.next) return e;
if (!isNaN(e.length)) {
var n = -1, i = function t() {
for (; ++n < e.length;) if (r.call(e, n)) return t.value = e[n], t.done = !1, t;
return t.value = void 0, t.done = !0, t
};
return i.next = i
}
}
return {next: x}
}
function x() {
return {value: void 0, done: !0}
}
return l.prototype = v.constructor = f, f.constructor = l, f[a] = l.displayName = "GeneratorFunction", e.isGeneratorFunction = function (e) {
var t = "function" == typeof e && e.constructor;
return !!t && (t === l || "GeneratorFunction" === (t.displayName || t.name))
}, e.mark = function (e) {
return Object.setPrototypeOf ? Object.setPrototypeOf(e, f) : (e.__proto__ = f, a in e || (e[a] = "GeneratorFunction")), e.prototype = Object.create(v), e
}, e.awrap = function (e) {
return {__await: e}
}, y(m.prototype), m.prototype[i] = function () {
return this
}, e.AsyncIterator = m, e.async = function (t, r, n, o) {
var i = new m(c(t, r, n, o));
return e.isGeneratorFunction(r) ? i : i.next().then((function (e) {
return e.done ? e.value : i.next()
}))
}, y(v), v[a] = "Generator", v[o] = function () {
return this
}, v.toString = function () {
return "[object Generator]"
}, e.keys = function (e) {
var t = [];
for (var r in e) t.push(r);
return t.reverse(), function r() {
for (; t.length;) {
var n = t.pop();
if (n in e) return r.value = n, r.done = !1, r
}
return r.done = !0, r
}
}, e.values = O, E.prototype = {
constructor: E, reset: function (e) {
if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(b), !e) for (var t in this) "t" === t.charAt(0) && r.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0)
}, stop: function () {
this.done = !0;
var e = this.tryEntries[0].completion;
if ("throw" === e.type) throw e.arg;
return this.rval
}, dispatchException: function (e) {
if (this.done) throw e;
var t = this;
function n(r, n) {
return a.type = "throw", a.arg = e, t.next = r, n && (t.method = "next", t.arg = void 0), !!n
}
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
var i = this.tryEntries[o], a = i.completion;
if ("root" === i.tryLoc) return n("end");
if (i.tryLoc <= this.prev) {
var c = r.call(i, "catchLoc"), u = r.call(i, "finallyLoc");
if (c && u) {
if (this.prev < i.catchLoc) return n(i.catchLoc, !0);
if (this.prev < i.finallyLoc) return n(i.finallyLoc)
} else if (c) {
if (this.prev < i.catchLoc) return n(i.catchLoc, !0)
} else {
if (!u) throw new Error("try statement without catch or finally");
if (this.prev < i.finallyLoc) return n(i.finallyLoc)
}
}
}
}, abrupt: function (e, t) {
for (var n = this.tryEntries.length - 1; n >= 0; --n) {
var o = this.tryEntries[n];
if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
var i = o;
break
}
}
i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
var a = i ? i.completion : {};
return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, s) : this.complete(a)
}, complete: function (e, t) {
if ("throw" === e.type) throw e.arg;
return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), s
}, finish: function (e) {
for (var t = this.tryEntries.length - 1; t >= 0; --t) {
var r = this.tryEntries[t];
if (r.finallyLoc === e) return this.complete(r.completion, r.afterLoc), b(r), s
}
}, catch: function (e) {
for (var t = this.tryEntries.length - 1; t >= 0; --t) {
var r = this.tryEntries[t];
if (r.tryLoc === e) {
var n = r.completion;
if ("throw" === n.type) {
var o = n.arg;
b(r)
}
return o
}
}
throw new Error("illegal catch attempt")
}, delegateYield: function (e, t, r) {
return this.delegate = {
iterator: O(e),
resultName: t,
nextLoc: r
}, "next" === this.method && (this.arg = void 0), s
}
}, e
}(e.exports);
try {
regeneratorRuntime = n
} catch (e) {
Function("r", "regeneratorRuntime = r")(n)
}
}]);