-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js.in
85 lines (61 loc) · 2.75 KB
/
index.js.in
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
const yt_channels_len = yt_channels.length;
var yt_channel_i = 0; // < `yt_channels_len'
var thumnails = [];
var thumb_i = 1;
function thumb_next() {
if (thumb_i <= thumbnails.length) {
++thumb_i;
document.getElementById("channel-avatar").src = thumbnails[thumb_i].url;
}
}
function thumb_prev() {
if (thumb_i >= 0) {
--thumb_i;
document.getElementById("channel-avatar").src = thumbnails[thumb_i].url;
}
}
async function populate_json(ytInitialData, id) {
thumb_i = 1;
thumbnails = ytInitialData.header.c4TabbedHeaderRenderer.avatar.thumbnails;
let channel_avatar_url = thumbnails[thumb_i].url;
// let channel_title = ytInitialData.header.c4TabbedHeaderRenderer.title;
let videos = ytInitialData.contents.twoColumnBrowseResultsRenderer.tabs[1].tabRenderer.content.richGridRenderer.contents;
let videos_i = videos.length < 3 ? videos.length : 3;
document.getElementById("channel-vid-amount").innerText = `channel has at least ${videos_i} videos`;
document.getElementById("channel-avatar").src = channel_avatar_url;
// document.getElementById("channel-name").innerText = channel_title;
document.getElementById("channel-link").href = `https://www.youtube.com/channel/${id}`;
while (videos_i > 0) {
let r = videos[videos_i].richItemRenderer.content.videoRenderer;
document.getElementById(`channel-vid${videos_i}-thumb`).src = r.thumbnail.thumbnails[2].url;
document.getElementById(`channel-vid${videos_i}-desc`).innerText = `${r.title.runs[0].text} [${r.lengthText.simpleText}] (${r.publishedTimeText.simpleText}) (${r.viewCountText.simpleText})`;
--videos_i;
}
}
async function fetch_yt_channel_at() {
let value = document.getElementById("channel-at").value;
yt_channel_i = value;
document.getElementById("channel-at").value = "";
if (yt_channel_i >= yt_channels_len) return;
let channel = yt_channels[yt_channel_i];
document.getElementById("channel-name").innerText = channel.name;
document.getElementById("buttons-count").innerText = `${yt_channel_i}/${yt_channels_len}`;
const res = await fetch(`id/${channel.id}`);
const json = await res.json();
populate_json(json, channel.id);
}
function fetch_yt_channel_at_ev() {
if (event.key === "Enter") {
fetch_yt_channel_at();
}
}
async function fetch_yt_channel() {
if (yt_channel_i >= yt_channels_len) return;
++yt_channel_i;
let channel = yt_channels[yt_channel_i];
document.getElementById("buttons-count").innerText = `${yt_channel_i}/${yt_channels_len}`;
document.getElementById("channel-name").innerText = channel.name;
const res = await fetch(`id/${channel.id}`);
const json = await res.json();
populate_json(json, channel.id);
}