From ef7d572a07ea5f804ff00fbc18ed0380d94b5e77 Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Thu, 9 Feb 2023 17:57:30 +0100 Subject: [PATCH] start lab3 --- .DS_Store | Bin 6148 -> 8196 bytes Twidder (Lab3)/.DS_Store | Bin 6148 -> 6148 bytes .../database_helper.cpython-310.pyc | Bin 3866 -> 3876 bytes .../__pycache__/server.cpython-310.pyc | Bin 4719 -> 4748 bytes Twidder (Lab3)/server.py | 2 +- Twidder (Lab3)/static/client.html | 14 +++++++------- Twidder (Lab3)/static/client.js | 18 +++++++++--------- Twidder (Lab3)/static/wimage.png | Bin 0 -> 14312 bytes 8 files changed, 17 insertions(+), 17 deletions(-) create mode 100644 Twidder (Lab3)/static/wimage.png diff --git a/.DS_Store b/.DS_Store index 3d84be2c3d7ebd3f0e99950d0963b2f63021575c..2067e18c81d47726e9c76a26f4f07b6e153c175f 100644 GIT binary patch delta 286 zcmZoMXmOBWU|?W$DortDU;r^W7$CF&_ryZ6iF%5Rd>aFHGjCSl_`|%Ior7ay0}CVH zW*(LajEvhSzhf)p60fc{H_%ZqHME>8$tKO%Ik|&fp0R7PA*<5la<(%3idL{2X!0?H zFqAW7GNdr1Fr+dRF(@!-F!(SeG9)n=GiWB27Z)Vu<R>vOFyOXLw~K*+0k1J-!9{sF z`FZIepKgA@qsPo8!Og(H;L5-tz`a?J<2&<Yei6^f{yZEUj0_B*0ASc0&ohS^0B&bM Au>b%7 delta 199 zcmZp1XfcprU|?W$DortDU=UznVBlbY&@5aN3&ketDKheG4A{-g$g`P8U;^W0Z-G6N zO$6m9mkE_I?wUMTu+USgy4uvzP)9-6(7>=(N1@u#*w{cv!Q9BCww9AaR9W9TC_XzU zH!r`30Sp)!!4v}nFO-H+y_1&+8%!+GU(C+IA;=6772sxIU~pw%VBy+W_?>w&zl<ly Sg$zs(SArbQusNP*4l@8@Y$JXE diff --git a/Twidder (Lab3)/.DS_Store b/Twidder (Lab3)/.DS_Store index 59fe7b9e940faf99a0c0ee33651262d9a742251a..d183d492008786c97f626967e964132a3d915107 100644 GIT binary patch delta 154 zcmZoMXfc@JFUroqz`)4BAi%(o$&j2>UR;orlb^I%kYhQsEJ%utp_rkBA(5d3S(<@? zVf*BK)<QM$>S}WX9R*WE%UT_UYD*&n9R(9hquN?d4pC)&>!A4ToZP(p&dKa-^0HkF h3=AlSl?4~&<>cq3gY2Iy%c`_lkL4B9W_FIh`~WdoCTRcw delta 52 zcmZoMXfc@JFUrcmz`)4BAi%&-%8<yA!w}Dq%aFKPkYhPBBkSactV)|@Szj?tY<Rz! Io#QV*03<FAhyVZp diff --git a/Twidder (Lab3)/__pycache__/database_helper.cpython-310.pyc b/Twidder (Lab3)/__pycache__/database_helper.cpython-310.pyc index c0cb2b59bf7e62a54d13752438c29730b94473b0..a91da005f812861abfe013073287b48847ed3440 100644 GIT binary patch delta 46 zcmbOww?vLRpO=@5fq{WRQ|0MK?j%OWkjZ(B#(W{=nJFo$MG6`|iAlzqo0l?{@&W(~ CHVk6` delta 36 scmZ1?H%pE?pO=@5fq{X+XV;^R+)0d#UX$|}jahsWlZ-a6XDsCf0II49$^ZZW diff --git a/Twidder (Lab3)/__pycache__/server.cpython-310.pyc b/Twidder (Lab3)/__pycache__/server.cpython-310.pyc index 9b004867109a8db67ebe33d1813dc745cabcd9d6..8b3cf9d8810871ddae71355c35d4efa59533d797 100644 GIT binary patch delta 1393 zcmaE_(xb|o&&$ijz`(#TQ}t<b|3=<hjN!}-3=GZ;3=GA53=9k<3=0@j7#A|8Fr_gC zGiWmVRdFZhWTxho=w+1T=Da+?z`&r%bc;E$px~B3acW*ld~r!)NoI0<T4qk_N`@kC z1_lW6%X_jmld(}qd1gvVYLSA5Phyg>rhaj1QCVt{UP0w8?u^u&oc#Fm{Gyx`9+2fs z3=9l>Ohvqt+n9VA`6pjt(&L63R>U)zmsyrkc(XS1XGS4@1_p+gCqWhoFfcHzWGdpH zY`|*3C^$KhRZ>6*B#x}Hi?x7JZSrr{ZX;2Ulo(VC0|P_mL`DXNB6*M~$e<zxkl)yf zK*3R@2oe>Xyn{_gT$O==;TCI2es*de!h1zLlYg`6FltTKV2}3zg<Fw2NC(&m=3Aoa zsU`7X9r0;J`ML2Ksfj76MMZ)P3=C21Ir-`F`K2W*8H+SQT9Dm(o?V$yZ}MmMZ_(Ny zDH()YU!Fm*Gp8^@ybbchWRM>~c55;ffdVFTDo6nA4o)Pm=zz>q0TF_eT{s<8K%Row z4-XY&&w&)0O<u{V&1g3HDrbrh*f}6W!QRwlDFT}Z@=uW|D0qZH9xg3TEs9S`EJ=({ z%}vbAS;>TC0kSV!xeOSsCvW3g5sxsI5frDOB=8ax{4ZHR4gh&yldVV`#FhXNk|06~ zL`Z`Ou**3>EF%yB4g^*tmzhl7%Pp-2Rs{}eke_d{mL=wtrlR}Ra`HcJT}I2vIy}aC z<{-l?KxqNPn__Tp=B5@GC#I)Dd|G4$(t_kgP>^7%1t*9JAf+}S!ij-_p-N`5A&<!9 zhdi6uAYn0iCa<E50Z1C*Cw3G+UE{SfM)MOJ*iXe#>_zcl)-A>qbPqaCcIGo=bevqu zcK~9O^JHs&X#+WsP2j{2w$2#D1x2$aJ9^rI#P#Ghesyh7ID(@#iU%Cg@t|@bwJ3_M zAiuaI6~*ewH~1YHJts>Exa)(X0OUzcCa~GJ*de*1xJVadD{AN!=}ev=AjzmRd6j@G zBmd+N0wGFh3N#oP818|}4Ny|yVH9C3(wLkks9q0tXCTN#Ur;QtWEJP<-QtLk&r8fr zjgK$l1PQVh<(HPE7V&~q34;hV5TOMk^gx6eh_D6`mLLKYQALg*mM4e+Cw-9hw^&nB YlS<QXF&CA>O9oD8@mIt%SyU(r0OdI$U;qFB delta 1242 zcmeBCeXqis&&$ijz`($8{n?Y`rj5L}7+n|{7#N%x7#NCK7#J8*7=sx!nfx@FszhuG z>^xF)a`JT)d=iu5jTCM43+!H=U|?Wa$xy_}z<@;ja-3|(WX$4|m}E4$o=Jg)g{g>p z@?s`mM&8LEne@03in%6hG0QRvZuVgQ%qYamz`*eGB*-8>kfBUPypw%d4H)?+*Re_p z2!O<qH7;i@U{skb!Padg43ZLoYGGht$ehT?z)&O$5(ODlB*(zOpvhLm3=)tB5&V;{ zvgwE`GcYjRVlBzfPR&DdKG$Rkb{$5I$*%12+&mz~svtsc@_Kez1%3twhA8%&{Pg(z z(vp>oMd~0aWH-HGS7y|iEWq(CS`#ECg>ci$GYEF(6h;Pyl}tq-|7K1GxfNuGCRAW5 zNC50)P9!I5fy`3^5&V-AIUQ9%j)&L}_dT*FKnhJJALG<!G@1N~GsOq&9FU<!V5?Y) zz~+JcQ)CPZ2I2J7lK9f%)S~#5#FE7L)ZE0(oRv&S79jg_5tjj@<>bp;E7%~$PHyCu za0K~PldVV;WV0BE5C;(wAVLyEfSt(!Vi|x4urpYZoMANi7Pqt-SQR)}K_0xtT9%ko znu_i*^U2aYx{T(NJ$a19O+kj4fg%{iPm}lah>3xHQDgy9f$aSKJPK@9AVG)8PkBzm z{IHEzQAQ6Wif|q~it|46S{b7`j}7d+;wbi_crfc0V+y)k?I$Pj88X^Wp2T+`5FA>L zpftn}c3ON<YI0^lW@=u^Etb5}oSY&Vkp18!3wDGdhzp7|O?LE@0ExNDi}}^rKmk>x zKKTN_6iUAO%J0bNKG|HrT^}5rAiFi0z{cES&qz&7Ni8Za(gs<86f_{N*5tJUl8joD zj|;dm@=oRz3{gT;pvJ(!a1T~G@Gy!n7O72c7F4eXJINnpgf}Qfv1AqJ=iTCnkIzfY zO^uJg#hh4BaErAlzqBN^h#RCz5Jaee2n`US10qa7ge8bD2N4b+!X8Apg9vb%1zCTK ZH6=BvH2oHHQ7Js@a>B|VuE|D1Q2?JA?~VWf diff --git a/Twidder (Lab3)/server.py b/Twidder (Lab3)/server.py index 98ccdfd..a7d6b62 100644 --- a/Twidder (Lab3)/server.py +++ b/Twidder (Lab3)/server.py @@ -11,7 +11,7 @@ app = Flask(__name__) @app.route("/", methods = ['GET']) def hello_world(): - return "<p>Hello, Lab_2!</p>", 200 + return app.send_static_file("client.html"), 200 @app.route("/delete", methods = ['GET']) diff --git a/Twidder (Lab3)/static/client.html b/Twidder (Lab3)/static/client.html index 182620e..a868b20 100644 --- a/Twidder (Lab3)/static/client.html +++ b/Twidder (Lab3)/static/client.html @@ -3,16 +3,16 @@ <html lang="en"> <head> <title>Twidder</title> - <link href="client.css" type="text/css" rel="stylesheet"> - <script src="client.js"></script> - <script src="serverstub.js"></script> + <link href="/static/client.css" type="text/css" rel="stylesheet"> + <script src="/static/client.js"></script> + <script src="/static/serverstub.js"></script> <script id="welcomeview" type="text/view"> <div id="center"> - <img src="../Lab1_Ressources/wimage.png"> + <img src="/static/wimage.png"> <div id="forms"> <form id="login" onsubmit="signIn(this); return false;"> - <div><label for="email">Email</label><input class="logintexts" type="email" id="email" required></div> - <div><label for="password">Password</label><input class="logintexts" type="password" id="password" required></div> + <div><label for="email">Email</label><input class="logintexts" type="email" id="l_email" required></div> + <div><label for="password">Password</label><input class="logintexts" type="password" id="l_password" required></div> <input value="Login" class="lbutton" type="submit"> </form> <form id="signup" onsubmit="signUp(this); return false;"> @@ -107,4 +107,4 @@ <div id="displayprofil"></div> </body> -</html> \ No newline at end of file +</html> diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js index c0bdf3f..6366231 100644 --- a/Twidder (Lab3)/static/client.js +++ b/Twidder (Lab3)/static/client.js @@ -42,7 +42,7 @@ function checkPasswords(formData){ return true; -} +} function changePassword(formData) { let oldPassword = formData.oldPassword.value; @@ -102,8 +102,8 @@ function signUp(formData) { //---------------------------------------SIGN IN--------------------------------------- function signIn(formData) { - let username = formData.email.value; - let password = formData.password.value; + let username = formData.l_email.value; + let password = formData.l_password.value; let tokens; @@ -112,7 +112,7 @@ function signIn(formData) { let success = serverAnswer.success; let message = serverAnswer.message; let token = serverAnswer.data; - + if(success) { localStorage.setItem("token", token); localStorage.setItem("email_username", username); @@ -164,7 +164,7 @@ function message_management(tab){ default: email = localStorage.getItem("browsed_email"); } - + if(message.length > 0) { serverstub.postMessage(localStorage.getItem("token"), message, email); display_wall(email, tab); @@ -189,7 +189,7 @@ function openTab(tabName) { // Declare all variables var i, tabcontent, tablinks; localStorage.setItem("tab", tabName); - + if(tabName != "browsePage") { if(!(serverstub.getUserMessagesByEmail(localStorage.getItem("token"), localStorage.getItem("browsed_email")).success)) { localStorage.removeItem("browsed_email"); @@ -224,7 +224,7 @@ function openTab(tabName) { function display_wall_info(email, tab) { //check if we already have the data stored of if we have to call the server let data_user = get_user_info(email, tab); - + if(data_user.success) { if(tab == "BP") { browsecontent = document.getElementsByClassName("browsecontent"); @@ -284,7 +284,7 @@ function display_wall(email, tab) { document.getElementById(tab + i).style.marginBottom = "2px"; document.getElementById("writer" + tab + i).style.color = "grey"; } - + } function fills_data(tab, data_user) { @@ -294,4 +294,4 @@ function fills_data(tab, data_user) { document.getElementById(tab + "_country").innerHTML = "Country = " + data_user.data.country; document.getElementById(tab + "_city").innerHTML = "City = " + data_user.data.city; document.getElementById(tab + "_gender").innerHTML = "Gender = " + data_user.data.gender; -} \ No newline at end of file +} diff --git a/Twidder (Lab3)/static/wimage.png b/Twidder (Lab3)/static/wimage.png new file mode 100644 index 0000000000000000000000000000000000000000..048bdd2fcf666069f57f0aab8521dc49f9914725 GIT binary patch literal 14312 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 literal 0 HcmV?d00001 -- GitLab