aboutsummaryrefslogtreecommitdiffstats
path: root/youtube/static/js
diff options
context:
space:
mode:
authorJames Taylor <28744867+user234683@users.noreply.github.com>2020-10-11 18:52:34 -0700
committerGitHub <noreply@github.com>2020-10-11 18:52:34 -0700
commit2cfc6dec39ccdcc0c5fe2eea73f47b7040e51833 (patch)
tree7bad2fcf78184195bab8472acace235377ef7eed /youtube/static/js
parente182cf82839c7de137b05ba347fed7767d554020 (diff)
parent643a0e8659b7358bb2c06cc707e36b82b949c912 (diff)
downloadyt-local-2cfc6dec39ccdcc0c5fe2eea73f47b7040e51833.tar.lz
yt-local-2cfc6dec39ccdcc0c5fe2eea73f47b7040e51833.tar.xz
yt-local-2cfc6dec39ccdcc0c5fe2eea73f47b7040e51833.zip
Merge pull request #23 from zrose584/comments_js
add comments.js for comment replies
Diffstat (limited to 'youtube/static/js')
-rw-r--r--youtube/static/js/comments.js20
-rw-r--r--youtube/static/js/common.js16
2 files changed, 35 insertions, 1 deletions
diff --git a/youtube/static/js/comments.js b/youtube/static/js/comments.js
new file mode 100644
index 0000000..845ed3e
--- /dev/null
+++ b/youtube/static/js/comments.js
@@ -0,0 +1,20 @@
+function onClickReplies(e) {
+ var details = e.target.parentElement;
+ // e.preventDefault();
+ console.log("loading replies ..");
+ doXhr(details.getAttribute("src") + "&slim=1", (html) => {
+ var div = details.querySelector(".comment_page");
+ div.innerHTML = html;
+ });
+ details.removeEventListener('click', onClickReplies);
+}
+
+window.addEventListener('DOMContentLoaded', function() {
+ QA("details.replies").forEach(details => {
+ details.addEventListener('click', onClickReplies);
+ details.addEventListener('auxclick', (e) => {
+ if (e.target.parentElement !== details) return;
+ if (e.button == 1) window.open(details.getAttribute("src"));
+ });
+ });
+}); \ No newline at end of file
diff --git a/youtube/static/js/common.js b/youtube/static/js/common.js
index 687c6fa..2997f61 100644
--- a/youtube/static/js/common.js
+++ b/youtube/static/js/common.js
@@ -1,4 +1,5 @@
Q = document.querySelector.bind(document);
+QA = document.querySelectorAll.bind(document);
function text(msg) { return document.createTextNode(msg); }
function clearNode(node) { while (node.firstChild) node.removeChild(node.firstChild); }
function toTimestamp(seconds) {
@@ -36,6 +37,19 @@ function getDefaultTranscriptTrackIdx() {
return textTracks.length - 1;
}
+function doXhr(url, callback=null) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", url);
+ xhr.onload = (e) => {
+ let ok = xhr.status >= 200 && xhr.status < 300;
+ if (ok) callback(e.currentTarget.response);
+ else alert(`${xhr.responseURL} status code: ${xhr.status}`);
+ }
+ xhr.send();
+ return xhr;
+}
+
+
window.addEventListener('DOMContentLoaded', function() {
cur_track_idx = getDefaultTranscriptTrackIdx();
-});
+}); \ No newline at end of file