From debc11931fe1102f17852fd082d0dac50d477ce9 Mon Sep 17 00:00:00 2001 From: zrose584 <57181548+zrose584@users.noreply.github.com> Date: Wed, 7 Oct 2020 19:03:22 +0200 Subject: add comments.js --- youtube/static/js/comments.js | 20 ++++++++++++++++++++ youtube/static/js/common.js | 12 +++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 youtube/static/js/comments.js (limited to 'youtube/static/js') 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..40bc132 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,15 @@ function getDefaultTranscriptTrackIdx() { return textTracks.length - 1; } +function doXhr(url, callback=null) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.onload = (e) => {callback(e.currentTarget.response)}; + xhr.send(); + return xhr; +} + + window.addEventListener('DOMContentLoaded', function() { cur_track_idx = getDefaultTranscriptTrackIdx(); -}); +}); \ No newline at end of file -- cgit v1.2.3 From 205665f138afa3e6b1242bbe5dd433c0991f5fe6 Mon Sep 17 00:00:00 2001 From: zrose584 <57181548+zrose584@users.noreply.github.com> Date: Fri, 9 Oct 2020 18:49:50 +0200 Subject: doXhr: check xhr.status --- youtube/static/js/common.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'youtube/static/js') diff --git a/youtube/static/js/common.js b/youtube/static/js/common.js index 40bc132..2997f61 100644 --- a/youtube/static/js/common.js +++ b/youtube/static/js/common.js @@ -40,7 +40,11 @@ function getDefaultTranscriptTrackIdx() { function doXhr(url, callback=null) { var xhr = new XMLHttpRequest(); xhr.open("GET", url); - xhr.onload = (e) => {callback(e.currentTarget.response)}; + 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; } -- cgit v1.2.3