-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
87 lines (78 loc) · 2.58 KB
/
main.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function init() {
var storage = chrome.storage.local;
storage.get('autoRun', function (result) {
if (result.autoRun) {
console.log("Script is running automatically");
script(false);
}
else {
console.log('script is not running automatically');
}
});
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
script(true);
// console.log(sender.tab ?
// "from a content script:" + sender.tab.url :
// "from the extension");
// if (request.greeting == "hello")
// sendResponse({farewell: "goodbye"});
});
}
function script(manual) {
var url = document.URL;
var selector;
var run = function () {
if (url.indexOf('tabs.ultimate-guitar') != -1) {
selector = '.js-tab-content >span';
} else if (url.indexOf('tab4u.com/tabs') != -1) {
selector = '.chords span';
} else {
return;
}
var replaced = 0;
var spans = document.querySelectorAll(selector);
var CHORDS = {
'Ab': 'G#',
'Bb': 'A#',
'Db': 'C#',
'Eb': 'D#',
'Gb': 'F#',
};
var fixedChords = {};
var saveForTest = function (key, value) {
fixedChords[key] = value;
replaced++;
};
var fixChords = function () {
for (var i = 0; i < spans.length; i++) {
var current = spans[i].innerText;
if (CHORDS.hasOwnProperty(current)) {
spans[i].innerText = CHORDS[current];
saveForTest(current, CHORDS[current]);
} else {
for (var bad in CHORDS) {
if (current.indexOf(bad) === 0) {
var fixed = current.replace(bad, CHORDS[bad]);
spans[i].innerText = fixed;
saveForTest(current, fixed);
}
}
}
}
console.log("### Chord Fixer: Replaced " + replaced + " bad chords with good ones!", fixedChords);
};
if (document.readyState === 'complete') {
fixChords();
} else {
var interval = setInterval(function () {
if (document.readyState === 'complete') {
clearInterval(interval);
fixChords();
}
}, 100);
}
};
run();
}
init();