From f0ad501efd30f8b69840a83ac1baff663374a836 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 15 Dec 2023 11:59:42 +0000 Subject: [PATCH 001/283] add license --- pwa/service-worker.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pwa/service-worker.js b/pwa/service-worker.js index 2ce1c1d8..d34e1859 100644 --- a/pwa/service-worker.js +++ b/pwa/service-worker.js @@ -1,3 +1,5 @@ +// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later + 'use strict'; var cacheVersion = 1; @@ -31,4 +33,6 @@ this.addEventListener('fetch', event => { }) ); } -}); \ No newline at end of file +}); + +// @license-end \ No newline at end of file From aa05f9b07807bef01c55450d895e9684ccadc970 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 15 Dec 2023 13:36:05 +0000 Subject: [PATCH 002/283] add licanse tag --- html/landing.ejs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html/landing.ejs b/html/landing.ejs index 164341da..0ee8ca2d 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -1,6 +1,7 @@ From c090a439ae0c6436c5081823ce5ee3c2a62a8ff3 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:09:33 +0000 Subject: [PATCH 011/283] make it 100 :3 --- css/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/app.js b/css/app.js index a9c47dfb..a477be5d 100644 --- a/css/app.js +++ b/css/app.js @@ -98,7 +98,7 @@ function fadeInElements() { window.addEventListener('scroll', fadeInElements); document.addEventListener('fullscreenchange', fadeInElements); -setInterval(fadeInElements, 500); +setInterval(fadeInElements, 100); function jumpToTime(e) { e.preventDefault(); From 9f222a62e9a48a3f09419e05622b9270c2ea53b7 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:13:23 +0000 Subject: [PATCH 012/283] Bump version :3 --- html/poketube.ejs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index a24e5679..bba5d074 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1853,10 +1853,14 @@ window.addEventListener("unload", cleanup) } <% } %> - - - + + + + + + + <% if(secure) { %> From d14956fe51776c52ff0d20defe384416aca73182 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:26:56 +0000 Subject: [PATCH 013/283] add matomo here :3 --- css/app.js | 79 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 11 deletions(-) diff --git a/css/app.js b/css/app.js index a477be5d..ffcd3035 100644 --- a/css/app.js +++ b/css/app.js @@ -202,19 +202,76 @@ function fetchUrls(urls) { }); } -/* -// Fetch channel URLs -const channelUrls = document.querySelectorAll('a[href*="/channel?id="]'); -fetchUrls(channelUrls); + function anondocumenttitle(message, times) { + var hash = CryptoJS.SHA256(message); -// Fetch download URLs -const downloadUrls = document.querySelectorAll('a[href*="/download?v="]'); -fetchUrls(downloadUrls); + return hash.toString(CryptoJS.enc.Hex); + } + + if (location.hostname === "poketube.fun") { + if (typeof Ashley === "undefined") { + var Ashley = {}; + } + Ashley.dntEnabled = function (dnt, ua) { + "use strict"; + var dntStatus = + dnt || + navigator.doNotTrack || + window.doNotTrack || + navigator.msDoNotTrack; + var userAgent = ua || navigator.userAgent; + var anomalousWinVersions = [ + "Windows NT 6.1", + "Windows NT 6.2", + "Windows NT 6.3", + ]; + var fxMatch = userAgent.match(/Firefox\/(\d+)/); + var ieRegEx = /MSIE|Trident/i; + var isIE = ieRegEx.test(userAgent); + var platform = userAgent.match(/Windows.+?(?=;)/g); + if (isIE && typeof Array.prototype.indexOf !== "function") { + return false; + } else if (fxMatch && parseInt(fxMatch[1], 10) < 32) { + dntStatus = "Unspecified"; + } else if ( + isIE && + platform && + anomalousWinVersions.indexOf(platform.toString()) !== -1 + ) { + dntStatus = "Unspecified"; + } else { + dntStatus = { 0: "Disabled", 1: "Enabled" }[dntStatus] || "Unspecified"; + } + return dntStatus === "Enabled" ? true : false; + }; + // only load if DNT is not enabled + if (Ashley && !Ashley.dntEnabled()) { + var _paq = (window._paq = window._paq || []); + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push([ + "setDocumentTitle", + anondocumenttitle(document.domain, 5) + + "/" + + anondocumenttitle(document.title, 5), + ]); + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(["trackPageView"]); + _paq.push(["enableLinkTracking"]); + (function () { + var u = "//data.poketube.fun/"; + _paq.push(["setTrackerUrl", u + "matomo.php"]); + _paq.push(["setSiteId", "2"]); + var d = document, + g = d.createElement("script"), + s = d.getElementsByTagName("script")[0]; + g.async = true; + g.src = u + "matomo.js"; + s.parentNode.insertBefore(g, s); + })(); + } + } -// fetch videos urls -const urls = document.querySelectorAll('a[href*="/watch?v="]'); -fetchUrls(urls); -*/ var popupMenu = document.getElementById("popupMenu"); var loopOption = document.getElementById("loopOption"); var speedOption = document.getElementById("speedOption"); From cfcc417fa551c28372b750ea167867f7fbe7bf04 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:27:40 +0000 Subject: [PATCH 014/283] add matomo to app.js :3 --- html/poketube.ejs | 63 ++--------------------------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index bba5d074..36700954 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1857,72 +1857,13 @@ window.addEventListener("unload", cleanup) - + <% if(secure) { %> - - - - + From 7fc4c75ae0d20b592fe7057f0f9d91c5d7f99c29 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:37:17 +0000 Subject: [PATCH 015/283] add GPC --- css/app.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/css/app.js b/css/app.js index ffcd3035..854f1f34 100644 --- a/css/app.js +++ b/css/app.js @@ -207,6 +207,12 @@ function fetchUrls(urls) { return hash.toString(CryptoJS.enc.Hex); } + + if(navigator.globalPrivacyControl) { + var gpcValue = navigator?.globalPrivacyControl + } else { + var gpcValue = false + } if (location.hostname === "poketube.fun") { if (typeof Ashley === "undefined") { @@ -245,6 +251,7 @@ function fetchUrls(urls) { return dntStatus === "Enabled" ? true : false; }; // only load if DNT is not enabled + if(!gpcValue) { if (Ashley && !Ashley.dntEnabled()) { var _paq = (window._paq = window._paq || []); /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ @@ -271,6 +278,7 @@ function fetchUrls(urls) { })(); } } + } var popupMenu = document.getElementById("popupMenu"); var loopOption = document.getElementById("loopOption"); From 9ef1bed5f2d8c2d925cdc5cdce4f58bc7f733e34 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 17 Dec 2023 12:41:12 +0000 Subject: [PATCH 016/283] Bump version :3 --- html/poketube.ejs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 36700954..2ab387f2 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -29,29 +29,29 @@ --> +<% if(secure) { %><% } %><% if(!secure) { %><% } %> + <% if (e === false) { %> - + <% } %> <% if (!e) { %> - - + - <% } %> + <% } %> - <%=inv_vid.title%> | PokeTube From 50d3f3ffc00eb75a66b4c266dc28c9a34d1e18ef Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 16:16:38 +0000 Subject: [PATCH 021/283] add new loop gui :3 --- css/app.js | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/css/app.js b/css/app.js index 854f1f34..c616bf92 100644 --- a/css/app.js +++ b/css/app.js @@ -298,14 +298,24 @@ function fetchUrls(urls) { popupMenu.style.display = "none"; } }); - + + var loopedIndicator = document.getElementById("loopedIndicator"); + + loopedIndicator.style.display = "none"; // Initially hide the indicator + loopOption.addEventListener("click", function() { - video.loop = !video.loop; - if (video.loop) { - alert("Looped!"); - } else { - alert("unlooped!") - } + var looped = video.loop; + video.loop = !looped; + + // Update the looped indicator popup + loopedIndicator.textContent = looped ? "Unlooped!" : "Looped!"; + loopedIndicator.style.display = "block"; + + // Hide the indicator after 2 seconds + setTimeout(function() { + loopedIndicator.style.display = "none"; + }, 2000); + }); speedOption.addEventListener("click", function() { From 75a08f67547e3e30e39d0f7a577760235e98e2b8 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 16:20:08 +0000 Subject: [PATCH 022/283] add new loop gui :3 --- html/poketube.ejs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/html/poketube.ejs b/html/poketube.ejs index 2ab387f2..25d874f3 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -281,6 +281,25 @@ a[data-onclick="jump_to_time"] { font-size: 15px; color: #777; } + + +#loopedIndicator { + display: none; + position: fixed; + bottom: 10px; + left: 10px; + background-color: #fff; + color: #000; + padding: 14px; + border-radius: 14px; + opacity: 0.8; + z-index: 999; + width: 13em; + text-align: center; + font-family: var(--text-font-primary); + font-weight: 600; + font-stretch: ultra-expanded; +} .comment-form :-moz-placeholder { /* Firefox 18- */ @@ -684,6 +703,7 @@ background-color: #0000;
+
From c92384e95a8946d129b37d8717b3409c87c33d16 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 17:29:05 +0000 Subject: [PATCH 023/283] add looped easter egg :3 --- css/app.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/css/app.js b/css/app.js index c616bf92..8376a976 100644 --- a/css/app.js +++ b/css/app.js @@ -307,14 +307,23 @@ function fetchUrls(urls) { var looped = video.loop; video.loop = !looped; + // Update the looped indicator popup - loopedIndicator.textContent = looped ? "Unlooped!" : "Looped!"; - loopedIndicator.style.display = "block"; + var displaySpecialText = Math.random() < 0.5; + + // Update the looped indicator popup + if (displaySpecialText) { + var specialText = looped ? "Unlooped >.<" : "Looped~ :3 >~<"; + loopedIndicator.textContent = specialText; + } else { + loopedIndicator.textContent = looped ? "Unlooped!" : "Looped!"; + } + loopedIndicator.style.display = "block"; // Hide the indicator after 2 seconds setTimeout(function() { loopedIndicator.style.display = "none"; - }, 2000); + }, 1000); }); From d2c833134678155cd11e6e6b3ed8ad4081992a30 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 17:31:05 +0000 Subject: [PATCH 024/283] update version :3 --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 25d874f3..dfd09079 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1877,7 +1877,7 @@ window.addEventListener("unload", cleanup) - + From 10b97559608a7eb17875f9129a9edf4c30b56e21 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 20:34:46 +0000 Subject: [PATCH 025/283] fix the opacity lol --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index dfd09079..a07d11e2 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -292,7 +292,7 @@ a[data-onclick="jump_to_time"] { color: #000; padding: 14px; border-radius: 14px; - opacity: 0.8; + opacity: 1.0; z-index: 999; width: 13em; text-align: center; From 271a3db05bb5d6de2a655a7bd49ddaee6a491eb7 Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 20:41:27 +0000 Subject: [PATCH 026/283] make it 2000 :3 --- css/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/app.js b/css/app.js index 8376a976..d57affb9 100644 --- a/css/app.js +++ b/css/app.js @@ -323,7 +323,7 @@ function fetchUrls(urls) { // Hide the indicator after 2 seconds setTimeout(function() { loopedIndicator.style.display = "none"; - }, 1000); + }, 2000); }); From ad99b7b0b78722611320bcb8aa1da4743e41a03f Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 20 Dec 2023 20:43:21 +0000 Subject: [PATCH 027/283] New version :3 --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index a07d11e2..9ed5ebb7 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1877,7 +1877,7 @@ window.addEventListener("unload", cleanup) - + From c8f3c68d3495d94c6b10ca34ef0d4cbf99e0bfdf Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 22 Dec 2023 16:35:07 +0000 Subject: [PATCH 028/283] add new ui for channel :3 --- html/channel.ejs | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/html/channel.ejs b/html/channel.ejs index f2869bd6..00f4cf53 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -310,7 +310,37 @@ text-transform:uppercase; <% if(!isMobile) { %> + + + <% } %> -
+

<%=j.Channel?.Metadata.Name%> @@ -593,7 +623,7 @@ color:#ea9999 !important; <% } %>

-

<%=subs%> subscribers

+

<%=subs%> subscribers

<% try { %> @@ -604,7 +634,7 @@ color:#ea9999 !important;

Error: <%= error.message %>

<% } %> -
From 9464f9d86e1d8bda484eee7aff6d4e9b9d2c5609 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 22 Dec 2023 16:40:34 +0000 Subject: [PATCH 029/283] woah responsive n stuff --- html/channel.ejs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/html/channel.ejs b/html/channel.ejs index 00f4cf53..80dcac81 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -333,6 +333,16 @@ text-transform:uppercase; height: auto; max-height: 150px; } + + @media screen and (max-width: 1230px) { + .channel-info > .avatar > img { + margin-left: 1em; +} + .name { + margin-left: 5em !important; + } +} + .subscribe-button:hover { animation: animateBg 2s infinite linear; background-color: #fff; From f288b859191625328d0bf4cb96880cda86d969dc Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 22 Dec 2023 16:59:30 +0000 Subject: [PATCH 030/283] remove the yt kids badge lol --- html/channel.ejs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/html/channel.ejs b/html/channel.ejs index 80dcac81..e23f0106 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -1,4 +1,4 @@ -<% try { %> + <% try { %> - - - PokeTube - + + + + Poke - No interenet!1!1!1!111! +
-

Oh no ;-;

-

Looks like you're offline, check your internet connection and try again.

+

Oh nyo >~<

+

Connectivity to the server has been lost qwq
Seems like you're offline - u check your internet connection and try again


+

or u can just view poke!'s status page yk~

+
+
- - \ No newline at end of file + From 48ed191b57b9397d6d0273f7c6f15e91e64181b0 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 25 Dec 2023 15:50:00 +0000 Subject: [PATCH 039/283] add rewind :3 --- html/rewind.ejs | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 html/rewind.ejs diff --git a/html/rewind.ejs b/html/rewind.ejs new file mode 100644 index 00000000..6f413469 --- /dev/null +++ b/html/rewind.ejs @@ -0,0 +1,81 @@ + + + + + + Poke Rewind + + + + + + + + + + +
+ + +
+
+ + + + + From 7f0460464683d6478772cc092030f5ab494ab12c Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 25 Dec 2023 15:51:54 +0000 Subject: [PATCH 040/283] add rewind :3 --- src/libpoketube/init/pages-static.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libpoketube/init/pages-static.js b/src/libpoketube/init/pages-static.js index 31467383..1802a4e3 100644 --- a/src/libpoketube/init/pages-static.js +++ b/src/libpoketube/init/pages-static.js @@ -67,6 +67,10 @@ module.exports = function (app, config, renderTemplate) { } }); + app.get("/rewind", function (req, res) { + renderTemplate(res, req, "rewind.ejs"); + }); + app.get("/domains", function (req, res) { renderTemplate(res, req, "domains.ejs"); }); From 975098101247b398ad9aca8dba16432b3ab80fd0 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 25 Dec 2023 15:58:21 +0000 Subject: [PATCH 041/283] add licanse tag :3 --- html/rewind.ejs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/html/rewind.ejs b/html/rewind.ejs index 6f413469..31473ac9 100644 --- a/html/rewind.ejs +++ b/html/rewind.ejs @@ -6,7 +6,7 @@ Poke Rewind - + @@ -49,32 +49,29 @@
From 9225a806b2c25d3bd7c9cb42c07acb2f9248889f Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 25 Dec 2023 17:54:18 +0000 Subject: [PATCH 042/283] add tags again :3 --- html/poketube.ejs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index bcd38a9e..f5568806 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1309,12 +1309,12 @@ display: block; !important;" autoplay controls>
- <% if (Array.isArray(video?.Tags.Tag)) { %> + <% if (Array.isArray(inv_vid?.keywords)) { %>
Tags
+ + <% if (q.includes("suicide")) { %> + +
+

You are not alone

+

+ if you or somebody you know is having a bad time, talk to somebody today. +

+

+ if you are from the US, call 988. if you arent see this url. +

dont worry, ur not alone <3 and you are really important btw! +

+ +
+ <% } %> + <% if (!tab) { %> @@ -509,7 +538,7 @@ font-weight: 1000;
- <% if (continuation !== "1") { %> + <% if (Number(continuation) >= "2") { %>

First Page

@@ -518,7 +547,7 @@ font-weight: 1000;

<% } %> - <% if (continuation == "1" || !continuation) { %> + <% if (Number(continuation) <= "0" || !continuation) { %>

Next Page @@ -575,8 +604,7 @@ font-weight: 1000;

- - - \ No newline at end of file + + \ No newline at end of file From bd0807d4a88c4abed658011bad5def6cfdd4e38e Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 26 Dec 2023 07:47:35 +0000 Subject: [PATCH 044/283] add 404 back --- src/libpoketube/init/pages-404-and-main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libpoketube/init/pages-404-and-main.js b/src/libpoketube/init/pages-404-and-main.js index 66b0ea9c..695d1c75 100644 --- a/src/libpoketube/init/pages-404-and-main.js +++ b/src/libpoketube/init/pages-404-and-main.js @@ -133,7 +133,10 @@ module.exports = function (app, config, renderTemplate) { if (isvld && req.params.v.length >= 10) { return res.redirect(`/watch?v=${req.params.v}`); } else { - return res.redirect("/") + return renderTemplate(res, req, "404.ejs", { + isOldWindows, + random + }); } } From 400a0ab107d9ef6cb3c596e4696574a79dfa6bdf Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 26 Dec 2023 07:53:38 +0000 Subject: [PATCH 045/283] add new button --- html/search-web-main.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/search-web-main.ejs b/html/search-web-main.ejs index a7b91ea1..0a931151 100644 --- a/html/search-web-main.ejs +++ b/html/search-web-main.ejs @@ -220,7 +220,7 @@ - +
- PokeMaps - My Account - Privacy - Git @@ -319,4 +319,4 @@ if (window.location.hostname === "poketube.fun" && config.plausible_enabled == t
- + \ No newline at end of file From 3624f153d72d8038c5d393546f6e3cf6eb59b865 Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 26 Dec 2023 08:14:03 +0000 Subject: [PATCH 046/283] fix margin --- html/search-web-main.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/search-web-main.ejs b/html/search-web-main.ejs index 0a931151..32cfd950 100644 --- a/html/search-web-main.ejs +++ b/html/search-web-main.ejs @@ -220,7 +220,7 @@ - +
- PokeMaps - My Account - Privacy - Git From 290597aff97539a61633de24f39010a6bc5b17df Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 26 Dec 2023 14:47:45 +0000 Subject: [PATCH 047/283] add im feeling lucky :3 --- html/search-web-main.ejs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/html/search-web-main.ejs b/html/search-web-main.ejs index 32cfd950..fa07d4a6 100644 --- a/html/search-web-main.ejs +++ b/html/search-web-main.ejs @@ -215,13 +215,20 @@
- - - - - -
- PokeMaps - My Account - Privacy - Git
@@ -231,7 +238,6 @@ - + - - + +
\ No newline at end of file From 11ff62ae7277329176c9bb113c02b37e163456f1 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 29 Dec 2023 19:46:19 +0000 Subject: [PATCH 071/283] fix cache --- html/poketube.ejs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/html/poketube.ejs b/html/poketube.ejs index b5fa14aa..88343bc4 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1685,6 +1685,10 @@ checkbox.addEventListener('change', function(e) { } } }); + +var cacheVersion = 1; + +caches.delete('offline-cache' + cacheVersion) if (/[?&]autoplay=/.test(location.search)) { checkbox.checked = true; @@ -2948,6 +2952,9 @@ function jumpToTime(e) { }, 250); } + var cacheVersion = 1; + + caches.delete('offline-cache' + cacheVersion) // Handle click events for time-based links const timeLinks = document.querySelectorAll('a[data-onclick="jump_to_time"]'); From 3ac8fbb5953b6b58512b845f1a49a6f82fcf1ab8 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 29 Dec 2023 19:46:55 +0000 Subject: [PATCH 072/283] lol --- html/search.ejs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/html/search.ejs b/html/search.ejs index 245fb3d2..db073503 100644 --- a/html/search.ejs +++ b/html/search.ejs @@ -604,7 +604,11 @@ font-weight: 1000;
- + + \ No newline at end of file From 04626f4b91763e40336c875fa6a0d1a4a777e39e Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 29 Dec 2023 19:48:02 +0000 Subject: [PATCH 073/283] Update html/discover.ejs --- html/discover.ejs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/html/discover.ejs b/html/discover.ejs index 7e870969..665b7995 100644 --- a/html/discover.ejs +++ b/html/discover.ejs @@ -1325,7 +1325,9 @@ links.forEach(link => { From b4bc484056082aa67e374a42b7cbeda0d189d9df Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 13:12:01 +0000 Subject: [PATCH 074/283] lol --- src/libpoketube/init/pages-static.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/libpoketube/init/pages-static.js b/src/libpoketube/init/pages-static.js index 1802a4e3..243d82ab 100644 --- a/src/libpoketube/init/pages-static.js +++ b/src/libpoketube/init/pages-static.js @@ -99,11 +99,6 @@ module.exports = function (app, config, renderTemplate) { res.sendFile("manifest.json", { root: location_pwa }); }); - app.get("/service-worker.js", function (req, res) { - res.sendFile("service-worker.js", { root: location_pwa }); - }); - - app.get("/customize", function (req, res) { const tab = req.query.tab; From a91feb61afdf1674e5f97d138ea3388868d1bbaa Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 15:12:18 +0000 Subject: [PATCH 075/283] Update html/landing.ejs --- html/landing.ejs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/html/landing.ejs b/html/landing.ejs index b76e0270..8e3dcc11 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -109,9 +109,22 @@ body {
From d55e146e73926a15de4c3ce9cd65c4e3c6db76fc Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 15:21:00 +0000 Subject: [PATCH 076/283] fix cache :3 --- html/poketube.ejs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 88343bc4..3ad77982 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1686,9 +1686,21 @@ checkbox.addEventListener('change', function(e) { } }); -var cacheVersion = 1; - -caches.delete('offline-cache' + cacheVersion) + if ('serviceWorker' in navigator) { + navigator.serviceWorker.getRegistrations().then(function(registrations) { + for (let registration of registrations) { + registration.unregister(); + } + }); + if ('caches' in window) { + caches.keys().then(function(cacheNames) { + cacheNames.forEach(function(cacheName) { + caches.delete(cacheName); + }); + }); +} + +} if (/[?&]autoplay=/.test(location.search)) { checkbox.checked = true; From 7cb8ec404a8443a774edb4a12a707889cefbd17e Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 15:22:25 +0000 Subject: [PATCH 077/283] fix cache :3 --- html/search-web.ejs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/html/search-web.ejs b/html/search-web.ejs index dcd9812b..baf72121 100644 --- a/html/search-web.ejs +++ b/html/search-web.ejs @@ -467,6 +467,20 @@ Web - + \ No newline at end of file From bd41b300d600ac8725b40199b0b372c95bdf9ec3 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 15:23:15 +0000 Subject: [PATCH 078/283] yesh --- html/discover.ejs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/html/discover.ejs b/html/discover.ejs index 665b7995..451da369 100644 --- a/html/discover.ejs +++ b/html/discover.ejs @@ -1325,9 +1325,21 @@ links.forEach(link => { From eca7aae5901d3ef29ecd47ff05f70619891a2b66 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 17:14:36 +0000 Subject: [PATCH 079/283] new stuff woahhahwhawhhah --- html/channel.ejs | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/html/channel.ejs b/html/channel.ejs index d5d4c58b..54f21687 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -1361,39 +1361,38 @@ width: fit-content; <% if (tab === "about") { %> -
-

About

+ + <% if (!isMobile) { %> + + +
+ + +
+

About

<% if (cinv.descriptionHtml) { %>

<%-cinv.descriptionHtml%>

<% } %> - <% if (wiki.extract_html) { %> -

From the web

+
+ + <% } %> + + <% if (isMobile) { %> + -
-

- <%-wiki.extract_html%>

- -
-
+
+

About

-

+ <% if (cinv.descriptionHtml) { %> - From wikipedia under CC-BY-SA 3.0 -

-
- - -

- <% } %> -
- YouTube removed the about tab ;_; fix for this soon lol -
+

<%-cinv.descriptionHtml%>

+ <% } %> + <% } %>
<% } %> From dbcbe2984d43f606d70f38db7d0534acda9efdc2 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 17:25:03 +0000 Subject: [PATCH 080/283] fix some goofy ahh issue yesyes --- html/channel.ejs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/html/channel.ejs b/html/channel.ejs index 54f21687..40923a16 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -1163,8 +1163,17 @@ width: fit-content; Next Page
<% } %> + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + <% } %> From d022c58fc73113897a4e67e372cdf9c2cecfda7d Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 19:04:33 +0000 Subject: [PATCH 081/283] add matrix stuff --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4f74c210..824817b0 100644 --- a/README.md +++ b/README.md @@ -131,11 +131,16 @@ The port can be changed with the config file you downloaded, just change the `se see [here](https://codeberg.org/Ashley/poke/src/branch/main/january) :3 just uhh change the url in config.json to ur image proxy -## PokeTube community! +## Poke community! -Join the community on [revolt](https://rvlt.gg/poketube) :3 +Join the community on [revolt](https://rvlt.gg/poketube) or [matrix](https://matrix.to/#/#poke:vern.cc) :3 ## The Legal Stuff (boring tbh) +the main parts of the project is Under GPL-3.0-OR-LATER :3 + +see the each sections LICENSE tho!! +Copyleft 2021-202x Poke Project + [Code Of conduct](https://codeberg.org/Ashley/poketube/src/branch/main/CODE_OF_CONDUCT.md) From b26b1f3f5f617bd8a269e8fbb770523fcaffa798 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 19:34:32 +0000 Subject: [PATCH 082/283] yeahs --- html/search.ejs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/html/search.ejs b/html/search.ejs index db073503..c9d2b416 100644 --- a/html/search.ejs +++ b/html/search.ejs @@ -604,9 +604,21 @@ font-weight: 1000;
- From 520c06ecf30501dc793d55f56b1853117672bb2c Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 30 Dec 2023 19:50:59 +0000 Subject: [PATCH 083/283] add do a barrel roll woah --- html/search.ejs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/html/search.ejs b/html/search.ejs index c9d2b416..c9e2512d 100644 --- a/html/search.ejs +++ b/html/search.ejs @@ -344,11 +344,22 @@ video[counter].classList.add("shake"); <% } %> - <% if (q != "do the harlem shake") { %> - - <% if (q != "want you gone") { %> <% if (q != "portal 2 ending") { %> <% if (q != "credits") { %> <% if (q != "glados") { %> + <% if (q == "do a barrel roll") { %> + + + <% } %> + + <% if (q != "do the harlem shake") { %> <% if (q != "want you gone") { %> <% if (q != "portal 2 ending") { %> <% if (q != "credits") { %> <% if (q != "glados") { %> <% if (q != "something") { %> @@ -356,8 +367,8 @@ video[counter].classList.add("shake"); <% } %> - <% } %> - <% } %> + <% } %><% } %> + <% } %> <% } %> @@ -604,7 +615,9 @@ font-weight: 1000; - From 53b2da3ce281dddf705b4734a85ca27912c8f899 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 06:20:30 +0000 Subject: [PATCH 084/283] add margin lol --- html/poketube.ejs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/html/poketube.ejs b/html/poketube.ejs index 3ad77982..66e83aa6 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -127,6 +127,13 @@ border-radius: 10px; padding-left: 25px; } +.icon.ion.ion-md-checkmark-circle.loaded { + margin-left: 3px; +} +.icon.ion.ion-md-checkmark-circle { + margin-left: 3px; +} + @media (max-width: 413px) { .comments-area .comment-list .single-comment h5 { font-size: 12px; From 806c3c50934fa4dde7cf83642b12d2bf507146b8 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 08:52:00 +0000 Subject: [PATCH 085/283] fix urls --- src/libpoketube/init/pages-api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libpoketube/init/pages-api.js b/src/libpoketube/init/pages-api.js index dda350d8..bcaee8c1 100644 --- a/src/libpoketube/init/pages-api.js +++ b/src/libpoketube/init/pages-api.js @@ -114,7 +114,7 @@ app.get("/avatars/:v", async function (req, res) { var format = "mp3"; } - const url = `https://tube-proxy.poketube.fun/proxy/media/${v}/${q}`; + const url = `https://tube.kuylar.dev/proxy/media/${v}/${q}`; res.redirect(url); }); @@ -126,7 +126,7 @@ app.get("/avatars/:v", async function (req, res) { const l = req.query.h; try { - let url = `https://yt.sudovanilla.com/api/v1/captions/${id}?label=${l}`; + let url = `https://vid.puffyan.us/api/v1/captions/${id}?label=${l}`; let f = await fetch(url); const body = await f.text(); From d5ffc2cfa8c4fc79ae648720fd00d2defda2b38b Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 09:43:21 +0000 Subject: [PATCH 086/283] add this --- css/app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/css/app.js b/css/app.js index d57affb9..cf5c440a 100644 --- a/css/app.js +++ b/css/app.js @@ -215,6 +215,8 @@ function fetchUrls(urls) { } if (location.hostname === "poketube.fun") { + var img = document.createElement('img');img.src = 'https://data.poketube.fun/misc/user/logo-header.png?matomo'; img.style.display = 'none';document.body.appendChild(img); + if (typeof Ashley === "undefined") { var Ashley = {}; } From affd921abc8c89eb6db727c3f367d3e280b52787 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 09:45:16 +0000 Subject: [PATCH 087/283] Bump version :3 --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 66e83aa6..f49fdd8e 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1900,7 +1900,7 @@ window.addEventListener("unload", cleanup) - + From ead0e6ded7859ae2650ef017d637aeb0d0222dc9 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 22:21:17 +0000 Subject: [PATCH 088/283] mhm --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index f49fdd8e..bc3fa7cc 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1493,7 +1493,7 @@ display: block; !important;" autoplay controls> Top Comments of this video!! :3


-<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %> +<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %>
Go To Top
From dfbb3abe52b9835850fc8f92d15f65e5c58ac8f1 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 22:24:02 +0000 Subject: [PATCH 089/283] bruh --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index bc3fa7cc..67e62a5a 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1493,7 +1493,7 @@ display: block; !important;" autoplay controls> Top Comments of this video!! :3


-<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %> +<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %>
Go To Top
From 6cca6bb88e55e1f9ae54e9a7afa1df77673b4a88 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 31 Dec 2023 22:27:35 +0000 Subject: [PATCH 090/283] lmao --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 67e62a5a..b5d65bc4 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1493,7 +1493,7 @@ display: block; !important;" autoplay controls> Top Comments of this video!! :3


-<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %> +<% inv.comments.forEach(x =>{ %>
<% if (!x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %><% if (x.authorIsChannelOwner) { %>

<%- x.author%><% if (x.verified) { %><% } %>

<%- x.publishedText %>

<% } %>

<%- x.contentHtml %>

<% if (x.likeCount === 0) { %> | <% } else { %> <%= convert(x.likeCount) %> | <% } %><% if(x.creatorHeart) { %> <% } %>

<% }) %>
Go To Top
From aa8de8f7fe40fbd6bd59ef9befd0b93d82ab5cc8 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 08:22:40 +0000 Subject: [PATCH 091/283] remove snow --- html/landing.ejs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/html/landing.ejs b/html/landing.ejs index 8e3dcc11..0f84cbdb 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -75,8 +75,7 @@ body { -
-
+

<%- random %>

From be83f1e24c60e865d4eb8d2213fd7abc55736175 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 09:19:48 +0000 Subject: [PATCH 092/283] add new font :3 --- css/poketube.css | 61 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/css/poketube.css b/css/poketube.css index 183ddfb1..05d11df0 100644 --- a/css/poketube.css +++ b/css/poketube.css @@ -18,8 +18,59 @@ along with this program. If not, see https://www.gnu.org/licenses/. */ -@font-face{font-family:'Kanit';font-style:italic;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-100-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-100-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-100-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-100-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-100-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-100-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-100-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-100-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-200-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-200-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-200-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-200-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-200-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-200-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-200-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-200-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-300-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-300-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-300-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-300-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-300-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-300-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-300-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-300-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-400-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-400-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-400-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-400-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-400-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-400-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-400-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-400-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-500-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-500-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-500-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-500-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-500-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-500-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-500-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-500-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-600-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-600-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-600-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-600-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-600-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-600-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-600-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-600-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-700-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-700-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-700-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-700-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-700-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-700-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-700-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-700-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-800-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-800-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-800-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-800-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-800-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-800-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-800-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-800-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:italic;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-900-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-900-italic.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:italic;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-900-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-900-italic.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:italic;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-900-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-900-italic.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:italic;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-900-italic.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-900-italic.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-100-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-100-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-100-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-100-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-100-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-100-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:100;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-100-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-100-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-200-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-200-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-200-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-200-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-200-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-200-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:200;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-200-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-200-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-300-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-300-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-300-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-300-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-300-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-300-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:300;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-300-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-300-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-400-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-400-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-400-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-400-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-400-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-400-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:400;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-400-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-400-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-500-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-500-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-500-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-500-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-500-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-500-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:500;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-500-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-500-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-600-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-600-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-600-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-600-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-600-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-600-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:600;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-600-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-600-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-700-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-700-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-700-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-700-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-700-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-700-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:700;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-700-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-700-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-800-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-800-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-800-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-800-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-800-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-800-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:800;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-800-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-800-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Kanit';font-style:normal;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-900-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-thai-900-normal.woff") format('woff');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:'Kanit';font-style:normal;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-900-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-900-normal.woff") format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Kanit';font-style:normal;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-900-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-latin-ext-900-normal.woff") format('woff');unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Kanit';font-style:normal;font-weight:900;font-display:swap;src:url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-900-normal.woff2") format('woff2'), url("https://p.poketube.fun/https://fonts.bunny.net/kanit/files/kanit-vietnamese-900-normal.woff") format('woff');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB} +/* latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + font-stretch: 100%; + src: url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-latin-500-normal.woff2) format('woff2'), url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-latin-500-normal.woff) format('woff'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} + +/* cyrillic */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + font-stretch: 100%; + src: url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-cyrillic-500-normal.woff2) format('woff2'), url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-cyrillic-500-normal.woff) format('woff'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} + +/* latin-ext */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + font-stretch: 100%; + src: url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-latin-ext-500-normal.woff2) format('woff2'), url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-latin-ext-500-normal.woff) format('woff'); + unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; +} + +/* vietnamese */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + font-stretch: 100%; + src: url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-vietnamese-500-normal.woff2) format('woff2'), url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-vietnamese-500-normal.woff) format('woff'); + unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; +} + +/* cyrillic-ext */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + font-stretch: 100%; + src: url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-cyrillic-ext-500-normal.woff2) format('woff2'), url(https://p.poketube.fun/https://fonts.bunny.net/montserrat/files/montserrat-cyrillic-ext-500-normal.woff) format('woff'); + unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; +} + + + :root { /* text */ --text-link: #0ab7f0; @@ -403,7 +454,7 @@ a.avatar { border-radius: 4px; word-break: break-all; white-space: nowrap; - font-family: "Kanit", sans-serif; + font-family: "Montserrat", sans-serif; } .new-button { @@ -514,7 +565,7 @@ a.avatar { margin: 0; width: 300px; border-radius: 8px; - font-family: "Kanit", sans-serif; + font-family: "Montserrat", sans-serif; box-shadow: var(--border-color) 0 0 5px; background-color: var(--context-menu-background); } @@ -682,7 +733,7 @@ a.new-button:hover { border-radius: 10px; height: fit-content; padding: 10px; - font-family: "Kanit", sans-serif; + font-family: "ubuntu", sans-serif; margin-left: -11em; width: 43em; position: absolute; @@ -797,7 +848,7 @@ object-fit:none; } .video > .info { -font-family: "Kanit", sans-serif; +font-family: "Montserrat", sans-serif; font-weight: 500; } From 239d482a51b83b6a4eae6c0776b91aa06317ecdf Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 09:20:54 +0000 Subject: [PATCH 093/283] add new font :3 --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index b5d65bc4..1055f7fb 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -383,7 +383,7 @@ a[data-onclick="jump_to_time"] { - + From 5adafa4aee36bd984aae952fee3e3c876e9390c2 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 09:30:56 +0000 Subject: [PATCH 094/283] add new url :3 --- src/libpoketube/init/pages-video.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libpoketube/init/pages-video.js b/src/libpoketube/init/pages-video.js index 30e11be8..f8e3e007 100644 --- a/src/libpoketube/init/pages-video.js +++ b/src/libpoketube/init/pages-video.js @@ -245,10 +245,10 @@ module.exports = function (app, config, renderTemplate) { var vidurl = u.losslessurl; } - + if (inv_vid.author.endsWith(" - Topic")) { var vidurl = "https://eu-proxy.poketube.fun"; var isvidious = true; - + } if (req.useragent.source.includes("Pardus")) { var vidurl = "https://yt.sudovanilla.com"; @@ -552,4 +552,4 @@ module.exports = function (app, config, renderTemplate) { } } }); -}; \ No newline at end of file +}; From 03bb5240360f552ab07adaff57651a89a0c49108 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 09:41:57 +0000 Subject: [PATCH 095/283] mhm --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 1055f7fb..278eeae9 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1548,7 +1548,7 @@ Recommended Videos
-<% if (!f) { %><% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<%= x.uploadedAt.replace("Streamed", "Live") %> • <%= convert(x.views) %> views
<% }) %><% } %> +<% if (!f) { %><% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<%= x.uploadedAt.replace("Streamed", "") %> • <%= convert(x.views) %> views
<% }) %><% } %> <% if (f) { %> From bd5bbeb374ef00344a2eb4b755838d9c1467309b Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 17:02:02 +0000 Subject: [PATCH 096/283] add universe 2 --- html/poketube.ejs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 278eeae9..e338da4d 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1548,10 +1548,10 @@ Recommended Videos
-<% if (!f) { %><% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<%= x.uploadedAt.replace("Streamed", "") %> • <%= convert(x.views) %> views
<% }) %><% } %> - - - <% if (f) { %> +<% if (!f) { %> +<% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<% if (universe) { %><%= x.uploadedAt.replace(" Streamed ", " ") %>
<%= convert(x.views) %> views <% } %> <% if (!universe) { %><%= x.uploadedAt.replace(" Streamed ", " ") %> • <%= convert(x.views) %> views <% } %>
<% }) %><% } %> + + <% if (f) { %> <% tj.forEach(x => { %>
From 4df6463506841656e45ac8434a67d97b36596392 Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 19:08:26 +0000 Subject: [PATCH 097/283] dont show the custom popup when fullscreen --- css/app.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/css/app.js b/css/app.js index cf5c440a..204802d0 100644 --- a/css/app.js +++ b/css/app.js @@ -285,14 +285,21 @@ function fetchUrls(urls) { var popupMenu = document.getElementById("popupMenu"); var loopOption = document.getElementById("loopOption"); var speedOption = document.getElementById("speedOption"); + - video.addEventListener("contextmenu", function(event) { - event.preventDefault(); +video.addEventListener("contextmenu", function(event) { + // Check if the video is in fullscreen mode + if (!document.fullscreenElement && !document.webkitFullscreenElement && !document.mozFullScreenElement && !document.msFullscreenElement) { + // The video is not in fullscreen mode, prevent the default behavior + event.preventDefault(); + + // Your additional context menu logic + popupMenu.style.display = "block"; + popupMenu.style.left = event.pageX + "px"; + popupMenu.style.top = event.pageY + "px"; + } +}); - popupMenu.style.display = "block"; - popupMenu.style.left = event.pageX + "px"; - popupMenu.style.top = event.pageY + "px"; - }); // Hide the popup menu when clicking outside of it window.addEventListener("click", function(event) { From e19613e555d3027a441aa3cd6f5d11516fb415ea Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 1 Jan 2024 19:11:31 +0000 Subject: [PATCH 098/283] replace copyright dates :3 --- html/poketube.ejs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index e338da4d..a412c38a 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -12,7 +12,7 @@ This Source Code Form is subject to the terms of the GNU General Public License: - Copyright (C) 2021-2023 POKETUBE (https://codeberg.org/Ashley/poketube) + Copyright (C) 2021-2024 POKETUBE (https://codeberg.org/Ashley/poketube) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -672,7 +672,7 @@ background-color: #0000; * @licstart The following is the entire license notice for the JavaScript * code in this page. * - * Copyright (C) 2021-2023 PokeTube Project (https://codeberg.org/Ashley/poketube) + * Copyright (C) 2021-2024 PokeTube Project (https://codeberg.org/Ashley/poketube) * * The JavaScript code in this page is free software: you can redistribute * it and/or modify it under the terms of the GNU General Public License @@ -1549,7 +1549,7 @@ Recommended Videos <% if (!f) { %> -<% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<% if (universe) { %><%= x.uploadedAt.replace(" Streamed ", " ") %>
<%= convert(x.views) %> views <% } %> <% if (!universe) { %><%= x.uploadedAt.replace(" Streamed ", " ") %> • <%= convert(x.views) %> views <% } %>
<% }) %><% } %> +<% k.Video.Recommendations?.Video?.forEach(x => { %>
<% if (!optout) { %><%- x.duration || "LIVE"%><% } %><% if (optout) { %><%- x.duration || "LIVE"%><% } %>
<% if (!optout) { %><%= x.Title %><% } %><% if (optout) { %><%= x.Title %><% } %>
<%=x.Channel.Name %>
<% if (universe) { %><%= x.uploadedAt.replace("Streamed ", " ") %>
<%= convert(x.views) %> views <% } %> <% if (!universe) { %><%= x.uploadedAt.replace("Streamed", " ") %> • <%= convert(x.views) %> views <% } %>
<% }) %><% } %> <% if (f) { %> @@ -1900,7 +1900,7 @@ window.addEventListener("unload", cleanup) - + @@ -1976,7 +1976,7 @@ fetch(statsurl + "?browser=" + encodedBrowserName) - - - - - + + + <% if(IsOldWindows) { %> From e6219171b9aada87009d801891b6a1ddf903963a Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 5 Jan 2024 18:44:20 +0000 Subject: [PATCH 110/283] i am so dumbrefyery --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 80d66c07..46c0ca62 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1810,7 +1810,7 @@ var userID = localStorage.getItem("UserID"); if (userID) { // If user ID exists in localStorage, set the href attribute - anchor.href = `/api/set-channel-subs?ID=${userID}&channelName=<%=k.Video.Channel.Name%>&avatar=<%- media_proxy_url %>/<%= k.Video.Channel.Avatar[1].$t %>&channelID=<%=video?.Channel.id || k.Video.Channel.id %>`; + anchor.href = `/api/set-channel-subs?ID=${userID}&channelName=<%=k.Video.Channel.Name%>&avatar=<%- media_proxy_url %>?proxy=<%= k.Video.Channel.Avatar[1].$t %>&channelID=<%=video?.Channel.id || k.Video.Channel.id %>`; } else { anchor.href = "/account-create" } From e9e342d9c033365a83d053f7079d771f90fc707f Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 5 Jan 2024 20:23:49 +0000 Subject: [PATCH 111/283] oops sorry qwq --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 46c0ca62..40e6a5bf 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1810,7 +1810,7 @@ var userID = localStorage.getItem("UserID"); if (userID) { // If user ID exists in localStorage, set the href attribute - anchor.href = `/api/set-channel-subs?ID=${userID}&channelName=<%=k.Video.Channel.Name%>&avatar=<%- media_proxy_url %>?proxy=<%= k.Video.Channel.Avatar[1].$t %>&channelID=<%=video?.Channel.id || k.Video.Channel.id %>`; + anchor.href = `/api/set-channel-subs?ID=${userID}&channelName=<%=k.Video.Channel.Name%>&avatar=<%- media_proxy_url %>/proxy?url=<%= k.Video.Channel.Avatar[1].$t %>&channelID=<%=video?.Channel.id || k.Video.Channel.id %>`; } else { anchor.href = "/account-create" } From 340b6a804f4e7d1f5ebb847325bab8fcc0c095d7 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 6 Jan 2024 07:04:27 +0000 Subject: [PATCH 112/283] new account page :3 --- html/account-me.ejs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/html/account-me.ejs b/html/account-me.ejs index 01c57b21..82be8f32 100644 --- a/html/account-me.ejs +++ b/html/account-me.ejs @@ -6,6 +6,7 @@ + Games Hub + + + + + + <% } %> +<% if (game === "snake") { %> + + + + + + + + Snake + + + + + + + + + <% } %> +<% if (game === "tic-tac-toe") { %> + + + + + + + + Tic-Tac-Toe + + +
+

Tic-Tac-Toe

+
+
+
+ + + + + + + <% } %> +<% if (game === "pong") { %> + + + + + + + + Pong + + + +
+

+ Press space to start +

+

Left Paddle Controls: W (Up) and S (Down)

+

Right Paddle Controls: Arrow Up (Up) and Arrow Down (Down)

+
+ + + + + + + <% } %> +<% if (game === "sudoku") { %> + + + + + + + + Sudoku + + +
+ + + + + + <% } %> From 4b9c616765585097d02037e86a7a9d3cbe356e5a Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 6 Jan 2024 20:22:23 +0000 Subject: [PATCH 115/283] add games hub !! --- src/libpoketube/init/pages-static.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libpoketube/init/pages-static.js b/src/libpoketube/init/pages-static.js index 243d82ab..0ccf30a9 100644 --- a/src/libpoketube/init/pages-static.js +++ b/src/libpoketube/init/pages-static.js @@ -133,6 +133,13 @@ module.exports = function (app, config, renderTemplate) { } }); +app.get("/game-hub", function (req, res) { + + renderTemplate(res, req, "gamehub.ejs", { + game:req.query.game + }); + + }); app.get("/static/:id", (req, res) => { const id = req.params.id; From 05ad02d87d54b7ce9e7bb3203b7dbf9579a95d6b Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 6 Jan 2024 20:26:20 +0000 Subject: [PATCH 116/283] add game hub --- html/landing.ejs | 1 + 1 file changed, 1 insertion(+) diff --git a/html/landing.ejs b/html/landing.ejs index f02af486..2610f7f6 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -86,6 +86,7 @@ body {
+
From 75436a47d046f6fd6626f94e30624bf5d6de6393 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 6 Jan 2024 21:12:27 +0000 Subject: [PATCH 117/283] add gamehub to watchpage --- html/poketube.ejs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 40e6a5bf..418fdb48 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1354,9 +1354,19 @@ display: block; !important;" autoplay controls> + <% if (inv_vid.genre === "Gaming") { %> + + <% } %> -
Connections
From c50d2996df1b4b6ff936eb91e1f14e503b812f98 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 6 Jan 2024 21:31:02 +0000 Subject: [PATCH 118/283] fix subtitles --- src/libpoketube/init/pages-api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libpoketube/init/pages-api.js b/src/libpoketube/init/pages-api.js index 15331ccd..ffa56586 100644 --- a/src/libpoketube/init/pages-api.js +++ b/src/libpoketube/init/pages-api.js @@ -126,7 +126,7 @@ app.get("/avatars/:v", async function (req, res) { const l = req.query.h; try { - let url = `https://yt.sudovanilla.com/api/v1/captions/${id}?label=${l}`; + let url = `https://inv.zzls.xyz/api/v1/captions/${id}?label=${l}`; let f = await fetch(url); const body = await f.text(); From 4ad88957d5da97c41d4ba9f72ff4ba868cc5aa18 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 7 Jan 2024 06:34:08 +0000 Subject: [PATCH 119/283] add matrix and revolt url to code of conduct --- CODE_OF_CONDUCT.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4b6e2785..4af1bd6a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,8 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -iamashley@duck.com (E-mail) https://discord.gg/pfKSQ3pMfW (Discord server). +iamashley@duck.com (E-mail) https://discord.gg/pfKSQ3pMfW (Discord server) https://matrix.to/#/#poke:vern.cc (matrix space) and https://rvlt.gg/poke (revolt server). + All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the From a8f96ab8b6b097dfdd90e09562dbc4d3d62fab6b Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 7 Jan 2024 07:54:22 +0000 Subject: [PATCH 120/283] fix sudoku lmao --- html/gamehub.ejs | 130 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 18 deletions(-) diff --git a/html/gamehub.ejs b/html/gamehub.ejs index f421a1a0..3baebc8a 100644 --- a/html/gamehub.ejs +++ b/html/gamehub.ejs @@ -8,7 +8,7 @@ - + @@ -78,7 +78,7 @@ cursor: pointer; } - Games Hub + Gaming Hub
@@ -123,6 +123,7 @@ html, body { height: 100%; margin: 0; + background: linear-gradient(135deg, #2c3e50, #34495e); overflow: hidden; } canvas { @@ -131,7 +132,7 @@ position: absolute; } - Snake + Snak @@ -291,12 +292,14 @@ function resetGame() { align-items: center; justify-content: center; height: 100vh; + background: linear-gradient(135deg, #2c3e50, #34495e); margin: 0; } .container { text-align: left; margin-top: 20px; margin-left: 20px; + color:#fff; } .board { display: grid; @@ -381,12 +384,12 @@ function resetGame() { renderBoard(); const winner = checkWinner(); if (winner) { - messageElement.textContent = `Player ${winner} wins!`; + messageElement.textContent = `Player ${winner} won!!!!!! woaah`; } else if (checkDraw()) { - messageElement.textContent = "It's a draw!"; + messageElement.textContent = "It's a draw! oh welp >~<"; } else { currentPlayer = currentPlayer === "X" ? "O" : "X"; - messageElement.textContent = `Player ${currentPlayer}'s turn`; + messageElement.textContent = `Player ${currentPlayer}'s turn :3`; if (currentPlayer === "O") { setTimeout(makeComputerMove, 1000); // AI waits for 1 second } @@ -410,12 +413,12 @@ function resetGame() { renderBoard(); const winner = checkWinner(); if (winner) { - messageElement.textContent = `Player ${winner} wins!`; + messageElement.textContent = `Player ${winner} won!!!!!! woaah`; } else if (checkDraw()) { - messageElement.textContent = "It's a draw!"; + messageElement.textContent = "It's a draw! oh welp >~<"; } else { currentPlayer = currentPlayer === "X" ? "O" : "X"; - messageElement.textContent = `Player ${currentPlayer}'s turn`; + messageElement.textContent = `Player ${currentPlayer}'s turn :3`; } } } @@ -434,7 +437,7 @@ function resetGame() { function resetGame() { currentPlayer = "X"; board = ["", "", "", "", "", "", "", "", ""]; - messageElement.textContent = `Player ${currentPlayer}'s turn`; + messageElement.textContent = `Player ${currentPlayer}'s turn :3`; renderBoard(); // If AI is the starting player, make the first move @@ -466,7 +469,7 @@ function resetGame() { align-items: center; justify-content: space-between; height: 100vh; - background: #000; + background: linear-gradient(135deg, #2c3e50, #34495e); color: #fff; font-family: 'Arial', sans-serif; } @@ -491,9 +494,9 @@ function resetGame() {

- Press space to start + U can press space to start owo

-

Left Paddle Controls: W (Up) and S (Down)

+

Left Paddle Controls : W (Up) and S (Down)

Right Paddle Controls: Arrow Up (Up) and Arrow Down (Down)

- @@ -286,7 +331,7 @@ function resetGame() { Tic-Tac-Toe @@ -568,7 +626,7 @@ function resetGame() { //--> @@ -1016,3 +1091,4 @@ function resetGame() { <% } %> + \ No newline at end of file From f3fbb7949eb28e0f22fcaebe13e345f7e2bc824c Mon Sep 17 00:00:00 2001 From: Ashley Date: Mon, 8 Jan 2024 16:26:45 +0000 Subject: [PATCH 128/283] add poke.ashley0143.xyz --- instances.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/instances.json b/instances.json index a3e23283..5a45f8f0 100644 --- a/instances.json +++ b/instances.json @@ -43,6 +43,20 @@ "branch": "dev" } } + ], + [ + "poke.ashley0143.xyz", + { + "uri": "https://poke.ashley0143.xyz", + "CLOUDFLARE": false, + "piwik": false, + "region": "🇺🇸", + "software": { + "name": "poketube", + "version": "latest", + "branch": "dev" + } + } ] ] From 636a0daf314997dda2965543e43e40f765b77097 Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 9 Jan 2024 20:06:41 +0000 Subject: [PATCH 129/283] sowwy qwq --- html/landing.ejs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/landing.ejs b/html/landing.ejs index 2610f7f6..281e0c72 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -108,6 +108,7 @@ body {
From 8259e6afda6f6e913b3199075dcc72271b3aacbd Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 9 Jan 2024 20:09:34 +0000 Subject: [PATCH 130/283] add google translate endpoint --- css/app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/css/app.js b/css/app.js index 204802d0..f2bbc18c 100644 --- a/css/app.js +++ b/css/app.js @@ -290,11 +290,9 @@ function fetchUrls(urls) { video.addEventListener("contextmenu", function(event) { // Check if the video is in fullscreen mode if (!document.fullscreenElement && !document.webkitFullscreenElement && !document.mozFullScreenElement && !document.msFullscreenElement) { - // The video is not in fullscreen mode, prevent the default behavior - event.preventDefault(); + event.preventDefault(); - // Your additional context menu logic - popupMenu.style.display = "block"; + popupMenu.style.display = "block"; popupMenu.style.left = event.pageX + "px"; popupMenu.style.top = event.pageY + "px"; } @@ -356,4 +354,6 @@ video.addEventListener("contextmenu", function(event) { return 2; } } + +const GoogleTranslateEndpoint = "https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&rt=c" // @license-end \ No newline at end of file From f8725dd6acd755898cf2a00b7bfef62477603bc2 Mon Sep 17 00:00:00 2001 From: Ashley Date: Tue, 9 Jan 2024 20:11:49 +0000 Subject: [PATCH 131/283] Bump version :3 --- html/poketube.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 9455899c..21d2a191 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1919,7 +1919,7 @@ window.addEventListener("unload", cleanup) - + From db8e53fc643948946769a8abd896ca69c45b1d6b Mon Sep 17 00:00:00 2001 From: Ashley Date: Wed, 10 Jan 2024 07:26:13 +0000 Subject: [PATCH 132/283] Update instances.json --- instances.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instances.json b/instances.json index 5a45f8f0..ac85f7f2 100644 --- a/instances.json +++ b/instances.json @@ -48,7 +48,7 @@ "poke.ashley0143.xyz", { "uri": "https://poke.ashley0143.xyz", - "CLOUDFLARE": false, + "CLOUDFLARE": true, "piwik": false, "region": "🇺🇸", "software": { From b477c56c613350ce00f77480300919aaa14e4dcd Mon Sep 17 00:00:00 2001 From: Ashley Date: Thu, 11 Jan 2024 08:38:52 +0000 Subject: [PATCH 133/283] Add comment count --- html/poketube.ejs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 21d2a191..25af471a 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1241,7 +1241,7 @@ display: block; !important;" autoplay controls>
- Comments + <%- convert(inv.commentCount) %> Comments
@@ -1514,7 +1514,7 @@ display: block; !important;" autoplay controls>
- Comments - <%- convert(inv.commentCount) %> + Comments - <%- convert(inv.commentCount) %>

@@ -2245,7 +2245,7 @@ font-size: 13px;margin:0;padding:0;white-space: nowrap;

- Comments + <%- convert(inv.commentCount) %> Comments
<% }%> From 13e498dcf02c374f5fdb8768c7059f7183d5c095 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 07:07:22 +0000 Subject: [PATCH 134/283] add alot of stuff :3 --- html/poketube.ejs | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 25af471a..16697cfa 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -729,14 +729,24 @@ background-color: #0000; <% } %> @@ -795,7 +805,7 @@ Region settings <% if (!a) { %> - + Ambient mode • on @@ -804,7 +814,7 @@ Region settings <% if (a) { %> - + Ambient mode • off @@ -852,7 +862,13 @@ Region settings <% } %> - + + + +Open on YouTube :3 + + + Go Lite! @@ -873,8 +889,12 @@ Upload Version - -About + +Source Code + + + +Privacy
@@ -1361,7 +1381,7 @@ display: block; !important;" autoplay controls> <% if (inv_vid.genre === "Gaming") { %>
-
Game Hub
+
Poke! Games Hub
Snake Tic Tac Toe Sudoku @@ -1649,8 +1669,7 @@ Recommended Videos <% } %>
<% } %> -
- +


From c21e7e4cedc7676a69c3d1037ff4cdbfb5b68103 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 07:46:20 +0000 Subject: [PATCH 135/283] add upload button :3 --- html/poketube.ejs | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 16697cfa..dd44710c 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -772,8 +772,8 @@ if your domain matches this code you are probably in poketube.fun :3

- -

+

+ @@ -872,15 +872,7 @@ Open on YouTube :3 Go Lite! -
- - - -Upload - - - - +
@@ -889,11 +881,11 @@ Upload Version - + Source Code - + Privacy
@@ -1382,8 +1374,8 @@ display: block; !important;" autoplay controls>
Poke! Games Hub
- Snake - Tic Tac Toe + Snake + Tic Tac Toe Sudoku Ping Pong @@ -1575,6 +1567,13 @@ display: block; !important;" autoplay controls>
+ +
From df4267b69dfd7b60ec77a02a27d09c8a7e10a4bf Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 10:55:23 +0000 Subject: [PATCH 136/283] bump youtube client veersion from 2021 to 2024 & opt out of googles FLOC :3 --- server.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/server.js b/server.js index 8189550f..13f5952b 100644 --- a/server.js +++ b/server.js @@ -2,7 +2,7 @@ PokeTube is an Free/Libre youtube front-end. this is our main file. - Copyright (C) 2021-2023 POKETUBE (https://codeberg.org/Ashley/poketube) + Copyright (C) 2021-2024 POKETUBE (https://codeberg.org/Ashley/poketube) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -35,7 +35,7 @@ const u = await media_proxy(); initlog("Loading..."); initlog( - "[Welcome] Welcome To PokeTube :3 " + + "[Welcome] Welcome To Poke - The ultimate privacy app - :3 " + "Running " + `Node ${process.version} - V8 v${ process.versions.v8 @@ -65,8 +65,8 @@ const limiter = rateLimit({ - windowMs:45 * 1000, // 30 Seconds - max: 886, // limit each IP to 870 requests per windowMs + windowMs:45 * 1000, // 45 Seconds + max: 886, // limit each IP to 866 requests per windowMs }); var app = modules.express(); @@ -136,6 +136,9 @@ toobusy.maxLag(3500); } res.header("secure-poketube-instance", "1"); + // opt out of googles "FLOC" bullcrap :p See https://spreadprivacy.com/block-floc-with-duckduckgo/ + res.header("Permissions-Policy": "interest-cohort=()") + res.header("software-name": "poke") next(); }); @@ -157,8 +160,9 @@ toobusy.maxLag(3500); app.use(function (req, res, next) { res.header("X-PokeTube-Youtube-Client-Name", "1"); - res.header("X-PokeTube-Youtube-Client-Version", "2.20210721.00.00"); - res.header("X-PokeTube-Speeder", "6 seconds no cache, 780ms w/cache"); + res.header("Hey there": "Do u wanna help poke? contributons are welcome :3 https://codeberg.org/Ashley/poke") + res.header("X-PokeTube-Youtube-Client-Version", "2.20240111.00.00"); + res.header("X-PokeTube-Speeder", "3 seconds no cache, 280ms w/cache"); if (req.url.match(/^\/(css|js|img|font)\/.+/)) { res.setHeader( "Cache-Control", From 56f04cbfdc84841ad7a68d5a0fc2fa19722801de Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 11:04:27 +0000 Subject: [PATCH 137/283] i am so dumbrefyery --- server.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server.js b/server.js index 13f5952b..e5cf76ce 100644 --- a/server.js +++ b/server.js @@ -137,8 +137,8 @@ toobusy.maxLag(3500); res.header("secure-poketube-instance", "1"); // opt out of googles "FLOC" bullcrap :p See https://spreadprivacy.com/block-floc-with-duckduckgo/ - res.header("Permissions-Policy": "interest-cohort=()") - res.header("software-name": "poke") + res.header("Permissions-Policy", "interest-cohort=()") + res.header("software-name", "poke") next(); }); @@ -160,7 +160,7 @@ toobusy.maxLag(3500); app.use(function (req, res, next) { res.header("X-PokeTube-Youtube-Client-Name", "1"); - res.header("Hey there": "Do u wanna help poke? contributons are welcome :3 https://codeberg.org/Ashley/poke") + res.header("Hey there", "Do u wanna help poke? contributons are welcome :3 https://codeberg.org/Ashley/poke") res.header("X-PokeTube-Youtube-Client-Version", "2.20240111.00.00"); res.header("X-PokeTube-Speeder", "3 seconds no cache, 280ms w/cache"); if (req.url.match(/^\/(css|js|img|font)\/.+/)) { From d82a0593ce2618ec180392bc08ee1045bf25d653 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 11:06:04 +0000 Subject: [PATCH 138/283] fix this --- server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.js b/server.js index e5cf76ce..4a76bc0e 100644 --- a/server.js +++ b/server.js @@ -160,7 +160,7 @@ toobusy.maxLag(3500); app.use(function (req, res, next) { res.header("X-PokeTube-Youtube-Client-Name", "1"); - res.header("Hey there", "Do u wanna help poke? contributons are welcome :3 https://codeberg.org/Ashley/poke") + res.header("Hey-there", "Do u wanna help poke? contributons are welcome :3 https://codeberg.org/Ashley/poke") res.header("X-PokeTube-Youtube-Client-Version", "2.20240111.00.00"); res.header("X-PokeTube-Speeder", "3 seconds no cache, 280ms w/cache"); if (req.url.match(/^\/(css|js|img|font)\/.+/)) { From 578a6458689eea8b9e94dd8173d61a10bd49208e Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 19:06:44 +0000 Subject: [PATCH 139/283] WIP: Add new code of conduct --- CODE_OF_CONDUCT.md | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4af1bd6a..b8974f0f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,4 +1,4 @@ -# Contributor Covenant Code of Conduct +# Contributor Covenant Code of Conduct / PokeTube code of conduct ## Our Pledge @@ -68,8 +68,7 @@ All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Additional Terms for Poketube - -**TL;DR**: You are not allowed to edit or remove these terms from Poketube. You can't remove this file from your Poketube fork. Everyone can copy and share this document as is, but making changes is not allowed. If your chosen alternative code of conduct doesn't include provisions against hate speech, inappropriate behavior, anti-immigrant sentiments, far-right or authoritarian content, it's not allowed. +**TL;DR**: You are encouraged not to edit or remove these terms from Poketube. While you have the freedom to make changes in your Poketube fork, if you choose to modify this document, please refrain from using the title "Poketube Code of Conduct." Everyone can copy and share this document as is, but making changes is allowed with the aforementioned condition. If your chosen alternative code of conduct doesn't include provisions against hate speech, inappropriate behavior, anti-immigrant sentiments, far-right, or authoritarian content, it's not recommended. 1. Definitions @@ -81,7 +80,7 @@ reporter of any incident. - **Inappropriate Behavior**: Inappropriate behavior encompasses actions or expressions that create an unwelcome, hostile, or offensive environment for others, such as harassment, intimidation, or bullying. -- **Authoritarianism**: Authoritarianism is characterized by an emphasis on strong central authority, limited individual freedoms, and restrictions on democratic processes. Content or behavior that promotes authoritarian principles, suppresses freedom of speech, individual rights, or democratic values is strictly prohibited. +- **Authoritarianism**: Authoritarianism is characterized by an emphasis on strong central authority, limited individual freedoms, and restrictions on democratic processes. Content or behavior that promotes authoritarian principles, suppresses freedom of speech, individual rights, or democratic values is strongly discouraged. - **Protected characteristics** include attributes such as race, ethnicity, gender, religion, sexual orientation, disability, and other traits or qualities safeguarded from discrimination by relevant laws and regulations. This defines what is meant by "protected characteristics" in the context of this document. @@ -89,26 +88,23 @@ reporter of any incident. NOTE: The Contributor Covenant Code of Conduct already includes provisions on some of these issues. Our intention is to provide a more defined and explicit statement regarding these prohibitions to ensure a clear and inclusive community environment. -YOU ARE ABSOLUTELY AND UNEQUIVOCALLY PROHIBITED FROM EDITING, REMOVING, OR ALTERING THE TERMS OF THIS FILE IN ANY WAY, SHAPE, OR FORM. FURTHERMORE, ONLY ASHLEY (THE AUTHOR) IS PERMITTED TO EDIT THIS CODE OF CONDUCT. YOU MAY NOT, UNDER ANY CIRCUMSTANCES, REMOVE THIS FILE FROM YOUR FORK OF POKETUBE. EVERY INDIVIDUAL, WITHOUT EXCEPTION, IS PERMITTED TO CREATE UNMODIFIED COPIES OF THIS DOCUMENT AND DISTRIBUTE IT AS IS; HOWEVER, THE MODIFICATION OF THIS DOCUMENT IS STRICTLY, UNMISTAKABLY, AND CATEGORICALLY FORBIDDEN. (The contact URLs within this code of conduct may be updated as needed to ensure accurate communication channels.) +YOU ARE NOT ENCOURAGED TO EDIT, REMOVE, OR ALTER THE TERMS OF THIS FILE. However, should you choose to make changes, please avoid using the title "Poketube Code of Conduct." Removing this file from your Poketube fork is allowed. Everyone, without exception, is permitted to create unmodified copies of this document and distribute it as is; however, modifications to this document are allowed with the aforementioned condition. + +It is of paramount importance to emphasize that the promotion or glorification of anti-immigrant sentiments, the alignment with far-right ideologies, Islamophobia, or any form of religious discrimination is strongly discouraged within the scope of Poketube. We maintain a stance against such content, which includes material that discriminates against immigrants, promotes hatred or hostility towards religious groups, or actively supports extremist beliefs associated with far-right ideologies. This stance is encouraged and non-binding. -If you do not wish to adhere to this conduct in your fork of Poketube, you have the option to utilize alternative codes of conduct instead. However, if you do not wish to adopt the alternative code of conduct, please feel free to contact us and explain your reasons for wanting to remove this file. +We believe in fostering an environment that is inclusive, respectful, and free from discrimination or the promotion of extremist ideologies. As such, any content found in violation of this encouragement will be addressed promptly and appropriately. -It is of paramount importance to emphasize that the promotion or glorification of anti-immigrant sentiments, the alignment with far-right ideologies, Islamophobia, or any form of religious discrimination is entirely and unequivocally prohibited within the scope of Poketube. We maintain a zero-tolerance stance on such content, which includes any material that discriminates against immigrants, promotes hatred or hostility towards religious groups, or actively supports extremist beliefs associated with far-right ideologies. This stance is unwavering and non-negotiable. - -We believe in fostering an environment that is inclusive, respectful, and free from discrimination or the promotion of extremist ideologies. As such, any content found in violation of this prohibition will be addressed promptly and appropriately. - -THE CLARITY AND FORCE OF THIS STATEMENT ARE INTENDED TO LEAVE NO ROOM FOR AMBIGUITY: ANTI-IMMIGRANT SENTIMENTS, FAR-RIGHT IDEOLOGIES, ISLAMOPHOBIA, RELIGIOUS DISCRIMINATION, MISOGYNY, AND SEXISM ARE STRICTLY OFF-LIMITS AND WILL NOT BE TOLERATED WITHIN OUR COMMUNITY. OUR COMMITMENT TO MAINTAINING A RESPECTFUL AND INCLUSIVE ATMOSPHERE EXTENDS TO ALL, REGARDLESS OF THEIR BACKGROUND, BELIEFS, OR IDENTITY. +THE CLARITY AND FORCE OF THIS STATEMENT ARE INTENDED TO ENCOURAGE CLEAR GUIDELINES: ANTI-IMMIGRANT SENTIMENTS, FAR-RIGHT IDEOLOGIES, ISLAMOPHOBIA, RELIGIOUS DISCRIMINATION, MISOGYNY, AND SEXISM ARE STRONGLY DISCOURAGED AND NOT PREFERRED WITHIN OUR COMMUNITY. OUR HOPE IS TO MAINTAIN A RESPECTFUL AND INCLUSIVE ATMOSPHERE FOR ALL, REGARDLESS OF THEIR BACKGROUND, BELIEFS, OR IDENTITY. These terms may be subject to change, and any updates will be communicated to the Poketube community. Changes to these terms will be communicated to users. **3. Application of GNU Kind Communication Policy** -These terms also apply the principles outlined in the [GNU Kind Communication Policy](https://www.gnu.org/philosophy/kind-communication.html), which encourage respectful and inclusive communication within the Poketube community. +These terms also align with the principles outlined in the [GNU Kind Communication Policy](https://www.gnu.org/philosophy/kind-communication.html), which encourage respectful and inclusive communication within the Poketube community. It is crucial to note that we respect the diverse opinions and beliefs of our users. -***Additional terms end lol*** - +***Additional terms end lol*** ## Enforcement Guidelines From ef0f66c48512b842124daaeb98604e299b6134a5 Mon Sep 17 00:00:00 2001 From: Ashley Date: Fri, 12 Jan 2024 22:28:55 +0000 Subject: [PATCH 140/283] add pokechan :3 --- html/landing.ejs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/html/landing.ejs b/html/landing.ejs index 281e0c72..994e0203 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -103,12 +103,11 @@ body {

Built-in video downloder

Web Search

- - - + +
From 70785508cd7f31ca1adf28f02dc56b75032c99a5 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 13 Jan 2024 09:09:13 +0000 Subject: [PATCH 141/283] add source for pokechan --- html/landing.ejs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/html/landing.ejs b/html/landing.ejs index 994e0203..4186e404 100644 --- a/html/landing.ejs +++ b/html/landing.ejs @@ -103,7 +103,10 @@ body {

Built-in video downloder

Web Search

- + + + + + + + \ No newline at end of file From a0576667011864bfe0b628d6cfec9df41e9eab6a Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 13 Jan 2024 20:56:59 +0000 Subject: [PATCH 144/283] add poketranslate :3 --- src/libpoketube/init/pages-static.js | 143 ++++++++++++++++----------- 1 file changed, 83 insertions(+), 60 deletions(-) diff --git a/src/libpoketube/init/pages-static.js b/src/libpoketube/init/pages-static.js index 0ccf30a9..a36a9384 100644 --- a/src/libpoketube/init/pages-static.js +++ b/src/libpoketube/init/pages-static.js @@ -71,6 +71,31 @@ module.exports = function (app, config, renderTemplate) { renderTemplate(res, req, "rewind.ejs"); }); + app.get("/translate", async function (req, res) { + const { fetch } = await import("undici"); + + const api_url = "https://simplytranslate.org/api/translate"; + + // Fetch translation data + const translationResponse = await fetch( + `${api_url}?from=${req.query.from_language}&to=${req.query.to_language}&text=${req.query.input}&engine=google` + ); + + // Check if the request was successful (status code 200) + const translationData = await translationResponse.json(); + + // Extract translated_text from the response + const translatedText = translationData.translated_text; + + // Render the template with the translated text + renderTemplate(res, req, "translate.ejs", { + translation: translatedText, + text: req.query.input || "enter text here", + from_language: req.query.from_language, + to_language: req.query.to_language, + }); + }); + app.get("/domains", function (req, res) { renderTemplate(res, req, "domains.ejs"); }); @@ -79,26 +104,26 @@ module.exports = function (app, config, renderTemplate) { renderTemplate(res, req, "license.ejs"); }); - app.get("/map", function (req, res) { + app.get("/map", function (req, res) { renderTemplate(res, req, "map.ejs"); }); - + app.get("/credits", function (req, res) { renderTemplate(res, req, "want-you-gone.ejs"); }); - + app.get("/settings", function (req, res) { renderTemplate(res, req, "content-settings.ejs"); }); - + app.get("/offline", function (req, res) { res.sendFile("offline.html", { root: location_pwa }); }); - + app.get("/manifest.json", function (req, res) { res.sendFile("manifest.json", { root: location_pwa }); }); - + app.get("/customize", function (req, res) { const tab = req.query.tab; @@ -133,66 +158,64 @@ module.exports = function (app, config, renderTemplate) { } }); -app.get("/game-hub", function (req, res) { - + app.get("/game-hub", function (req, res) { renderTemplate(res, req, "gamehub.ejs", { - game:req.query.game - }); - + game: req.query.game, + }); }); -app.get("/static/:id", (req, res) => { - const id = req.params.id; + app.get("/static/:id", (req, res) => { + const id = req.params.id; - if (id.endsWith(".css")) { - res.redirect("/css/" + id); - } else if (id.endsWith(".js")) { - if (id.endsWith(".bundle.js")) { - const jsFiles = ['app.js', 'custom-css.js', 'emojis.js']; - const combinedContent = jsFiles - .map((fileName) => { - const filePath = path.join(html_location, fileName); - return fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : ''; - }) - .join('\n'); + if (id.endsWith(".css")) { + res.redirect("/css/" + id); + } else if (id.endsWith(".js")) { + if (id.endsWith(".bundle.js")) { + const jsFiles = ["app.js", "custom-css.js", "emojis.js"]; + const combinedContent = jsFiles + .map((fileName) => { + const filePath = path.join(html_location, fileName); + return fs.existsSync(filePath) + ? fs.readFileSync(filePath, "utf-8") + : ""; + }) + .join("\n"); - const minimizedJs = require("uglify-js").minify(combinedContent).code; + const minimizedJs = require("uglify-js").minify(combinedContent).code; - res.header("Content-Type", "text/javascript"); - res.send( - "// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later" + - `\n` + - `// Includes app.js, emojis.js, and custom-css.js. Source code can be found for these 3 files in https://codeberg.org/Ashley/poketube/src/branch/main/css/` + - `\n` + - minimizedJs + - `\n` + - "// @license-end" - ); - } else { - const filePath = path.join(html_location, id); + res.header("Content-Type", "text/javascript"); + res.send( + "// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later" + + `\n` + + `// Includes app.js, emojis.js, and custom-css.js. Source code can be found for these 3 files in https://codeberg.org/Ashley/poketube/src/branch/main/css/` + + `\n` + + minimizedJs + + `\n` + + "// @license-end" + ); + } else { + const filePath = path.join(html_location, id); - if (!fs.existsSync(filePath)) { - res.status(404).send("File not found"); - return; + if (!fs.existsSync(filePath)) { + res.status(404).send("File not found"); + return; + } + + const js = fs.readFileSync(filePath, "utf8"); + const minimizedJs = require("uglify-js").minify(js).code; + + res.header("Content-Type", "text/javascript"); + res.send( + "// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later" + + `\n` + + `// Source code can be found in: https://codeberg.org/Ashley/poketube/src/branch/main/css/${id}` + + `\n` + + minimizedJs + + `\n` + + "// @license-end" + ); } - - const js = fs.readFileSync(filePath, "utf8"); - const minimizedJs = require("uglify-js").minify(js).code; - - res.header("Content-Type", "text/javascript"); - res.send( - "// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0-or-later" + - `\n` + - `// Source code can be found in: https://codeberg.org/Ashley/poketube/src/branch/main/css/${id}` + - `\n` + - minimizedJs + - `\n` + - "// @license-end" - ); + } else { + res.sendFile(id, { root: html_location }); } - } else { - res.sendFile(id, { root: html_location }); - } -}); - - + }); }; From af1efb1177c42f861efd27b9812de7f2505fd7d5 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 13 Jan 2024 20:57:52 +0000 Subject: [PATCH 145/283] add poketranslate :3 --- html/search-web-main.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/search-web-main.ejs b/html/search-web-main.ejs index fa07d4a6..d20c883d 100644 --- a/html/search-web-main.ejs +++ b/html/search-web-main.ejs @@ -230,7 +230,7 @@
- - PokeMaps - My Account - Privacy - Git + - Translate - PokeMaps - My Account - Privacy - Git From 9d993d25f6c0cbd9882f08a3bf5aa1b9614fbd52 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sat, 13 Jan 2024 21:05:11 +0000 Subject: [PATCH 146/283] oops sorry qwq --- html/translate.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/translate.ejs b/html/translate.ejs index 03ae34da..94d737b0 100644 --- a/html/translate.ejs +++ b/html/translate.ejs @@ -7,7 +7,7 @@ - + From a3d1ea8b68930e6df951efe4928b2003efd79125 Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 14 Jan 2024 08:08:23 +0000 Subject: [PATCH 147/283] add ismobile :3 --- html/translate.ejs | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/html/translate.ejs b/html/translate.ejs index 94d737b0..ddde942e 100644 --- a/html/translate.ejs +++ b/html/translate.ejs @@ -7,8 +7,8 @@ - - + + @@ -99,7 +99,6 @@ body { justify-content: center; - overflow:hidden; font-family: sans-serif; } @@ -152,22 +151,21 @@ grid-area: translations; } - @media screen and (prefers-color-scheme: dark) { - body { + body { background-color: #212529; color: #f8f9fa; } - #could_not_switch_languages_text { + #could_not_switch_languages_text { color: #F13333; } - a:visited { + a:visited { color: #9759f6; text-decoration: none; } - a { + a { color: #599bf6; text-decoration: none; } @@ -197,8 +195,24 @@ .use_in_sentence { color: yellow; } - } + + + <% if (isMobile) { %> + + <% } %> + + <% if (!isMobile) { %> + + <% } %> From 3c85374dc9ac572f4c7780d3b608f1beeb73fd1d Mon Sep 17 00:00:00 2001 From: Ashley Date: Sun, 14 Jan 2024 08:11:54 +0000 Subject: [PATCH 148/283] add ismobile :3 --- src/libpoketube/init/pages-static.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libpoketube/init/pages-static.js b/src/libpoketube/init/pages-static.js index a36a9384..6c7fa20b 100644 --- a/src/libpoketube/init/pages-static.js +++ b/src/libpoketube/init/pages-static.js @@ -93,6 +93,7 @@ module.exports = function (app, config, renderTemplate) { text: req.query.input || "enter text here", from_language: req.query.from_language, to_language: req.query.to_language, + isMobile: req.useragent.isMobile, }); }); From baa2a7d79bbff5b733a3297f2b4ef19d68367e7a Mon Sep 17 00:00:00 2001 From: Ashley //// Date: Sun, 14 Jan 2024 16:23:01 +0000 Subject: [PATCH 149/283] fix autoplay --- html/poketube.ejs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index dd44710c..af43bf05 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1563,11 +1563,9 @@ display: block; !important;" autoplay controls>
- -
- @@ -1698,7 +1696,6 @@ Recommended Videos - From c7ce71702a4dee1bbdd521f750ecff7a9fbcf08b Mon Sep 17 00:00:00 2001 From: Ashley //// Date: Tue, 23 Jan 2024 14:48:32 +0000 Subject: [PATCH 187/283] add verified checkmark --- html/poketube.ejs | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/html/poketube.ejs b/html/poketube.ejs index 91bbe6e6..178ae21f 100644 --- a/html/poketube.ejs +++ b/html/poketube.ejs @@ -1130,22 +1130,17 @@ display: block; !important;" autoplay controls> " %>">
-
+
<%=k.Video.Channel.Name%> + - - <% if (!video?.Channel.Name.endsWith(' - Topic')) { %> - <% if (badges) { %> - <% if (badges.tooltip === "Verified") { %> - - <% } %> <% if (badges.tooltip === "Official Artist Channel") { %> - - <% } %> <% } %> <% } %> - - + <% if (inv_vid?.authorVerified) { %> +
+ + +
- - + <% } %>
@@ -1465,7 +1460,6 @@ display: block; !important;" autoplay controls> <%=convert(engagement.dislikes)%>
-
@@ -1481,7 +1475,7 @@ display: block; !important;" autoplay controls> Encryption - <% }%> <% }%> +<% }%><% }%> <% if (video?.Channel.Name.endsWith(' - Topic') || inv_vid.title.endsWith('Audio)')) { %> From d6fa952e6796972eb4bd37b6384564174311084b Mon Sep 17 00:00:00 2001 From: Ashley //// Date: Tue, 23 Jan 2024 14:51:26 +0000 Subject: [PATCH 188/283] add legacy true --- html/channel.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/channel.ejs b/html/channel.ejs index cba349df..ae0b1a8d 100644 --- a/html/channel.ejs +++ b/html/channel.ejs @@ -586,7 +586,7 @@ color:#ea9999 !important; <% } %> -