From 8fcba8a030987b2dcfd734fc7d271c2480231b9a Mon Sep 17 00:00:00 2001 From: EvanLin3141 Date: Sat, 1 Mar 2025 00:44:33 +0000 Subject: [PATCH 1/4] UPDATE: Get All Vods --- web_server/blueprints/streams.py | 11 +++++++++++ web_server/database/app.db | Bin 159744 -> 159744 bytes web_server/utils/stream_utils.py | 8 ++++++++ 3 files changed, 19 insertions(+) diff --git a/web_server/blueprints/streams.py b/web_server/blueprints/streams.py index 854ce78..9b2f0d2 100644 --- a/web_server/blueprints/streams.py +++ b/web_server/blueprints/streams.py @@ -162,6 +162,17 @@ def vods(username): vods = get_user_vods(user_id) return jsonify(vods) +def get_all_vods(): + """ + Returns data of all VODs by all streamers in a JSON-compatible format + """ + with Database() as db: + vods = db.fetchall("SELECT * FROM vods") + + print("Fetched VODs from DB:", vods) # ✅ Debugging line + + return jsonify(vods) + # RTMP Server Routes diff --git a/web_server/database/app.db b/web_server/database/app.db index 806047113cdabab91fdcedf65f441c4b48b4aaa3..09993994269a35b3ce7c17b5e6f179d0fabf4a18 100644 GIT binary patch delta 376 zcmZp8z}fJCbAq(sW(EcZbs!c8VnzlARy;|KwiD?aTFv^T%dIfh(NMjpclk|I7Sf za{i25lmE*FFmg@~kPlE;AlaX1Rv9vg~sF-gH6N|uB z7N$S^(+U__U=}Q9nJ@t;_?MrJTZBQ7;ns9^14dZ|9!tJ9p36Y9%z+pU0M*T!xL`U{ zTgvpi28@1;$=h`d8QT~clP2>s|72=Q+`i73k%N&jVf%Iy#soG-RbT)}F!HjsrL%zz mY7}crow#5cOS67k`sV+<>ls;^%G%P}yX+XZciAzO83F)iV`3)& delta 1492 zcmZ`(O>7%Q6rSN!z6L?j{Y2M2Yj$Bqb?ooi@+_VPa40CH8K# zJ5DhNQb01$Qz{OD15$fHocIk=4ji~3A@zVj2nk9n6(LX&61@Nt5Cm`IG(u2TJFC&^ zd*6HCH}B2)8`}9B+G<kVxmnZYy$`9D4H8ce9tEsW!Gr;B`2m|Ea&J zpN#(++gxwt-^bQB_eEJ9gKGqSh9BS>{`>@v)H6mBlVd~ECnr(|wGbnF$3)R~a&?rE zwoxZnu>E`-^F+WTa2?j+C71&fV>zrGjMR|BR+OffTu=FY+|K0-xRh@u&Ay(b*<AClgC>4q`fS6kiFdK z+d|GISy!kE4FG(q?(@C$qg zU&CkX4TBpn5sk22G?N#KMZ>sLBImOx!`-r*^&@(Sb^b;Cot+eDz&#w*W z!f=zo??`wHZlY&j!o86&qcju>Ge*(v5Yx0UWf&Ep8O##+2v%Vhu~V>Op%EH9V3{+n z$anLMa2!|hd0DU}%2im?Z58Hy+~^&!P>5loB^ums8Pj>&=f3i!D019oJn?jy7lm_& zm;p3LgDJ}xmt~IJUfFeIcP}rv%YpqWFSm(yZ2L#Tx~9P|4P52zoWmVKchSPtUjt+db{4B zv-nT(t4RDxe5EPD$iZQ*PeJNY98ASw3IpBci<3gY|9L*Quh5<)8NB zcQMj2jVjW1(dWHQdy!-`#kc$R*f2Ny8ul>KdCJXT&mpbIm1IjRBZp^PuaM>L0-q5c zI=Hf+8h10Ye@r?)b|#-FE{TlNcQJDJLulJMfep*eL<=LSbZJR?JY5uio)3Ahe~6zh zD7%QQ(%6g)!{vGDEtQ-_Y|;MyJxz@CpORU=B?C9IxTI{?;by!MOCK#{rNd9z&PuMk zfswgD3Tl_mR%vHtAu9&>v=p8nlo}k@gLrOPw|D>;nY|-=2>SvDaT`8k7qYu_MvO5} zASp&HD4r@Qm!E++Blo11pBW-CcR?;-$4v<(D3tzD|73A#owmk=awsvzi{Cw-MDZxv~2thYaV=F diff --git a/web_server/utils/stream_utils.py b/web_server/utils/stream_utils.py index b06b19b..7961d63 100644 --- a/web_server/utils/stream_utils.py +++ b/web_server/utils/stream_utils.py @@ -84,6 +84,14 @@ def get_user_vods(user_id: int): vods = db.fetchall("""SELECT * FROM vods WHERE user_id = ?;""", (user_id,)) return vods +def get_all_vods(): + """ + Returns data of all VODs by all streamers in a JSON-compatible format + """ + with Database() as db: + vods = db.fetchall("""SELECT * FROM vods""") + return vods + def generate_thumbnail(stream_file: str, thumbnail_file: str, retry_time=5, retry_count=3) -> None: """ Generates the thumbnail of a stream From 98198893dbbcfb6f3595ca05f01b5049233f1782 Mon Sep 17 00:00:00 2001 From: EvanLin3141 Date: Sat, 1 Mar 2025 01:25:17 +0000 Subject: [PATCH 2/4] FIX: Vods Showing Issue --- frontend/src/pages/HomePage.tsx | 3 +-- web_server/blueprints/streams.py | 7 ++++--- web_server/database/app.db | Bin 159744 -> 159744 bytes 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx index 5b79a56..6dadb53 100644 --- a/frontend/src/pages/HomePage.tsx +++ b/frontend/src/pages/HomePage.tsx @@ -1,12 +1,11 @@ import React from "react"; import ListRow from "../components/Layout/ListRow"; import { useNavigate } from "react-router-dom"; -import { useStreams, useCategories } from "../hooks/useContent"; +import { useStreams, useCategories, useVods } from "../hooks/useContent"; import Button from "../components/Input/Button"; import DynamicPageContent from "../components/Layout/DynamicPageContent"; import LoadingScreen from "../components/Layout/LoadingScreen"; import Footer from "../components/Layout/Footer"; -import { useVods } from "../hooks/useContent"; // Import useVods interface HomePageProps { diff --git a/web_server/blueprints/streams.py b/web_server/blueprints/streams.py index 5da0cd3..97fbe0b 100644 --- a/web_server/blueprints/streams.py +++ b/web_server/blueprints/streams.py @@ -162,6 +162,7 @@ def vods(username): vods = get_user_vods(user_id) return jsonify(vods) +@stream_bp.route('/vods/all') def get_all_vods(): """ Returns data of all VODs by all streamers in a JSON-compatible format @@ -169,11 +170,10 @@ def get_all_vods(): with Database() as db: vods = db.fetchall("SELECT * FROM vods") - print("Fetched VODs from DB:", vods) # ✅ Debugging line + print("Fetched VODs from DB:", vods) return jsonify(vods) - # RTMP Server Routes @stream_bp.route("/init_stream", methods=["POST"]) @@ -198,7 +198,7 @@ def init_stream(): # Create necessary directories username = user_info["username"] - create_user_directories(username) + create_local_directories(username) return redirect(f"/stream/{username}") @@ -216,6 +216,7 @@ def publish_stream(): periodically update thumbnail """ + try: data = json.loads(request.form.get("data")) except json.JSONDecodeError as ex: diff --git a/web_server/database/app.db b/web_server/database/app.db index 09993994269a35b3ce7c17b5e6f179d0fabf4a18..981cb301b012503ba16264d7651d6eac8aa66bce 100644 GIT binary patch delta 200 zcmZp8z}fJCbAmMEwuv&%jN3LQEa7JsW&1LjT|kzPb1tVF$5)P}9G>j&*uHEw6gb4j z+*mF;`M=B$Mv=)sWTO~`C;LlBGYU;!FXzuFIQhR^0HeU<0QoRR{>jVbBY|r9Kx#LC zmSQyJ;o@Xu7H2FiPAw`HU8JC}seomI1Q#D41OHk6Is7^N*8J>zSNIn574tdq@og4V z_{7U(#5J9hpV63+bGj`*qX8qw^gMn>eMa`_^FTbd>F436L8BvymJ_0kg4Sqz?lQ3HXx-5FN7-Ak+y1fp-p*{~Y+U^BMs) z3%F5#9+`C9(Di# From 9815ee5a09c291ceab0d753dee06f67e30408576 Mon Sep 17 00:00:00 2001 From: JustIceO7 Date: Sat, 1 Mar 2025 02:20:30 +0000 Subject: [PATCH 3/4] MISC: Added data and tested catgory page to be working --- frontend/src/pages/CategoryPage.tsx | 2 +- web_server/database/app.db | Bin 159744 -> 159744 bytes web_server/database/testing_data.sql | 49 +++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/CategoryPage.tsx b/frontend/src/pages/CategoryPage.tsx index 5657677..a02bb7b 100644 --- a/frontend/src/pages/CategoryPage.tsx +++ b/frontend/src/pages/CategoryPage.tsx @@ -97,7 +97,7 @@ const CategoryPage: React.FC = () => { 5Fwm93Br%ivoDuiB81q=!o+~orD2FjB}ftJh2^*_JEx_$waO7f=o*|V z9E?yQ*}oOxqc8n~m0pcdAjW=r%B{Z0>PO4n#i7s+pO zOg@sArF~J zb)wA8f`e8d#)r>0Uu=!}{f#HXr*O8$vl+u%V=mRU6dHL4T?hRB0mId0SR>U=zOkS# zwx<^muA28kBd0Dt!^LeVrGAmCf>hvzB#I!*TIO@9(=ub^>3b>u)WER5En^# n=)ji(paxR Date: Sat, 1 Mar 2025 02:36:24 +0000 Subject: [PATCH 4/4] FIX: Added data back --- web_server/database/app.db | Bin 159744 -> 159744 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/web_server/database/app.db b/web_server/database/app.db index f4be050a8e8cb3ca472032ce5ae4ed9f686e8ece..2f8b77d40226b64bcad50690ccbb1d2cc6664ab3 100644 GIT binary patch delta 3545 zcmai0U2I!P6`t|+&vk6yNt(22n}$xbEY)rk$3Jn>v|GB)Z?jEWnxswBAhi>FY~SYk zUUTntQnwP`c2TJIsjEJCkw74^XrF-YhTS{>FK8uD5r0}CK`COQuREYw4!`x2ogQy*(wKBd8TBTww2bIR>J-)+9Pwd0wk%@V3X4MKeAHi+w zAJ`Xna4p;9tSC|hS6VWSb39{P&K7prHcXXiR`k^N5b8il0hyPpLzs=S$pFxt`$`wF{R>aR))&C zT){OL!ED^YbEmJG>K`0EU(z5q*re{~q6%VEoo0E-E=2jZ5Za4|T^=Txo-eaJpXAKc zxvABcn!9Y=L3%gYm)iFjHyi#G0;;AiHnzBBsfKPv7q*7bZZshF;qsJWtIG@yQQR;d z!JbYe`vzVzAjcx7Im4t`rfL;hcLq3z_>y6%0HfNK=;^i)dKMiN;B)fl3Wjaut0pTI zxLI-*uHCqYuPvTPrXI`xp>u^kEbByT2<<>|0X`*6yK6MY*sh2m8? zWDUL)N()CQ3fqcKZwaAJl&UAn?MY)9a^$uqejD+m+k>%qvXO&a**$iqYzt5u=n$=L zb>G?FW;Rc5S^o>xJT zgF`|oqGvS*0<^hFS5&($L`X`{_LNIv!0>D(Ivd%{{FpqGakM+m`I6{%v)qKyl%w^q=zMrnBn(6Xr4b@83gdB!OB4h+u+eai%Ok}E{@r1i zWws;0`Os#{^YT$H-XJD>~7%*(C?%G1V3| zu8uK1=bAaDH*(=?1F6(oyF%+e^qf(KkyGh972KrYj67r*OHPuDU_6l`{t;*-u}J}F zwjf3)%w?DmRhaW;g^EBr0nD&$^pqSz&!Mzv<|Fc~$(Fh1R)m|jvw}Gc^YSqvehEYq ze^@!4uh5dl#He<6$g)b;bYPQ!WAbo;=cZWIf)2`nS!BX$B*60nxUXWvkeSnMV$h3` zY}GFWD4bdXR!{jG)8(1MsBRa^mI`<_tU#XiRU@|V7HDKJt!XQ&KPQ((ao>;Oc7N@bq{$y%@ zY#`wgK?jrZS-2Oed$&`tGA6qK*9_C260;wRn5ks^Foz3U^p>IX?mh}#DXJ)Fc7eK{ z65QlueixBX#5p1JKav@rL~ue9-*Gr93C5jgSmdVQ_OIka@@sN~e2=_IzCx}Li{!`x zd5I)RK>4k5L%FVeP5GjtD+|h~l2mpp&59Jc6S)b%uScp|IwiFCu#sP3@OGk;JkK(f z)?E_n837T{#R?r^6-@=5ggT(&>7oJYpRgi3CDb(wr zHE);Do@pbq1eXuI5b|Z-)-IvmIm6VlVv5Z%6Bw-K?3Qg3dTyNSFwk{6Q7o~Ht!$Oh zGsl3o6=p*hCOX?Bl%6TW3Pg2DWdJ z(7-g$Qs)?8@M1|!HkydEKK!_txZseVWSMUtJwoLv3UC?ND#t@nWl-YM#^?2EK6wj zl&W)}GiQea05Ap*VO_O(n;#f=$rs-439XwlbaT9RGlq|b zn-pjewbL&l8a1MK4IkKv*AKZq2ir2rt15fzFPYi~! z|2Y_fZz6&!D98hU4!q?*=~sL;AM^fQ`p|P5Gu(Sh0PjE;bq?!{O$8e z_bB&LxEq(&yZZ4w#zyVp0Pe^78Vg*+p4DQlcMu-}Hl%J~$HM;q$3YD^*zSF$clF}h fgUENW_ww@Uh4oiIi!XKImM@3T;`Q)Z&pq;AnWr#f delta 713 zcmZ9JTSyd99LCT8%*>g~&Ym-yu9q&WK7wiHW0D^x`H> z(UUUZ0qJ6dL_tZ6F-TAK(nCaH^zwa~Lrow1~^ z>JRke+KM)*)vCY9vKJ|QN2K(%sM{A^g>3gqP77|$a+_ioV2e8yYk-LRC)Nm-+gQ*H z%zawWB48T8;Z4{K;7|Y?0jvkG_77GAm}Fot5%XYD#?}+L+%hp+Kx~CAuXC3ib zT%^y2wyspaB$NUDsZKkiw!+}m%eEqv1#KFZqJcMbkaA(bZtt_B(^$4%%XpoQ^@5yP zu(@QUH_xCHv5)LN>til z>UKU<3Hi{>$17nF&hp59I00w8&&qkhH3^^+JEy&rdQ;eh`$Mb2PNP?(+rl>R!YbIE zsj*Yk$b&F(x=4^Go#V8RPK?RJWlkr58-ciQRl^N{F8|(PNEd;8$4r86Ch;=+3j$%d A5C8xG