From 9126a9f1c303505e1b525f05dde3452b9f6ac02c Mon Sep 17 00:00:00 2001
From: Violet
Date: Sun, 29 Oct 2023 00:01:40 -0500
Subject: [PATCH] Much improved search UI, fallbacks for images.
---
index.js | 44 ++++++++++++++++--------------
resources/player.html | 4 +--
resources/searchPage.html | 4 +--
static/Images/UnknownPFP.jpg | Bin 0 -> 7231 bytes
static/Images/UnknownVideo.jpg | Bin 0 -> 1097 bytes
static/index.html | 2 +-
static/mainStyle.css | 48 +++++++++++++++++++++++++++------
7 files changed, 69 insertions(+), 33 deletions(-)
create mode 100644 static/Images/UnknownPFP.jpg
create mode 100644 static/Images/UnknownVideo.jpg
diff --git a/index.js b/index.js
index 6a5c5d2..d09d122 100644
--- a/index.js
+++ b/index.js
@@ -54,24 +54,28 @@ app.get("/search", async (req, res) => {
for (let index = 0; index < videos.length; index++) {
const result = videos[index];
addedHTML += `
-
-
-
-
- ${result.title}
- ${result.description}
-
- ${result.channel.name}
-
+
-
`
- console.log(result)
}
res.send(html.replace("{RESULTS}", addedHTML))
@@ -136,20 +140,20 @@ app.get("/video", async (req, res) => {
var debounce = true
var dp = 0
- ytdl(id, { filter: "videoandaudio", quality: "highest", format: 'mp4' })
+ ytdl(id, { filter: 'videoandaudio', quality: "highest", format: 'mp4' })
.on("progress", (chunk, ct, et) => {
- if (debounce) {
+ if (debounce && ct > Math.min(et, 5000000)) {
debounce = false
videoCache[id] = {
"path": vidpath,
"size": et,
"downloaded": false,
"download%": 0
- }
+ }
ready(vidpath, fs.readFileSync(vidpath))
}
var percent = Math.round(ct / et * 100)
- if (percent > dp) {
+ if (!debounce && percent > dp) {
dp = percent
videoCache[id]["download%"] = dp
}
@@ -206,7 +210,7 @@ app.get("/watch", async (req, res) => {
if (!(id in videoCache && videoCache[id]["downloaded"] == true)) {
html = html.replace("{CACHE_WARNING}", `
Please note that this video has not been fully cached, and may have trouble loading!
-
{DOWNLOAD_PERCENT}% cached (as of page load).
+
{DOWNLOAD_PERCENT}% cached as of page load. If content fails to load after a minute, reload the page!
`)
if (id in videoCache && "download%" in videoCache[id]) {
html = html.replace("{DOWNLOAD_PERCENT}", videoCache[id]["download%"])
diff --git a/resources/player.html b/resources/player.html
index a37005a..1a1153b 100644
--- a/resources/player.html
+++ b/resources/player.html
@@ -32,10 +32,10 @@
{VIDEO_TITLE}
- {CACHE_WARNING}
+ {CACHE_WARNING}
Description:
-
{VIDEO_DESCRIPTION}
+
{VIDEO_DESCRIPTION}
-
+
-
+
diff --git a/static/Images/UnknownPFP.jpg b/static/Images/UnknownPFP.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..aaf0b816ef130a672d5cf48dff0788e14ad2cc00
GIT binary patch
literal 7231
zcmeHLc|29^x8G+pgpSNprqm&0gv@gY9b=|AC}bW&l*l|6O)`_YWID!>`6x1v#}LU7
zGDVr
&+}P(?+xya0|-?m6(s-!0s+eSAFwwJ
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
literal 0
HcmV?d00001
diff --git a/static/Images/UnknownVideo.jpg b/static/Images/UnknownVideo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..09715b54862d341de01f56416cc796ad159785e6
GIT binary patch
literal 1097
zcmex=@TLA_pMkZz;kCzoH&BVye
z!YU}lCalP=WN73VlqljsO9y)yS@(1z2q?FA-?II|~f(-zP3L;wu
z5xvF0!whtXAhRHYJ;Qqkkl>7_lEx0B3nq*pqOn6Qp#dbyz#x#eDrsq#7Ne&0w8l?n
z%~@{>!lKNjZ(W@wdh1?~vz2mb+U7Hdmbc6N;h$);B5Hj&*RFiu?9#su-=rIN*u;EV
z?tk{+{il09{%n?iwdjwpeO&x4=G%EZQH_tor&`&S@rVD}a_`do)6F?W^E2*Rq&}+B
zy0!g2Lsj{*%v6&H(ypn!&Oeo{Y&EWY`zji=Mcr-bV}sK#Cf!YC+Q9>M-AV3k-K#>D
zwEnhyw4h*3)uTLpL+-ZR;IMa3x0ZYk+pP3wR;a=XB|I#kHLI$EV-
zsd;GFv~7=8uU=O2?L!;W3|q5%IcpMvGc`-iIZOA(RcVEWFJ2ZsTX@PkpQWeQw%tv%
z=c&wF)t&42b?tZWop-H{yo}oUe7#yc&w-B%zE*Q@66{-gHEVlu)|M(U2wU-iA(&
z%ROckv((?bh7=^Wm{K=-JM&t=E}UF)EW!MuRHD6n-uz(Zq4l48g=(i*e0XY
zFQ?`yf~^me(xVb!XzPnZ9lDto=(f=ka)&jI9Fq1M}OkL4!yNWZk3U=e%DD|Aio
zrKwqqt1gBm)g6|~*VKA(sb|urzO_?U>q|_{J9*}Jb#BX*jk|Z1dEU7jy0S1oN_?hv
z=+mcB)lzCv{H?33FR-q0`uFJTw6$-qW-pJp&>ytgTC3#A{#%?iUQbu(PPuzMyL7I1
zwrPB^RJ6sjlGOP^%TgM%`H!s2+4@uUZguRN%+vS_6zqL&XBs!vng(!eA<4K#qVZ^-D@h<&Aohe`=b3VJ;xGqroVX;
Wx9T`+e`qz28pIZ`RY*kr|C<0Vg`J-O
literal 0
HcmV?d00001
diff --git a/static/index.html b/static/index.html
index b980664..67f7a20 100644
--- a/static/index.html
+++ b/static/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/static/mainStyle.css b/static/mainStyle.css
index 104100a..9d8e834 100644
--- a/static/mainStyle.css
+++ b/static/mainStyle.css
@@ -17,7 +17,7 @@ body, html {
} */
a:not(h1 > a):not(.videoLink) {
- font-size: 1.5rem;
+ font-size: 1.25rem;
background-color: black;
padding: 8px;
margin: 5px;
@@ -25,6 +25,7 @@ a:not(h1 > a):not(.videoLink) {
border-radius: 15px;
color: rgb(240, 220, 255);
text-decoration: none;
+ display: inline;
}
.videoLink {
@@ -42,7 +43,7 @@ a:not(h1 > a):not(.videoLink) {
}
#titleBar {
- width: 100vw;
+ width: 100%;
background-color: rgb(5, 0, 10);
/* border: 0px; */
border: 2px transparent solid;
@@ -50,7 +51,7 @@ a:not(h1 > a):not(.videoLink) {
position: sticky;
top: 0px;
margin: 0;
- padding: 0;
+ padding: 10px;
}
#titleBar > div > * {
@@ -109,22 +110,52 @@ a:not(h1 > a):not(.videoLink) {
}
p {
- padding: 5px;
+ padding: 2px;
}
.videoResult {
background-color: black;
border: 2px gray solid;
border-radius: 10px;
- padding: 10px;
- margin: 10px;
+ padding: 3px;
+ margin: auto;
text-align: left;
+ height: 100%;
+
}
-img {
- width: 70%;
+@media (max-width: 768px) {
+ .resultContainer {
+ max-width: 450px;
+ }
}
+.resultContainer {
+ margin: 5px auto;
+}
+
+.thumbnail {
+ width: 100%;
+ margin: auto;
+ border-radius: 20px;
+ aspect-ratio: 16/9;
+ object-fit: cover;
+ border: 2px white solid;
+ margin: 5px auto;
+}
+
+.thumbparent {
+ justify-content: center;
+ align-items: center;
+ display: flex;
+}
+
+/* @media (max-width: 1200px) and (min-width: 992px) {
+ .resultDescription {
+ display: none;
+ }
+} */
+
.minipfp {
width: 60px;
height: 60px;
@@ -132,4 +163,5 @@ img {
border-radius: 50%;
padding: 0;
margin: 0;
+ display: inline-block;
}
\ No newline at end of file