-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pluralsight speed.user.js
71 lines (60 loc) · 2.33 KB
/
pluralsight speed.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// ==UserScript==
// @name PluralSight Wider Speed Range
// @namespace https://nyx.nova.fail/
// @version 1.1
// @description Faster pluralsight video maximum speed
// @author Luna
// @match https://app.pluralsight.com/*
// @grant none
// @run-at document-start
// ==/UserScript==
;(function() {
'use strict'
if (!("onbeforescriptexecute" in document)) {
console.error("Script won't work without support for beforescriptexecute event");
}
document.addEventListener('beforescriptexecute', function(e) {
var src = e.target.src;
if(src && src.length && /embeddable-player/.test(src)){
console.info("Found embeddable player %o", src);
e.preventDefault();
e.stopPropagation();
var xhr = new XMLHttpRequest();
// yay synchronous :/
xhr.open('GET', src, false);
xhr.send('');
var patched = xhr.responseText.replace(".5,.6,.7,.8,.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2", "1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3,3.2,3.4,3.6,3.8,4");
var se = document.createElement('script');
se.type = "text/javascript";
se.text = patched;
document.head.appendChild(se);
}
});
/* React approach:
function updateProps(domElement, newProps) {
var keys = Object.keys(domElement);
var instanceKey = keys.filter(prop =>
/__reactInternalInstance/.test(prop)
)[0];
var instance = domElement[instanceKey];
for (var prop in newProps) {
if (newProps.hasOwnProperty(prop)) {
instance.return.stateNode.props[prop] = newProps[prop];
}
}
instance.return.stateNode.updater.enqueueForceUpdate(
instance.return.stateNode
);
}
function reactInternalInstance(domElement) {
var keys = Object.keys(domElement);
var instanceKey = keys.filter(prop =>
/__reactInternalInstance/.test(prop)
)[0];
return domElement[instanceKey];
}
function reactProps(domElement) {
return reactInternalInstance(domElement).return.stateNode.props;
}
//reactProps($(".player-wrapper").firstChild).setPlaybackSpeed(3.5)*/
})()